void MM_HeapRegionManagerTarok::setNodeAndLinkRegions(MM_EnvironmentBase *env, void *lowHeapEdge, void *highHeapEdge, uintptr_t numaNode) { uintptr_t regionCount = 0; MM_HeapRegionDescriptor *firstRegion = NULL; Trc_MM_HeapRegionManager_enableRegionsInTable_Entry(env->getLanguageVMThread(), lowHeapEdge, highHeapEdge, numaNode); if (highHeapEdge > lowHeapEdge) { for (uint8_t* address = (uint8_t*)lowHeapEdge; address < highHeapEdge; address += getRegionSize()) { MM_HeapRegionDescriptor *region = tableDescriptorForAddress(address); region->setNumaNode(numaNode); regionCount += 1; } firstRegion = tableDescriptorForAddress(lowHeapEdge); firstRegion->_nextInSet = _freeRegionTable[numaNode]; _freeRegionTable[numaNode] = firstRegion; internalLinkRegions(env, firstRegion, regionCount); } Trc_MM_HeapRegionManager_enableRegionsInTable_Exit(env->getLanguageVMThread(), regionCount, firstRegion, numaNode); }