Author: rfm
Date: Tue May 5 18:01:21 2015
New Revision: 38477
URL: http://svn.gna.org/viewcvs/gnustep?rev=38477&view=rev
Log:
implement -removeAllObjects
Modified:
libs/base/trunk/Source/GSArray.m
Modified: libs/base/trunk/Source/GSArray.m
URL:
http://svn.gna.org/viewcvs/gnustep/libs/base/trunk/Source/GSArray.m?rev=38477&r1=38476&r2=38477&view=diff
==============================================================================
--- libs/base/trunk/Source/GSArray.m (original)
+++ libs/base/trunk/Source/GSArray.m Tue May 5 18:01:21 2015
@@ -635,6 +635,38 @@
{
GSClassSwizzle(self, [GSArray class]);
return self;
+}
+
+- (void) removeAllObjects
+{
+ NSUInteger pos;
+
+ if ((pos = _count) > 0)
+ {
+#if GS_WITH_GC == 0
+ IMP rel = 0;
+ Class last = Nil;
+#endif
+
+ _version++;
+ _count = 0;
+ while (pos-- > 0)
+ {
+#if GS_WITH_GC == 0
+ id o = _contents_array[pos];
+ Class c = object_getClass(o);
+
+ if (c != last)
+ {
+ last = c;
+ rel = [o methodForSelector: @selector(release)];
+ }
+ (*rel)(o, @selector(release));
+#endif
+ _contents_array[pos] = nil;
+ }
+ _version++;
+ }
}
- (void) removeLastObject
_______________________________________________
Gnustep-cvs mailing list
[email protected]
https://mail.gna.org/listinfo/gnustep-cvs