Commit graph

895 commits

Author SHA1 Message Date
Andrew McCallum
9589470e76 ([Heap -heapifyFromIndex:]): Swap -compare: receiver and argument, so
firstObject is minimum instead of maximum object.
([Heap -addObject:]): Likewise.


git-svn-id: svn+ssh://svn.gna.org/svn/gnustep/libs/base/trunk@1371 72102866-910b-0410-8b05-ffd578937521
1996-04-16 21:29:00 +00:00
Andrew McCallum
ffdfa979d3 ([NSGDictionaryObjectEnumerator -nextObject]): Return the key, not the
object.
([NSGDictionary -objectForKey:]): Method moved from
NSGMutableDictionary.
([NSGMutableDictionary +initialize]): Don't use static variable in
test.


git-svn-id: svn+ssh://svn.gna.org/svn/gnustep/libs/base/trunk@1370 72102866-910b-0410-8b05-ffd578937521
1996-04-16 02:52:13 +00:00
Andrew McCallum
712b81db57 ([KeyEnumerator -initWithCollection:]): New method.
([KeyEnumerator -nextObject]): New method.
([KeyEnumerator -dealloc]): New method.


git-svn-id: svn+ssh://svn.gna.org/svn/gnustep/libs/base/trunk@1369 72102866-910b-0410-8b05-ffd578937521
1996-04-16 02:50:42 +00:00
Andrew McCallum
44cbeaf2d3 ([LinkedList -encodeWithCoder:]): New method.
([LinkedList -initWithCoder:]): New method.
([LinkedList -_initCollectionWithCoder:]): Method removed.
([LinkedList -_encodeContentsWithCoder:]): Method removed.
([LinkedList -_decodeContentsWithCoder:]): Method removed.


git-svn-id: svn+ssh://svn.gna.org/svn/gnustep/libs/base/trunk@1366 72102866-910b-0410-8b05-ffd578937521
1996-04-14 16:00:07 +00:00
Andrew McCallum
b221c36652 ([Coder -encodeConditionalObject:]): Don't use old, removed method
name to see if object has already been encoded.


git-svn-id: svn+ssh://svn.gna.org/svn/gnustep/libs/base/trunk@1365 72102866-910b-0410-8b05-ffd578937521
1996-04-14 15:58:03 +00:00
Andrew McCallum
5b5191d0d7 (debug_binary_coder): Explicitly set to zero.
git-svn-id: svn+ssh://svn.gna.org/svn/gnustep/libs/base/trunk@1364 72102866-910b-0410-8b05-ffd578937521
1996-04-14 00:59:58 +00:00
Andrew McCallum
5378b08741 Fix typo.
git-svn-id: svn+ssh://svn.gna.org/svn/gnustep/libs/base/trunk@1363 72102866-910b-0410-8b05-ffd578937521
1996-04-13 19:57:11 +00:00
Andrew McCallum
ea8267399d ([Coder (Private) -_coderReferenceForObject:): Renamed from
old-xref-scheme "_coderHasObjectReference:.


git-svn-id: svn+ssh://svn.gna.org/svn/gnustep/libs/base/trunk@1362 72102866-910b-0410-8b05-ffd578937521
1996-04-13 19:55:26 +00:00
Andrew McCallum
d21db0efa3 Add comments to CONNECTION_WIDE_OBJECT_REFERENCES section.
git-svn-id: svn+ssh://svn.gna.org/svn/gnustep/libs/base/trunk@1361 72102866-910b-0410-8b05-ffd578937521
1996-04-13 19:54:19 +00:00
Andrew McCallum
0fafec9796 ([Decoder -decodeObjectAt:withName:]): Allow for the case in which
ANOBJPTR is NULL, and deal with it using a DUMMY_OBJECT local variable.
Remove CODER_OBJECT_FORWARD_SATISFIER case.  In the CODER_OBJECT case,
decode the forward reference number, and deal with it appropriately.
See the ChangeLog comments for the Encoder changes.


git-svn-id: svn+ssh://svn.gna.org/svn/gnustep/libs/base/trunk@1359 72102866-910b-0410-8b05-ffd578937521
1996-04-13 19:29:39 +00:00
Andrew McCallum
5b21ec95f4 ([Encoder -_encodeObject:withName:isBycopy:isForwardReference:]): See
if object satisfies a forward reference *after* encoding it.  This is
necessary because the encoding of subobjects may generate forward
references.  (In a sense, this undoes the last change, but it is
significantly different in that we test whether the object is in the
object_2_fref table *after* encoding the object; before we looked in
the table before encoding the object.)  As a consequence,
the CODER_OBJECT_FORWARD_SATISFIER tag is no longer necessary; this
was used to tag an object before it was encoded, but now we understand
that we cannot know whether this object satisfies a forward reference
until after it has been encoded.  Thus, for all objects we encode an
unsigned int after encoding the object itself.  This unsigned int is
either the forward reference number of zero, depending on whether this
object satisfies any forward references.


git-svn-id: svn+ssh://svn.gna.org/svn/gnustep/libs/base/trunk@1358 72102866-910b-0410-8b05-ffd578937521
1996-04-13 19:27:23 +00:00
Andrew McCallum
919f4e6955 (CODER_OBJECT_FORWARD_SATISFIER): Enum constant removed; it is no
longer needed.  Note: decoders built after this change will not be
able to read data files encoded before this change.


git-svn-id: svn+ssh://svn.gna.org/svn/gnustep/libs/base/trunk@1357 72102866-910b-0410-8b05-ffd578937521
1996-04-13 19:21:07 +00:00
Andrew McCallum
2e400e6677 ([ConstantCollection -_decodeContentsWithCoder:]): Use alloca(), not
objc_malloc(), plugging memory leak.


git-svn-id: svn+ssh://svn.gna.org/svn/gnustep/libs/base/trunk@1356 72102866-910b-0410-8b05-ffd578937521
1996-04-13 18:37:57 +00:00
Andrew McCallum
3e11ebacf5 ([Encode -_encodeObject:withName:isBycopy:isForwardReference:]): If
this object satisfies a forward reference, remove it from the
object_2_fref table before encoding the object, since, in the process
of encoding the object, we may generate more references to this
object, and we don't want to interpret this as another forward
reference satisfier; previously an object could get encoded as a
forward reference satisfier more than once.


git-svn-id: svn+ssh://svn.gna.org/svn/gnustep/libs/base/trunk@1355 72102866-910b-0410-8b05-ffd578937521
1996-04-13 17:49:22 +00:00
Andrew McCallum
a6084ea9ae (Encoder fref_counter): New ivar for guaranteeing that forward
references have unique names.  Previous use of the MapTable count
for this purpose didn't work because we occasionally removed elements
from the table, and thus had aliased forward reference numbers.


git-svn-id: svn+ssh://svn.gna.org/svn/gnustep/libs/base/trunk@1354 72102866-910b-0410-8b05-ffd578937521
1996-04-12 21:13:12 +00:00
Andrew McCallum
4e25d2ffb4 ([StdioStream -writeBytes:length:]): Check for error condition, and
report.  Reporting scheme needs fixing.
([StdioStream -readBytes:length:]): Likewise.


git-svn-id: svn+ssh://svn.gna.org/svn/gnustep/libs/base/trunk@1353 72102866-910b-0410-8b05-ffd578937521
1996-04-12 21:11:11 +00:00
Andrew McCallum
34a9de6b6e ([LinkedList -_decodeContentsWithCoder:]): Step through the new list,
and send -setLinkedList:, otherwise the links don't properly know
about their parent LinkedList.


git-svn-id: svn+ssh://svn.gna.org/svn/gnustep/libs/base/trunk@1352 72102866-910b-0410-8b05-ffd578937521
1996-04-12 21:10:15 +00:00
Andrew McCallum
f1066b039f ([Encoder -initForWritingToStream:withFormatVersion:cStreamClass
:cStreamFormatVersion:]): Initialize new ivar.
([Encoder -_coderCreateForwardReferenceForObject:]): Use new ivar to
`gensym' a new forward reference.


git-svn-id: svn+ssh://svn.gna.org/svn/gnustep/libs/base/trunk@1351 72102866-910b-0410-8b05-ffd578937521
1996-04-12 21:09:24 +00:00
Andrew McCallum
95846c0b9b ([Decoder -_coderSatisfyForwardReference:withObject:]): Create
fref_2_object with NSNonOwnedPointerMapValueCallBacks, not
NSObjectMapValueCallBacks.


git-svn-id: svn+ssh://svn.gna.org/svn/gnustep/libs/base/trunk@1350 72102866-910b-0410-8b05-ffd578937521
1996-04-12 21:08:06 +00:00
Andrew McCallum
a9fe3fa3f6 ([Encoder -_coderCreateForwardReferenceForObject:]): Initialize the
OBJECT_2_FREF ivar, if it hasn't been already.


git-svn-id: svn+ssh://svn.gna.org/svn/gnustep/libs/base/trunk@1349 72102866-910b-0410-8b05-ffd578937521
1996-04-10 21:30:10 +00:00
Andrew McCallum
c1bd83a8b1 (MemoryExhaustedException): Declare this global variable; note that
now objc-malloc.h cannot be included in .c files, only .m files.


git-svn-id: svn+ssh://svn.gna.org/svn/gnustep/libs/base/trunk@1348 72102866-910b-0410-8b05-ffd578937521
1996-04-10 20:47:02 +00:00
Andrew McCallum
9dbb5319f7 Changed from objc-malloc.c. Raise a MemoryExhaustedException with
NSException instead of calling objc_fatal.


git-svn-id: svn+ssh://svn.gna.org/svn/gnustep/libs/base/trunk@1347 72102866-910b-0410-8b05-ffd578937521
1996-04-10 20:46:03 +00:00
Andrew McCallum
8937fc50b9 File deleted.
git-svn-id: svn+ssh://svn.gna.org/svn/gnustep/libs/base/trunk@1346 72102866-910b-0410-8b05-ffd578937521
1996-04-10 20:30:35 +00:00
Andrew McCallum
59e81049c8 (GNU_CFILES): Removed objc-malloc.c.
(GNU_MFILES): Added objc-malloc.m.


git-svn-id: svn+ssh://svn.gna.org/svn/gnustep/libs/base/trunk@1344 72102866-910b-0410-8b05-ffd578937521
1996-04-10 20:21:46 +00:00
Andrew McCallum
8b2b5c7e7e (GNUSTEP_MFILES): Added NSRunLoop.m.
(GNUSTEP_HEADERS): Added Foundation/NSRunLoop.h.


git-svn-id: svn+ssh://svn.gna.org/svn/gnustep/libs/base/trunk@1343 72102866-910b-0410-8b05-ffd578937521
1996-04-10 18:21:47 +00:00
Andrew McCallum
240f96946f New file.
git-svn-id: svn+ssh://svn.gna.org/svn/gnustep/libs/base/trunk@1341 72102866-910b-0410-8b05-ffd578937521
1996-04-10 18:20:36 +00:00
Andrew McCallum
b323dabc31 ([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
Andrew McCallum
459308b0a3 (mframe_do_call): Use sel_get_type() instead of
class_get_instance_method() to get the selector type.


git-svn-id: svn+ssh://svn.gna.org/svn/gnustep/libs/base/trunk@1339 72102866-910b-0410-8b05-ffd578937521
1996-04-10 16:37:30 +00:00
Andrew McCallum
18a8b28a16 (mframe_do_call): When getting the instance method, just use
object->class_pointer, not object_get_class(), because
object_get_class() of a class will return the argument, not the
metaclass---we want the metaclass.


git-svn-id: svn+ssh://svn.gna.org/svn/gnustep/libs/base/trunk@1337 72102866-910b-0410-8b05-ffd578937521
1996-04-09 23:55:42 +00:00
Andrew McCallum
c2b688a5ea ([TcpInPort +newForReceivingFromPortNumber:]): Bind the socket with
INADDR_ANY, (not the host's address), so that others can connect using
any of the host's interfaces, including localhost.  Add the host's
address to _LISTENING_ADDRESS after the bind().


git-svn-id: svn+ssh://svn.gna.org/svn/gnustep/libs/base/trunk@1336 72102866-910b-0410-8b05-ffd578937521
1996-04-09 03:02:20 +00:00
Andrew McCallum
6d43bc6533 ([NSDictionary -allKeysForObject:]): Ask SELF for objectForKey:, not K.
(Reported by Robert Quillen <rquillen@csugrad.cs.vt.edu>).


git-svn-id: svn+ssh://svn.gna.org/svn/gnustep/libs/base/trunk@1335 72102866-910b-0410-8b05-ffd578937521
1996-04-08 17:19:16 +00:00
Andrew McCallum
2f7ae60a2d (ABS): Remove macro.
git-svn-id: svn+ssh://svn.gna.org/svn/gnustep/libs/base/trunk@1333 72102866-910b-0410-8b05-ffd578937521
1996-04-01 02:52:12 +00:00
Andrew McCallum
bdc87d4dba ([MappedCollector -nextObjectAndKey:withEnumState:]): Add comment.
git-svn-id: svn+ssh://svn.gna.org/svn/gnustep/libs/base/trunk@1331 72102866-910b-0410-8b05-ffd578937521
1996-04-01 02:50:55 +00:00
Andrew McCallum
8de44d50d1 ([MappedCollector -newEnumState]): New method.
([MappedCollector -freeEnumState:]): New method.


git-svn-id: svn+ssh://svn.gna.org/svn/gnustep/libs/base/trunk@1329 72102866-910b-0410-8b05-ffd578937521
1996-04-01 02:41:44 +00:00
Andrew McCallum
438776d6f3 (ABS): Remove macro; now defined in objects/stdobjects.h.
git-svn-id: svn+ssh://svn.gna.org/svn/gnustep/libs/base/trunk@1328 72102866-910b-0410-8b05-ffd578937521
1996-03-31 23:15:12 +00:00
Andrew McCallum
2c66e11f59 Declare new function names.
git-svn-id: svn+ssh://svn.gna.org/svn/gnustep/libs/base/trunk@1327 72102866-910b-0410-8b05-ffd578937521
1996-03-31 22:46:59 +00:00
Andrew McCallum
738fe577c4 Add #ifndef/#endif wrapper around header file.
git-svn-id: svn+ssh://svn.gna.org/svn/gnustep/libs/base/trunk@1326 72102866-910b-0410-8b05-ffd578937521
1996-03-31 22:46:44 +00:00
Andrew McCallum
0f3872167e (behavior_class_add_class): Function renamed from class_add_behavior.
Add more explanation to NSCAssert().
(class_add_behavior): New function, calling above function.
(behavior_class_add_category): New function.
(behavior_class_add_methods): Function renamed from
class_add_methods_if_not_there.


git-svn-id: svn+ssh://svn.gna.org/svn/gnustep/libs/base/trunk@1325 72102866-910b-0410-8b05-ffd578937521
1996-03-31 22:46:14 +00:00
Andrew McCallum
c8954cfab5 ([NSGArray +initialize]): Add the NSArrayNonCore behavior, so we can,
once and for all, avoid the need for those odd [super ...] calls, and
can remove many methods.
([NSGArray -initWithObjects:count:]): Method removed.
([NSGArray -indexOfObject:]): Method removed.
([NSGArray -objectAtIndex:]): Method removed.
([NSGMutableArray +initialize]): Add the NSMutableArrayNonCore
behavior, as above.
([NSGMutableArray -replaceObjectAtIndex:withObject:]): Method removed.


git-svn-id: svn+ssh://svn.gna.org/svn/gnustep/libs/base/trunk@1324 72102866-910b-0410-8b05-ffd578937521
1996-03-31 22:34:27 +00:00
Andrew McCallum
379fe835f5 Divide methods between NSArray and NSArrayNonCore classes. Add
NSArrayNonCore behavior to NSArray.
Divide methods between NSMutableArray and NSMutableArrayNonCore
classes.  Add NSArrayNonCore behavior to NSArray.


git-svn-id: svn+ssh://svn.gna.org/svn/gnustep/libs/base/trunk@1323 72102866-910b-0410-8b05-ffd578937521
1996-03-31 22:23:37 +00:00
Andrew McCallum
b8f0b79536 Include <objects/stdobjects.h>.
(class_add_behavior): Use NSCAssert() to make sure that we don't try
to increase the instance size of a class that has been subclassed;
(hopeless ivar layout confusion would result).


git-svn-id: svn+ssh://svn.gna.org/svn/gnustep/libs/base/trunk@1319 72102866-910b-0410-8b05-ffd578937521
1996-03-31 21:54:02 +00:00
Andrew McCallum
e6fee2e397 (GNU_CFILES): Removed behavior.c.
(GNU_MFILES): Added behavior.m.


git-svn-id: svn+ssh://svn.gna.org/svn/gnustep/libs/base/trunk@1318 72102866-910b-0410-8b05-ffd578937521
1996-03-31 21:43:41 +00:00
Andrew McCallum
227b53dda4 *** empty log message ***
git-svn-id: svn+ssh://svn.gna.org/svn/gnustep/libs/base/trunk@1317 72102866-910b-0410-8b05-ffd578937521
1996-03-31 21:41:02 +00:00
Andrew McCallum
82eb5732bd ([NSArray -lastObject]): Don't assert count; just return nil if it's
empty.
([NSMutableArray -removeLastObject]): Don't assert count; raise
NSRangeError if it's empty.


git-svn-id: svn+ssh://svn.gna.org/svn/gnustep/libs/base/trunk@1314 72102866-910b-0410-8b05-ffd578937521
1996-03-30 23:00:27 +00:00
Andrew McCallum
54acc69932 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
Andrew McCallum
f03cc597e1 Fix typo.
git-svn-id: svn+ssh://svn.gna.org/svn/gnustep/libs/base/trunk@1310 72102866-910b-0410-8b05-ffd578937521
1996-03-30 22:22:20 +00:00
Andrew McCallum
deb6958fe6 Change return types of "grow factor" methods from unsigned to int.
git-svn-id: svn+ssh://svn.gna.org/svn/gnustep/libs/base/trunk@1309 72102866-910b-0410-8b05-ffd578937521
1996-03-30 22:21:48 +00:00
Andrew McCallum
44a604d900 ([IndexedCollection -removeObject:]): Use unsigned for index, not int.
([IndexedCollection -replaceObject:withObject:]): Likewise.


git-svn-id: svn+ssh://svn.gna.org/svn/gnustep/libs/base/trunk@1308 72102866-910b-0410-8b05-ffd578937521
1996-03-30 22:21:11 +00:00
Andrew McCallum
97e6ad9b21 (NO_INDEX): Change from UINT_MAX to NSNotFound, so that Array and
NSArray can coexist.


git-svn-id: svn+ssh://svn.gna.org/svn/gnustep/libs/base/trunk@1305 72102866-910b-0410-8b05-ffd578937521
1996-03-30 22:07:46 +00:00
Andrew McCallum
0a4dd31b8a ([NSArray -isEqualToArray:]): Fix typo; reverse test before returning no.
([NSArray -arrayByAddingObject:]): New function, from Scott
Christley.
([NSArray -arrayByAddingObjectsFromArray:]): Likewise.
([NSArray -subarrayWithRange:]): Implemented by Scott Christely.
([NSMutableArray -removeObjectIdenticalTo:]): Don't fail if the object
is not present.
([NSMutableArray -removeObject:]): Likewise.
([NSMutableArray -removeAllObjects]): Implemented by Scott Christley.
([NSMutableArray -setArray:]): New function, from Scott Christley.


git-svn-id: svn+ssh://svn.gna.org/svn/gnustep/libs/base/trunk@1304 72102866-910b-0410-8b05-ffd578937521
1996-03-30 19:14:43 +00:00