ObjFW  Diff

Differences From Artifact [9f66c7a554]:

To Artifact [77b424abe9]:


83
84
85
86
87
88
89
90
91



92
93
94
95
96
97
98
83
84
85
86
87
88
89


90
91
92
93
94
95
96
97
98
99







-
-
+
+
+







	}

	[self freeMemory: data];
	data = newData;
	size = newSize;
}

- (void)setObject: (id)object
	   forKey: (id <OFCopying>)key
- (void)_setObject: (id)object
	    forKey: (id)key
	   copyKey: (BOOL)copyKey
{
	uint32_t i, hash, last;
	id old;

	if (key == nil || object == nil)
		@throw [OFInvalidArgumentException newWithClass: isa
						       selector: _cmd];
144
145
146
147
148
149
150
151

152
153
154
155
156
157
158
145
146
147
148
149
150
151

152
153
154
155
156
157
158
159







-
+








		if (i >= last)
			@throw [OFOutOfRangeException newWithClass: isa];

		bucket = [self allocMemoryWithSize: sizeof(*bucket)];

		@try {
			key = [key copy];
			key = (copyKey ? [key copy] : [key retain]);
		} @catch (id e) {
			[self freeMemory: bucket];
			@throw e;
		}

		@try {
			[object retain];
171
172
173
174
175
176
177








178
179
180
181
182
183
184
172
173
174
175
176
177
178
179
180
181
182
183
184
185
186
187
188
189
190
191
192
193







+
+
+
+
+
+
+
+







		return;
	}

	old = data[i]->object;
	data[i]->object = [object retain];
	[old release];
}

- (void)setObject: (id)object
	   forKey: (id <OFCopying>)key
{
	[self _setObject: object
		  forKey: key
		 copyKey: YES];
}

- (void)removeObjectForKey: (id <OFCopying>)key
{
	uint32_t i, hash, last;

	if (key == nil)
		@throw [OFInvalidArgumentException newWithClass: isa