/*
 * MiscObject
 *
 * General root class for all foundation objects of the framework
 *
 * This class implements its own reference counting scheme,
 * which is much faster than the one implemented by NSObject.
 * (minimum factor 10)
 * This is because NSObject uses a hashtable and we use simply
 * an instance variable. The little more memory used by this
 * implementation should be no problem today.
 *
 * Written by Ingo Feulner for Cube Informationssysteme GmbH.
 *
 * TODO: Debug options as implemented by NSObject.
 */
#import "MiscObject.h"

@implementation MiscObject

+ alloc
{
	return [self allocWithZone:NULL];
}

+ allocWithZone:(NSZone *)zone
{
        MiscObject *theObject;              

        theObject = (MiscObject *)NSAllocateObject([self class], 0, zone);
        theObject->_retainCount = 1;

        return theObject;
}

- retain
{
	_retainCount++;
	return self;
}

- (unsigned int)retainCount
{
	return _retainCount;
}

- (oneway void)release
{
	if(!--_retainCount)
		[self dealloc];
}

@end
