void
MM_CollectorLanguageInterfaceImpl::markingScheme_masterCleanupAfterGC(MM_EnvironmentBase *env)
{
	OMR_VM_Example *omrVM = (OMR_VM_Example *)env->getOmrVM()->_language_vm;
	J9HashTableState state;
	ObjectEntry *rEntry = NULL;
	rEntry = (ObjectEntry *)hashTableStartDo(omrVM->objectTable, &state);
	while (rEntry != NULL) {
		if (!_markingScheme->isMarked(rEntry->objPtr)) {
			hashTableDoRemove(&state);
		}
		rEntry = (ObjectEntry *)hashTableNextDo(&state);
	}
}
Beispiel #2
0
void
MM_MarkingDelegate::masterCleanupAfterGC(MM_EnvironmentBase *env)
{
	OMRPORT_ACCESS_FROM_OMRVM(env->getOmrVM());
	J9HashTableState state;
	ObjectEntry *objEntry = NULL;
	OMR_VM_Example *omrVM = (OMR_VM_Example *)env->getOmrVM()->_language_vm;
	objEntry = (ObjectEntry *)hashTableStartDo(omrVM->objectTable, &state);
	while (objEntry != NULL) {
		if (!_markingScheme->isMarked(objEntry->objPtr)) {
			omrmem_free_memory((void *)objEntry->name);
			objEntry->name = NULL;
			hashTableDoRemove(&state);
		}
		objEntry = (ObjectEntry *)hashTableNextDo(&state);
	}
}
Beispiel #3
0
/**
 * \brief       Remove the current slot in a J9HashTable
 * \ingroup     GC_Structs
 *  
 *	Removes the current slot in a J9HashTable (not valid in Out Of Process) 
 *      
 */
void 
GC_HashTableIterator::removeSlot()
{
	hashTableDoRemove(&_handle);
}