void scanAllSlots(MM_EnvironmentBase *env) { J9HashTableState state; OMR_VM_Example *omrVM = (OMR_VM_Example *)env->getOmrVM()->_language_vm; RootEntry *rootEntry = (RootEntry *)hashTableStartDo(omrVM->rootTable, &state); while (rootEntry != NULL) { _scavenger->backOutFixSlotWithoutCompression((volatile omrobjectptr_t *) &rootEntry->rootPtr); rootEntry = (RootEntry *)hashTableNextDo(&state); } ObjectEntry *objectEntry = (ObjectEntry *)hashTableStartDo(omrVM->objectTable, &state); while (NULL != objectEntry) { if (NULL != objectEntry->objPtr) { _scavenger->backOutFixSlotWithoutCompression((volatile omrobjectptr_t *) &objectEntry->objPtr); } objectEntry = (ObjectEntry *)hashTableNextDo(&state); } OMR_VMThread *walkThread; GC_OMRVMThreadListIterator threadListIterator(env->getOmrVM()); while((walkThread = threadListIterator.nextOMRVMThread()) != NULL) { if (NULL != walkThread->_savedObject1) { _scavenger->backOutFixSlotWithoutCompression((volatile omrobjectptr_t *) &walkThread->_savedObject1); } if (NULL != walkThread->_savedObject2) { _scavenger->backOutFixSlotWithoutCompression((volatile omrobjectptr_t *) &walkThread->_savedObject2); } } }
void scanAllSlots(MM_EnvironmentBase *env) { J9HashTableState state; OMR_VM_Example *omrVM = (OMR_VM_Example *)env->getOmrVM()->_language_vm; RootEntry *rootEntry = (RootEntry *)hashTableStartDo(omrVM->rootTable, &state); while (rootEntry != NULL) { _scavenger->backOutFixSlotWithoutCompression((volatile omrobjectptr_t *) &rootEntry->rootPtr); rootEntry = (RootEntry *)hashTableNextDo(&state); } }