︙ | | |
69
70
71
72
73
74
75
76
77
78
79
80
81
82
83
84
85
86
87
88
89
90
91
|
69
70
71
72
73
74
75
76
77
78
79
80
81
82
83
84
85
86
87
88
89
|
-
+
-
-
+
-
|
- (instancetype)initWithDictionary: (OFDictionary *)dictionary
{
return (id)[[OFMapTableDictionary alloc]
initWithDictionary: dictionary];
}
- (instancetype)initWithObject: (id)object
- (instancetype)initWithObject: (id)object forKey: (id)key
forKey: (id)key
{
return (id)[[OFMapTableDictionary alloc] initWithObject: object
forKey: key];
}
- (instancetype)initWithObjects: (OFArray *)objects
- (instancetype)initWithObjects: (OFArray *)objects forKeys: (OFArray *)keys
forKeys: (OFArray *)keys
{
return (id)[[OFMapTableDictionary alloc] initWithObjects: objects
forKeys: keys];
}
- (instancetype)initWithObjects: (id const *)objects
forKeys: (id const *)keys
|
︙ | | |
224
225
226
227
228
229
230
231
232
233
234
235
236
237
238
239
240
241
242
243
244
245
246
247
248
249
250
251
252
253
254
|
222
223
224
225
226
227
228
229
230
231
232
233
234
235
236
237
238
239
240
241
242
243
244
245
246
247
248
249
250
|
-
+
-
-
+
-
-
+
|
+ (instancetype)dictionaryWithDictionary: (OFDictionary *)dictionary
{
return [[(OFDictionary *)[self alloc]
initWithDictionary: dictionary] autorelease];
}
+ (instancetype)dictionaryWithObject: (id)object
+ (instancetype)dictionaryWithObject: (id)object forKey: (id)key
forKey: (id)key
{
return [[[self alloc] initWithObject: object
return [[[self alloc] initWithObject: object forKey: key] autorelease];
forKey: key] autorelease];
}
+ (instancetype)dictionaryWithObjects: (OFArray *)objects
forKeys: (OFArray *)keys
{
return [[[self alloc] initWithObjects: objects
forKeys: keys] autorelease];
}
+ (instancetype)dictionaryWithObjects: (id const *)objects
forKeys: (id const *)keys
count: (size_t)count
count: (size_t)count
{
return [[[self alloc] initWithObjects: objects
forKeys: keys
count: count] autorelease];
}
+ (instancetype)dictionaryWithKeysAndObjects: (id)firstKey, ...
|
︙ | | |
281
282
283
284
285
286
287
288
289
290
291
292
293
294
295
296
|
277
278
279
280
281
282
283
284
285
286
287
288
289
290
291
|
-
+
-
|
}
- (instancetype)initWithDictionary: (OFDictionary *)dictionary
{
OF_INVALID_INIT_METHOD
}
- (instancetype)initWithObject: (id)object
- (instancetype)initWithObject: (id)object forKey: (id)key
forKey: (id)key
{
if (key == nil || object == nil)
@throw [OFInvalidArgumentException exception];
return [self initWithKeysAndObjects: key, object, nil];
}
|
︙ | | |
308
309
310
311
312
313
314
315
316
317
318
319
320
321
322
323
324
325
326
327
328
329
330
331
332
333
334
335
336
337
338
339
340
341
|
303
304
305
306
307
308
309
310
311
312
313
314
315
316
317
318
319
320
321
322
323
324
325
326
327
328
329
330
331
332
333
|
-
+
-
-
-
+
-
|
objects = objects_.objects;
keys = keys_.objects;
} @catch (id e) {
[self release];
@throw e;
}
return [self initWithObjects: objects
return [self initWithObjects: objects forKeys: keys count: count];
forKeys: keys
count: count];
}
- (instancetype)initWithObjects: (id const *)objects
forKeys: (id const *)keys
count: (size_t)count
{
OF_INVALID_INIT_METHOD
}
- (instancetype)initWithKeysAndObjects: (id)firstKey, ...
{
id ret;
va_list arguments;
va_start(arguments, firstKey);
ret = [self initWithKey: firstKey
ret = [self initWithKey: firstKey arguments: arguments];
arguments: arguments];
va_end(arguments);
return ret;
}
- (instancetype)initWithKey: (id)firstKey arguments: (va_list)arguments
{
|
︙ | | |
830
831
832
833
834
835
836
837
838
839
840
841
842
843
844
845
846
847
848
849
850
851
852
|
822
823
824
825
826
827
828
829
830
831
832
833
834
835
836
837
838
839
840
841
842
|
-
+
-
-
+
-
|
uint8_t tmp = 0x80 | ((uint8_t)count & 0xF);
[data addItem: &tmp];
} else if (count <= UINT16_MAX) {
uint8_t type = 0xDE;
uint16_t tmp = OF_BSWAP16_IF_LE((uint16_t)count);
[data addItem: &type];
[data addItems: &tmp
[data addItems: &tmp count: sizeof(tmp)];
count: sizeof(tmp)];
} else if (count <= UINT32_MAX) {
uint8_t type = 0xDF;
uint32_t tmp = OF_BSWAP32_IF_LE((uint32_t)count);
[data addItem: &type];
[data addItems: &tmp
[data addItems: &tmp count: sizeof(tmp)];
count: sizeof(tmp)];
} else
@throw [OFOutOfRangeException exception];
pool = objc_autoreleasePoolPush();
i = 0;
keyEnumerator = [self keyEnumerator];
|
︙ | | |