ObjFW  Diff

Differences From Artifact [cfc47921d9]:

To Artifact [3f9a210be5]:


16
17
18
19
20
21
22
23
24
25


26
27
28
29
30
31
32
16
17
18
19
20
21
22

23
24
25
26
27
28
29
30
31
32
33







-


+
+








#include "config.h"

#include <assert.h>

#import "OFMutableSet.h"
#import "OFMutableSet_hashtable.h"
#import "OFAutoreleasePool.h"

#import "OFNotImplementedException.h"

#import "autorelease.h"

static struct {
	Class isa;
} placeholder;

@interface OFMutableSet_placeholder: OFMutableSet
@end
140
141
142
143
144
145
146
147

148
149
150
151
152
153
154

155
156
157
158
159

160
161
162
163
164
165
166
141
142
143
144
145
146
147

148
149
150
151
152
153
154

155
156
157
158
159

160
161
162
163
164
165
166
167







-
+






-
+




-
+







{
	@throw [OFNotImplementedException exceptionWithClass: [self class]
						    selector: _cmd];
}

- (void)minusSet: (OFSet*)set
{
	OFAutoreleasePool *pool = [[OFAutoreleasePool alloc] init];
	void *pool = objc_autoreleasePoolPush();
	OFEnumerator *enumerator = [set objectEnumerator];
	id object;

	while ((object = [enumerator nextObject]) != nil)
		[self removeObject: object];

	[pool release];
	objc_autoreleasePoolPop(pool);
}

- (void)intersectSet: (OFSet*)set
{
	OFAutoreleasePool *pool = [[OFAutoreleasePool alloc] init];
	void *pool = objc_autoreleasePoolPush();
	size_t count = [self count];
	id *cArray;

	cArray = [self allocMemoryWithSize: sizeof(id)
				     count: count];

	@try {
176
177
178
179
180
181
182
183

184
185
186
187
188

189
190
191
192
193
194
195

196
197
198
199
200
201
177
178
179
180
181
182
183

184
185
186
187
188

189
190
191
192
193
194
195

196
197
198
199
200
201
202







-
+




-
+






-
+






		for (i = 0; i < count; i++)
			if (![set containsObject: cArray[i]])
			      [self removeObject: cArray[i]];
	} @finally {
		[self freeMemory: cArray];
	}

	[pool release];
	objc_autoreleasePoolPop(pool);
}

- (void)unionSet: (OFSet*)set
{
	OFAutoreleasePool *pool = [[OFAutoreleasePool alloc] init];
	void *pool = objc_autoreleasePoolPush();
	OFEnumerator *enumerator = [set objectEnumerator];
	id object;

	while ((object = [enumerator nextObject]) != nil)
		[self addObject: object];

	[pool release];
	objc_autoreleasePoolPop(pool);
}

- (void)makeImmutable
{
}
@end