bool
MM_MemorySubSpaceGenerational::initialize(MM_EnvironmentBase *env)
{
	if(!MM_MemorySubSpace::initialize(env)) {
		return false;
	}

	/* attach the children */
	registerMemorySubSpace(_memorySubSpaceOld);
	registerMemorySubSpace(_memorySubSpaceNew);
	
	return true;
}
示例#2
0
/**
 * Initialize the MemorySpace internal structure/variables.
 * @return true if the initialization is successful, false otherwise.
 */
bool
MM_MemorySpace::initialize(MM_EnvironmentBase *env, MM_MemorySubSpace *memorySubSpace)
{
	_heap->registerMemorySpace(this);
	
	registerMemorySubSpace(memorySubSpace);
	
	if(NULL != _physicalArena) {
		_physicalArena->setMemorySpace(this);
	}

	setDefaultMemorySubSpace(memorySubSpace->getDefaultMemorySubSpace());
	setTenureMemorySubSpace(memorySubSpace->getTenureMemorySubSpace());

	return true;
}
示例#3
0
bool
MM_MemorySubSpaceFlat::initialize(MM_EnvironmentBase* env)
{
	if (!MM_MemorySubSpace::initialize(env)) {
		return false;
	}

	/* attach the child to the hierarchy */
	registerMemorySubSpace(_memorySubSpace);

#if defined(OMR_GC_MODRON_CONCURRENT_MARK)
	if (env->getExtensions()->concurrentMark) {
		setConcurrentCollectable();

		MM_MemorySubSpace* child = getChildren();
		while (child) {
			child->setConcurrentCollectable();
			child = child->getNext();
		}
	}
#endif /* OMR_GC_MODRON_CONCURRENT_MARK */

	return true;
}