예제 #1
0
/**
 * Free the receivers internal structures.
 */
void
MM_ParallelSweepChunkArray::tearDown(MM_EnvironmentBase* env)
{
	if (_useVmem) {
		MM_GCExtensionsBase* extensions = env->getExtensions();
		MM_MemoryManager* memoryManager = extensions->memoryManager;
		memoryManager->destroyVirtualMemory(env, &_memoryHandle);
	} else {
		env->getForge()->free((void*)_array);
	}
	_array = (MM_ParallelSweepChunk*)NULL;
}
예제 #2
0
void
MM_HeapVirtualMemory::tearDown(MM_EnvironmentBase* env)
{
	MM_MemoryManager* memoryManager = env->getExtensions()->memoryManager;
	MM_HeapRegionManager* manager = getHeapRegionManager();

	if (NULL != manager) {
		manager->destroyRegionTable(env);
	}

	memoryManager->destroyVirtualMemory(env, &_vmemHandle);

	MM_Heap::tearDown(env);
}