Commit graph

13 commits

Author SHA1 Message Date
mccallum
7df9cb9436 ([NSAutoreleasePool -dealloc]): When unintalling ourselves at the
current pool, and setting our parent to be the current pool, be sure
to set our parent's _CHILD ivar to nil.


git-svn-id: svn+ssh://svn.gna.org/svn/gnustep/libs/base/trunk@1340 72102866-910b-0410-8b05-ffd578937521
1996-04-10 16:40:25 +00:00
mccallum
b5e1608e0c Make NSAutoreleasePools co-exist with exceptions, safely and without
leaks.  Also improve efficiency by using a linked list of arrays
instead of realloc when more space is needed, and by using a cache of
pools that helps avoid the allocation/deallocation of pools.
(push_pool_to_cache): New function.
(pop_pool_from_cache): New function.
([NSAutoreleasePool +initialize]): New method.
([NSAutoreleasePool +allocWithZone:]): New method.
([NSAutoreleasePool -init]): Method overhauled to initialize new ivar
for handling exceptions, _child; also use pool cache.
(total_autoreleased_objects_count): New static variable.
(BEGINNING_POOL_SIZE): Macro renamed from DEFAULT_SIZE.
(autorelease_pool_cache, autorelease_pool_cache_size,
autorelease_pool_cache_count): New static variables.
([NSAutoreleasePool -_setChildPool:]): New method, handling stack and
dealing with exceptions.
([NSAutoreleasePool -addObject:]): Deal with linked list of arrays.
([NSAutoreleasePool -dealloc]): Deal with exceptions by releasing
child pools.  Place self into the pool cache instead of deallocating.
([NSAutoreleasePool +resetTotalAutoreleasedObjects]): New method.
([NSAutoreleasePool +totalAutoreleasedObjects]): New method.


git-svn-id: svn+ssh://svn.gna.org/svn/gnustep/libs/base/trunk@1311 72102866-910b-0410-8b05-ffd578937521
1996-03-30 22:39:48 +00:00
mccallum
f491e64f1b Fix typos.
git-svn-id: svn+ssh://svn.gna.org/svn/gnustep/libs/base/trunk@1276 72102866-910b-0410-8b05-ffd578937521
1996-03-26 20:59:42 +00:00
mccallum
6c5e0d54bb Use NSException instead of sending -error: in all methods.
git-svn-id: svn+ssh://svn.gna.org/svn/gnustep/libs/base/trunk@1273 72102866-910b-0410-8b05-ffd578937521
1996-03-26 19:35:47 +00:00
mccallum
c8e7da6b14 ([NSAutoreleasePool -dealloc]): Set CURRENT_POOL to PARENT, even if
PARENT is nil.  This is correct behavior.  Old behavior could cause
infinite loops in the PARENT pointers.


git-svn-id: svn+ssh://svn.gna.org/svn/gnustep/libs/base/trunk@1197 72102866-910b-0410-8b05-ffd578937521
1996-03-18 21:43:14 +00:00
mccallum
fe4eb5b2ab ([NSAutoreleasePool -parentAutoreleasePool]): Remove inclusion of
eltfuncs.h and collhash.h.


git-svn-id: svn+ssh://svn.gna.org/svn/gnustep/libs/base/trunk@1164 72102866-910b-0410-8b05-ffd578937521
1996-03-18 13:54:29 +00:00
mccallum
8fa067f75b ([NSAutoreleasePool -dealloc]): Removed question comment.
git-svn-id: svn+ssh://svn.gna.org/svn/gnustep/libs/base/trunk@572 72102866-910b-0410-8b05-ffd578937521
1995-08-23 15:07:17 +00:00
mccallum
e20a78619b ([NSAutoreleasePool -dealloc]): Use object_get_class() instead of
->isa.


git-svn-id: svn+ssh://svn.gna.org/svn/gnustep/libs/base/trunk@533 72102866-910b-0410-8b05-ffd578937521
1995-08-08 15:38:02 +00:00
mccallum
3c5d666112 ([NSAutoreleasePool -addObject:]):
Remove double_release checking. Increment released_count after
setting released array.
([NSAutoreleasePool -dealloc]): Catch release errors.
([NSAutoreleasePool -enableDoubleReleaseCheck:]): Removed method.


git-svn-id: svn+ssh://svn.gna.org/svn/gnustep/libs/base/trunk@528 72102866-910b-0410-8b05-ffd578937521
1995-08-04 20:51:19 +00:00
mccallum
82e186ca12 ([NSAutoreleasePool +autoreleaseCountForObject:]): Initialize count to 0.
git-svn-id: svn+ssh://svn.gna.org/svn/gnustep/libs/base/trunk@511 72102866-910b-0410-8b05-ffd578937521
1995-08-02 15:40:33 +00:00
mccallum
883fa9fab5 Include from <Foundation/...>, not <foundation/...>.
git-svn-id: svn+ssh://svn.gna.org/svn/gnustep/libs/base/trunk@391 72102866-910b-0410-8b05-ffd578937521
1995-04-17 21:13:20 +00:00
mccallum
30a2cbe9be (+enableRelease:, +enableDoubleReleaseCheck:,
+setPoolCountThreshhold:): New methods.


git-svn-id: svn+ssh://svn.gna.org/svn/gnustep/libs/base/trunk@354 72102866-910b-0410-8b05-ffd578937521
1995-04-14 15:01:24 +00:00
mccallum
eded938ac2 Initial revision
git-svn-id: svn+ssh://svn.gna.org/svn/gnustep/libs/base/trunk@92 72102866-910b-0410-8b05-ffd578937521
1995-03-12 19:35:17 +00:00