Modified src/OFArray.h
from [51f96ac011]
to [eef3ed513f].
︙ | | | ︙ | |
65
66
67
68
69
70
71
72
73
74
75
76
77
78
79
|
* Initializes an OFArray with the specified object and a va_list.
*
* \param first The first object
* \param args A va_list
* \return An initialized OFArray
*/
- initWithObject: (OFObject*)first
andArgList: (va_list)args;
/**
* Initializes an OFArray with the objects from the specified C array.
*
* \param objs A C array of objects
* \return An initialized OFArray
*/
|
|
|
65
66
67
68
69
70
71
72
73
74
75
76
77
78
79
|
* Initializes an OFArray with the specified object and a va_list.
*
* \param first The first object
* \param args A va_list
* \return An initialized OFArray
*/
- initWithObject: (OFObject*)first
argList: (va_list)args;
/**
* Initializes an OFArray with the objects from the specified C array.
*
* \param objs A C array of objects
* \return An initialized OFArray
*/
|
︙ | | | ︙ | |
Modified src/OFArray.m
from [88c47b37c1]
to [2201996b2e].
︙ | | | ︙ | |
30
31
32
33
34
35
36
37
38
39
40
41
42
43
44
|
+ arrayWithObjects: (OFObject*)first, ...
{
id ret;
va_list args;
va_start(args, first);
ret = [[[self alloc] initWithObject: first
andArgList: args] autorelease];
va_end(args);
return ret;
}
+ arrayWithCArray: (OFObject**)objs
{
|
|
|
30
31
32
33
34
35
36
37
38
39
40
41
42
43
44
|
+ arrayWithObjects: (OFObject*)first, ...
{
id ret;
va_list args;
va_start(args, first);
ret = [[[self alloc] initWithObject: first
argList: args] autorelease];
va_end(args);
return ret;
}
+ arrayWithCArray: (OFObject**)objs
{
|
︙ | | | ︙ | |
83
84
85
86
87
88
89
90
91
92
93
94
95
96
97
98
99
100
101
102
103
104
|
- initWithObjects: (OFObject*)first, ...
{
id ret;
va_list args;
va_start(args, first);
ret = [self initWithObject: first
andArgList: args];
va_end(args);
return ret;
}
- initWithObject: (OFObject*)first
andArgList: (va_list)args
{
id obj;
self = [self init];
@try {
[array addItem: &first];
|
|
|
|
83
84
85
86
87
88
89
90
91
92
93
94
95
96
97
98
99
100
101
102
103
104
|
- initWithObjects: (OFObject*)first, ...
{
id ret;
va_list args;
va_start(args, first);
ret = [self initWithObject: first
argList: args];
va_end(args);
return ret;
}
- initWithObject: (OFObject*)first
argList: (va_list)args
{
id obj;
self = [self init];
@try {
[array addItem: &first];
|
︙ | | | ︙ | |
217
218
219
220
221
222
223
224
225
226
227
228
229
230
231
232
|
[super dealloc];
}
- addObject: (OFObject*)obj
{
@throw [OFNotImplementedException newWithClass: isa
andSelector: _cmd];
}
- removeNObjects: (size_t)nobjects
{
@throw [OFNotImplementedException newWithClass: isa
andSelector: _cmd];
}
@end
|
|
|
|
217
218
219
220
221
222
223
224
225
226
227
228
229
230
231
232
|
[super dealloc];
}
- addObject: (OFObject*)obj
{
@throw [OFNotImplementedException newWithClass: isa
selector: _cmd];
}
- removeNObjects: (size_t)nobjects
{
@throw [OFNotImplementedException newWithClass: isa
selector: _cmd];
}
@end
|
Modified src/OFAutoreleasePool.m
from [f5bf7ad9a3]
to [d23a1326bd].
︙ | | | ︙ | |
149
150
151
152
153
154
155
156
157
158
159
160
161
162
163
164
|
return self;
}
- retain
{
@throw [OFNotImplementedException newWithClass: isa
andSelector: _cmd];
}
- autorelease
{
@throw [OFNotImplementedException newWithClass: isa
andSelector: _cmd];
}
@end
|
|
|
|
149
150
151
152
153
154
155
156
157
158
159
160
161
162
163
164
|
return self;
}
- retain
{
@throw [OFNotImplementedException newWithClass: isa
selector: _cmd];
}
- autorelease
{
@throw [OFNotImplementedException newWithClass: isa
selector: _cmd];
}
@end
|
Modified src/OFConstString.m
from [a4f5d62ca5]
to [d8470a1fff].
︙ | | | ︙ | |
26
27
28
29
30
31
32
33
34
35
36
37
38
39
40
41
42
43
44
45
46
47
48
49
50
51
52
53
54
55
56
57
58
59
60
61
62
63
64
65
66
67
68
69
70
71
72
73
74
|
"OFConstString");
}
#endif
- addMemoryToPool: (void*)ptr
{
@throw [OFNotImplementedException newWithClass: isa
andSelector: _cmd];
}
- (void*)allocMemoryWithSize: (size_t)size
{
@throw [OFNotImplementedException newWithClass: isa
andSelector: _cmd];
}
- (void*)allocMemoryForNItems: (size_t)nitems
withSize: (size_t)size
{
@throw [OFNotImplementedException newWithClass: isa
andSelector: _cmd];
}
- (void*)resizeMemory: (void*)ptr
toSize: (size_t)size
{
@throw [OFNotImplementedException newWithClass: isa
andSelector: _cmd];
}
- (void*)resizeMemory: (void*)ptr
toNItems: (size_t)nitems
withSize: (size_t)size
{
@throw [OFNotImplementedException newWithClass: isa
andSelector: _cmd];
}
- freeMemory: (void*)ptr
{
@throw [OFNotImplementedException newWithClass: isa
andSelector: _cmd];
}
- retain
{
return self;
}
|
|
|
|
|
|
|
|
26
27
28
29
30
31
32
33
34
35
36
37
38
39
40
41
42
43
44
45
46
47
48
49
50
51
52
53
54
55
56
57
58
59
60
61
62
63
64
65
66
67
68
69
70
71
72
73
74
|
"OFConstString");
}
#endif
- addMemoryToPool: (void*)ptr
{
@throw [OFNotImplementedException newWithClass: isa
selector: _cmd];
}
- (void*)allocMemoryWithSize: (size_t)size
{
@throw [OFNotImplementedException newWithClass: isa
selector: _cmd];
}
- (void*)allocMemoryForNItems: (size_t)nitems
withSize: (size_t)size
{
@throw [OFNotImplementedException newWithClass: isa
selector: _cmd];
}
- (void*)resizeMemory: (void*)ptr
toSize: (size_t)size
{
@throw [OFNotImplementedException newWithClass: isa
selector: _cmd];
}
- (void*)resizeMemory: (void*)ptr
toNItems: (size_t)nitems
withSize: (size_t)size
{
@throw [OFNotImplementedException newWithClass: isa
selector: _cmd];
}
- freeMemory: (void*)ptr
{
@throw [OFNotImplementedException newWithClass: isa
selector: _cmd];
}
- retain
{
return self;
}
|
︙ | | | ︙ | |
85
86
87
88
89
90
91
92
93
94
95
|
- (void)release
{
}
- (void)dealloc
{
@throw [OFNotImplementedException newWithClass: isa
andSelector: _cmd];
[super dealloc]; /* Get rid of stupid warning */
}
@end
|
|
|
85
86
87
88
89
90
91
92
93
94
95
|
- (void)release
{
}
- (void)dealloc
{
@throw [OFNotImplementedException newWithClass: isa
selector: _cmd];
[super dealloc]; /* Get rid of stupid warning */
}
@end
|
Modified src/OFDataArray.m
from [91a0ea19b6]
to [3d750bfc13].
︙ | | | ︙ | |
38
39
40
41
42
43
44
45
46
47
48
49
50
51
52
|
self = [super init];
if (is == 0) {
c = isa;
[super dealloc];
@throw [OFInvalidArgumentException newWithClass: c
andSelector: _cmd];
}
data = NULL;
itemsize = is;
return self;
}
|
|
|
38
39
40
41
42
43
44
45
46
47
48
49
50
51
52
|
self = [super init];
if (is == 0) {
c = isa;
[super dealloc];
@throw [OFInvalidArgumentException newWithClass: c
selector: _cmd];
}
data = NULL;
itemsize = is;
return self;
}
|
︙ | | | ︙ | |
146
147
148
149
150
151
152
153
154
155
156
157
158
159
160
161
162
163
|
- (int)compare: (id)obj
{
int ret;
if (![obj isKindOfClass: [OFDataArray class]])
@throw [OFInvalidArgumentException newWithClass: isa
andSelector: _cmd];
if ([obj itemsize] != itemsize)
@throw [OFInvalidArgumentException newWithClass: isa
andSelector: _cmd];
if ([obj count] == count)
return memcmp(data, [obj data], count * itemsize);
if (count > [obj count]) {
if ((ret = memcmp(data, [obj data], [obj count] * itemsize)))
return ret;
|
|
|
|
146
147
148
149
150
151
152
153
154
155
156
157
158
159
160
161
162
163
|
- (int)compare: (id)obj
{
int ret;
if (![obj isKindOfClass: [OFDataArray class]])
@throw [OFInvalidArgumentException newWithClass: isa
selector: _cmd];
if ([obj itemsize] != itemsize)
@throw [OFInvalidArgumentException newWithClass: isa
selector: _cmd];
if ([obj count] == count)
return memcmp(data, [obj data], count * itemsize);
if (count > [obj count]) {
if ((ret = memcmp(data, [obj data], [obj count] * itemsize)))
return ret;
|
︙ | | | ︙ | |
Modified src/OFDictionary.h
from [60d39a625e]
to [a1a71dda9a].
︙ | | | ︙ | |
61
62
63
64
65
66
67
68
69
70
71
72
73
74
75
76
77
78
79
80
81
82
83
84
85
86
|
/**
* Creates a new OFDictionary with the specified key and object.
*
* \param key The key
* \param obj The object
* \return A new autoreleased OFDictionary
*/
+ dictionaryWithKey: (OFObject <OFCopying>*)key
andObject: (OFObject*)obj;
/**
* Creates a new OFDictionary with the specified keys and objects.
*
* \param keys An array of keys
* \param objs An array of objects
* \return A new autoreleased OFDictionary
*/
+ dictionaryWithKeys: (OFArray*)keys
andObjects: (OFArray*)objs;
/**
* Creates a new OFDictionary with the specified keys objects.
*
* \param first The first key
* \return A new autoreleased OFDictionary
*/
|
>
|
<
|
|
|
61
62
63
64
65
66
67
68
69
70
71
72
73
74
75
76
77
78
79
80
81
82
83
84
85
86
|
/**
* Creates a new OFDictionary with the specified key and object.
*
* \param key The key
* \param obj The object
* \return A new autoreleased OFDictionary
*/
+ dictionaryWithObject: (OFObject*)obj
forKey: (OFObject <OFCopying>*)key;
/**
* Creates a new OFDictionary with the specified keys and objects.
*
* \param keys An array of keys
* \param objs An array of objects
* \return A new autoreleased OFDictionary
*/
+ dictionaryWithObjects: (OFArray*)objs
forKeys: (OFArray*)keys;
/**
* Creates a new OFDictionary with the specified keys objects.
*
* \param first The first key
* \return A new autoreleased OFDictionary
*/
|
︙ | | | ︙ | |
114
115
116
117
118
119
120
121
122
123
124
125
126
127
128
129
130
131
132
133
134
135
136
137
138
139
140
141
142
143
144
145
146
147
148
149
150
151
152
153
154
155
156
157
158
159
|
* Initializes an already allocated OFDictionary with the specified key and
* object.
*
* \param key The key
* \param obj The object
* \return A new initialized OFDictionary
*/
- initWithKey: (OFObject <OFCopying>*)key
andObject: (OFObject*)obj;
/**
* Initializes an already allocated OFDictionary with the specified keys and
* objects.
*
* \param keys An array of keys
* \param objs An array of objects
* \return A new initialized OFDictionary
*/
- initWithKeys: (OFArray*)keys
andObjects: (OFArray*)objs;
/**
* Initializes an already allocated OFDictionary with the specified keys and
* objects.
*
* \param first The first key
* \return A new initialized OFDictionary
*/
- initWithKeysAndObjects: (OFObject <OFCopying>*)first, ...;
/**
* Initializes an already allocated OFDictionary with the specified key and
* va_list.
*
* \param first The first key
* \return A new initialized OFDictionary
*/
- initWithKey: (OFObject <OFCopying>*)first
andArgList: (va_list)args;
/**
* \return The average number of items in a used bucket. Buckets that are
* completely empty are not in the calculation. If this value is >= 2.0,
* you should resize the dictionary, in most cases even earlier!
*/
- (float)averageItemsPerBucket;
|
>
|
<
|
|
|
|
114
115
116
117
118
119
120
121
122
123
124
125
126
127
128
129
130
131
132
133
134
135
136
137
138
139
140
141
142
143
144
145
146
147
148
149
150
151
152
153
154
155
156
157
158
159
|
* Initializes an already allocated OFDictionary with the specified key and
* object.
*
* \param key The key
* \param obj The object
* \return A new initialized OFDictionary
*/
- initWithObject: (OFObject*)obj
forKey: (OFObject <OFCopying>*)key;
/**
* Initializes an already allocated OFDictionary with the specified keys and
* objects.
*
* \param keys An array of keys
* \param objs An array of objects
* \return A new initialized OFDictionary
*/
- initWithObjects: (OFArray*)objs
forKeys: (OFArray*)keys;
/**
* Initializes an already allocated OFDictionary with the specified keys and
* objects.
*
* \param first The first key
* \return A new initialized OFDictionary
*/
- initWithKeysAndObjects: (OFObject <OFCopying>*)first, ...;
/**
* Initializes an already allocated OFDictionary with the specified key and
* va_list.
*
* \param first The first key
* \return A new initialized OFDictionary
*/
- initWithKey: (OFObject <OFCopying>*)first
argList: (va_list)args;
/**
* \return The average number of items in a used bucket. Buckets that are
* completely empty are not in the calculation. If this value is >= 2.0,
* you should resize the dictionary, in most cases even earlier!
*/
- (float)averageItemsPerBucket;
|
︙ | | | ︙ | |
Modified src/OFDictionary.m
from [59d8f02b6d]
to [c824cfaef7].
︙ | | | ︙ | |
36
37
38
39
40
41
42
43
44
45
46
47
48
49
50
51
52
53
54
55
56
57
58
59
60
61
62
63
64
65
66
67
68
69
70
71
|
}
+ dictionaryWithHashSize: (int)hashsize
{
return [[[self alloc] initWithHashSize: hashsize] autorelease];
}
+ dictionaryWithKey: (OFObject <OFCopying>*)key
andObject: (OFObject*)obj
{
return [[[self alloc] initWithKey: key
andObject: obj] autorelease];
}
+ dictionaryWithKeys: (OFArray*)keys
andObjects: (OFArray*)objs
{
return [[[self alloc] initWithKeys: keys
andObjects: objs] autorelease];
}
+ dictionaryWithKeysAndObjects: (OFObject <OFCopying>*)first, ...
{
id ret;
va_list args;
va_start(args, first);
ret = [[[self alloc] initWithKey: first
andArgList: args] autorelease];
va_end(args);
return ret;
}
- init
{
|
>
|
<
|
|
|
|
|
|
|
|
36
37
38
39
40
41
42
43
44
45
46
47
48
49
50
51
52
53
54
55
56
57
58
59
60
61
62
63
64
65
66
67
68
69
70
71
|
}
+ dictionaryWithHashSize: (int)hashsize
{
return [[[self alloc] initWithHashSize: hashsize] autorelease];
}
+ dictionaryWithObject: (OFObject*)obj
forKey: (OFObject <OFCopying>*)key
{
return [[[self alloc] initWithObject: obj
forKey: key] autorelease];
}
+ dictionaryWithObjects: (OFArray*)objs
forKeys: (OFArray*)keys
{
return [[[self alloc] initWithObjects: objs
forKeys: keys] autorelease];
}
+ dictionaryWithKeysAndObjects: (OFObject <OFCopying>*)first, ...
{
id ret;
va_list args;
va_start(args, first);
ret = [[[self alloc] initWithKey: first
argList: args] autorelease];
va_end(args);
return ret;
}
- init
{
|
︙ | | | ︙ | |
100
101
102
103
104
105
106
107
108
109
110
111
112
113
114
|
self = [super init];
if (dict == nil) {
Class c = isa;
size = 0;
[self dealloc];
@throw [OFInvalidArgumentException newWithClass: c
andSelector: _cmd];
}
size = dict->size;
@try {
data = [self allocMemoryForNItems: size
withSize: sizeof(OFList*)];
|
|
|
100
101
102
103
104
105
106
107
108
109
110
111
112
113
114
|
self = [super init];
if (dict == nil) {
Class c = isa;
size = 0;
[self dealloc];
@throw [OFInvalidArgumentException newWithClass: c
selector: _cmd];
}
size = dict->size;
@try {
data = [self allocMemoryForNItems: size
withSize: sizeof(OFList*)];
|
︙ | | | ︙ | |
174
175
176
177
178
179
180
181
182
183
184
185
186
187
188
|
{
self = [super init];
if (hashsize < 8 || hashsize >= 28) {
Class c = isa;
[super dealloc];
@throw [OFInvalidArgumentException newWithClass: c
andSelector: _cmd];
}
size = (size_t)1 << hashsize;
@try {
data = [self allocMemoryForNItems: size
withSize: sizeof(OFList*)];
|
|
|
174
175
176
177
178
179
180
181
182
183
184
185
186
187
188
|
{
self = [super init];
if (hashsize < 8 || hashsize >= 28) {
Class c = isa;
[super dealloc];
@throw [OFInvalidArgumentException newWithClass: c
selector: _cmd];
}
size = (size_t)1 << hashsize;
@try {
data = [self allocMemoryForNItems: size
withSize: sizeof(OFList*)];
|
︙ | | | ︙ | |
196
197
198
199
200
201
202
203
204
205
206
207
208
209
210
211
212
213
214
215
216
217
218
219
220
221
222
|
@throw e;
}
memset(data, 0, size * sizeof(OFList*));
return self;
}
- initWithKey: (OFObject <OFCopying>*)key
andObject: (OFObject*)obj
{
Class c;
uint32_t fullhash, hash;
self = [self init];
if (key == nil || obj == nil) {
c = isa;
[self dealloc];
@throw [OFInvalidArgumentException newWithClass: isa
andSelector: _cmd];
}
fullhash = [key hash];
hash = fullhash & (size - 1);
@try {
key = [key copy];
|
>
|
<
|
|
196
197
198
199
200
201
202
203
204
205
206
207
208
209
210
211
212
213
214
215
216
217
218
219
220
221
222
|
@throw e;
}
memset(data, 0, size * sizeof(OFList*));
return self;
}
- initWithObject: (OFObject*)obj
forKey: (OFObject <OFCopying>*)key
{
Class c;
uint32_t fullhash, hash;
self = [self init];
if (key == nil || obj == nil) {
c = isa;
[self dealloc];
@throw [OFInvalidArgumentException newWithClass: isa
selector: _cmd];
}
fullhash = [key hash];
hash = fullhash & (size - 1);
@try {
key = [key copy];
|
︙ | | | ︙ | |
239
240
241
242
243
244
245
246
247
248
249
250
251
252
253
254
255
256
257
258
259
260
261
262
263
264
265
266
267
268
269
270
271
272
273
274
275
276
277
278
279
280
281
282
|
[self dealloc];
@throw e;
}
return self;
}
- initWithKeys: (OFArray*)keys
andObjects: (OFArray*)objs
{
Class c;
OFObject <OFCopying> **keys_data;
OFObject **objs_data;
size_t count, i;
self = [self init];
count = [keys count];
if (keys == nil || objs == nil || count != [objs count]) {
c = isa;
[self dealloc];
@throw [OFInvalidArgumentException newWithClass: isa
andSelector: _cmd];
}
keys_data = [keys data];
objs_data = [objs data];
for (i = 0; i < count; i++) {
uint32_t fullhash, hash;
OFObject <OFCopying> *key;
if (keys_data[i] == nil || objs_data[i] == nil) {
c = isa;
[self dealloc];
@throw [OFInvalidArgumentException newWithClass: isa
andSelector: _cmd];
}
fullhash = [keys_data[i] hash];
hash = fullhash & (size - 1);
@try {
key = [keys_data[i] copy];
|
|
|
|
|
|
239
240
241
242
243
244
245
246
247
248
249
250
251
252
253
254
255
256
257
258
259
260
261
262
263
264
265
266
267
268
269
270
271
272
273
274
275
276
277
278
279
280
281
282
|
[self dealloc];
@throw e;
}
return self;
}
- initWithObjects: (OFArray*)objs
forKeys: (OFArray*)keys
{
Class c;
OFObject <OFCopying> **keys_data;
OFObject **objs_data;
size_t count, i;
self = [self init];
count = [keys count];
if (keys == nil || objs == nil || count != [objs count]) {
c = isa;
[self dealloc];
@throw [OFInvalidArgumentException newWithClass: isa
selector: _cmd];
}
keys_data = [keys data];
objs_data = [objs data];
for (i = 0; i < count; i++) {
uint32_t fullhash, hash;
OFObject <OFCopying> *key;
if (keys_data[i] == nil || objs_data[i] == nil) {
c = isa;
[self dealloc];
@throw [OFInvalidArgumentException newWithClass: isa
selector: _cmd];
}
fullhash = [keys_data[i] hash];
hash = fullhash & (size - 1);
@try {
key = [keys_data[i] copy];
|
︙ | | | ︙ | |
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
342
343
344
345
|
- initWithKeysAndObjects: (OFObject <OFCopying>*)first, ...
{
id ret;
va_list args;
va_start(args, first);
ret = [self initWithKey: first
andArgList: args];
va_end(args);
return ret;
}
- initWithKey: (OFObject <OFCopying>*)first
andArgList: (va_list)args
{
OFObject <OFCopying> *key;
OFObject *obj;
Class c;
uint32_t fullhash, hash;
self = [self init];
obj = va_arg(args, OFObject*);
if (first == nil || obj == nil) {
c = isa;
[self dealloc];
@throw [OFInvalidArgumentException newWithClass: isa
andSelector: _cmd];
}
fullhash = [first hash];
hash = fullhash & (size - 1);
@try {
key = [first copy];
|
|
|
|
|
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
342
343
344
345
|
- initWithKeysAndObjects: (OFObject <OFCopying>*)first, ...
{
id ret;
va_list args;
va_start(args, first);
ret = [self initWithKey: first
argList: args];
va_end(args);
return ret;
}
- initWithKey: (OFObject <OFCopying>*)first
argList: (va_list)args
{
OFObject <OFCopying> *key;
OFObject *obj;
Class c;
uint32_t fullhash, hash;
self = [self init];
obj = va_arg(args, OFObject*);
if (first == nil || obj == nil) {
c = isa;
[self dealloc];
@throw [OFInvalidArgumentException newWithClass: isa
selector: _cmd];
}
fullhash = [first hash];
hash = fullhash & (size - 1);
@try {
key = [first copy];
|
︙ | | | ︙ | |
365
366
367
368
369
370
371
372
373
374
375
376
377
378
379
|
}
while ((key = va_arg(args, OFObject <OFCopying>*)) != nil) {
if ((obj = va_arg(args, OFObject*)) == nil) {
c = isa;
[self dealloc];
@throw [OFInvalidArgumentException newWithClass: isa
andSelector: _cmd];
}
fullhash = [key hash];
hash = fullhash & (size - 1);
@try {
key = [key copy];
|
|
|
365
366
367
368
369
370
371
372
373
374
375
376
377
378
379
|
}
while ((key = va_arg(args, OFObject <OFCopying>*)) != nil) {
if ((obj = va_arg(args, OFObject*)) == nil) {
c = isa;
[self dealloc];
@throw [OFInvalidArgumentException newWithClass: isa
selector: _cmd];
}
fullhash = [key hash];
hash = fullhash & (size - 1);
@try {
key = [key copy];
|
︙ | | | ︙ | |
424
425
426
427
428
429
430
431
432
433
434
435
436
437
438
|
- (id)objectForKey: (OFObject*)key
{
uint32_t hash;
of_dictionary_list_object_t *iter;
if (key == nil)
@throw [OFInvalidArgumentException newWithClass: isa
andSelector: _cmd];
hash = [key hash] & (size - 1);
if (data[hash] == nil)
return nil;
for (iter = (of_dictionary_list_object_t*)[data[hash] first];
|
|
|
424
425
426
427
428
429
430
431
432
433
434
435
436
437
438
|
- (id)objectForKey: (OFObject*)key
{
uint32_t hash;
of_dictionary_list_object_t *iter;
if (key == nil)
@throw [OFInvalidArgumentException newWithClass: isa
selector: _cmd];
hash = [key hash] & (size - 1);
if (data[hash] == nil)
return nil;
for (iter = (of_dictionary_list_object_t*)[data[hash] first];
|
︙ | | | ︙ | |
478
479
480
481
482
483
484
485
486
487
488
489
490
491
492
493
494
495
496
497
498
499
|
[super dealloc];
}
- setObject: (OFObject*)obj
forKey: (OFObject <OFCopying>*)key
{
@throw [OFNotImplementedException newWithClass: isa
andSelector: _cmd];
}
- removeObjectForKey: (OFObject*)key
{
@throw [OFNotImplementedException newWithClass: isa
andSelector: _cmd];
}
- changeHashSize: (int)hashsize
{
@throw [OFNotImplementedException newWithClass: isa
andSelector: _cmd];
}
@end
|
|
|
|
|
478
479
480
481
482
483
484
485
486
487
488
489
490
491
492
493
494
495
496
497
498
499
|
[super dealloc];
}
- setObject: (OFObject*)obj
forKey: (OFObject <OFCopying>*)key
{
@throw [OFNotImplementedException newWithClass: isa
selector: _cmd];
}
- removeObjectForKey: (OFObject*)key
{
@throw [OFNotImplementedException newWithClass: isa
selector: _cmd];
}
- changeHashSize: (int)hashsize
{
@throw [OFNotImplementedException newWithClass: isa
selector: _cmd];
}
@end
|
Modified src/OFExceptions.h
from [1fccb40947]
to [16ecb98c6a].
︙ | | | ︙ | |
85
86
87
88
89
90
91
92
93
94
95
96
97
98
99
100
101
102
103
104
105
106
107
108
109
|
/**
* \param class The class of the object which caused the exception
* \param size The size of the memory that couldn't be allocated
* \return A new no memory exception
*/
+ newWithClass: (Class)class
andSize: (size_t)size;
/**
* Initializes an already allocated no memory exception.
*
* \param class The class of the object which caused the exception
* \param size The size of the memory that couldn't be allocated
* \return An initialized no memory exception
*/
- initWithClass: (Class)class
andSize: (size_t)size;
/**
* \return The size of the memoory that couldn't be allocated
*/
- (size_t)requestedSize;
@end
|
|
|
|
85
86
87
88
89
90
91
92
93
94
95
96
97
98
99
100
101
102
103
104
105
106
107
108
109
|
/**
* \param class The class of the object which caused the exception
* \param size The size of the memory that couldn't be allocated
* \return A new no memory exception
*/
+ newWithClass: (Class)class
size: (size_t)size;
/**
* Initializes an already allocated no memory exception.
*
* \param class The class of the object which caused the exception
* \param size The size of the memory that couldn't be allocated
* \return An initialized no memory exception
*/
- initWithClass: (Class)class
size: (size_t)size;
/**
* \return The size of the memoory that couldn't be allocated
*/
- (size_t)requestedSize;
@end
|
︙ | | | ︙ | |
117
118
119
120
121
122
123
124
125
126
127
128
129
130
131
132
133
134
135
136
137
138
139
140
141
|
/**
* \param class The class of the object which caused the exception
* \param ptr A pointer to the memory that is not part of the object
* \return A new memory not part of object exception
*/
+ newWithClass: (Class)class
andPointer: (void*)ptr;
/**
* Initializes an already allocated memory not part of object exception.
*
* \param class The class of the object which caused the exception
* \param ptr A pointer to the memory that is not part of the object
* \return An initialized memory not part of object exception
*/
- initWithClass: (Class)class
andPointer: (void*)ptr;
/**
* \return A pointer to the memory which is not part of the object
*/
- (void*)pointer;
@end
|
|
|
|
117
118
119
120
121
122
123
124
125
126
127
128
129
130
131
132
133
134
135
136
137
138
139
140
141
|
/**
* \param class The class of the object which caused the exception
* \param ptr A pointer to the memory that is not part of the object
* \return A new memory not part of object exception
*/
+ newWithClass: (Class)class
pointer: (void*)ptr;
/**
* Initializes an already allocated memory not part of object exception.
*
* \param class The class of the object which caused the exception
* \param ptr A pointer to the memory that is not part of the object
* \return An initialized memory not part of object exception
*/
- initWithClass: (Class)class
pointer: (void*)ptr;
/**
* \return A pointer to the memory which is not part of the object
*/
- (void*)pointer;
@end
|
︙ | | | ︙ | |
149
150
151
152
153
154
155
156
157
158
159
160
161
162
163
164
165
166
167
168
169
170
171
172
173
|
/**
* \param class The class of the object which caused the exception
* \param selector The selector which is not or not fully implemented
* \return A new not implemented exception
*/
+ newWithClass: (Class)class
andSelector: (SEL)selector;
/**
* Initializes an already allocated not implemented exception.
*
* \param class The class of the object which caused the exception
* \param selector The selector which is not or not fully implemented
* \return An initialized not implemented exception
*/
- initWithClass: (Class)class
andSelector: (SEL)selector;
@end
/**
* An OFException indicating the given value is out of range.
*/
@interface OFOutOfRangeException: OFException {}
@end
|
|
|
|
149
150
151
152
153
154
155
156
157
158
159
160
161
162
163
164
165
166
167
168
169
170
171
172
173
|
/**
* \param class The class of the object which caused the exception
* \param selector The selector which is not or not fully implemented
* \return A new not implemented exception
*/
+ newWithClass: (Class)class
selector: (SEL)selector;
/**
* Initializes an already allocated not implemented exception.
*
* \param class The class of the object which caused the exception
* \param selector The selector which is not or not fully implemented
* \return An initialized not implemented exception
*/
- initWithClass: (Class)class
selector: (SEL)selector;
@end
/**
* An OFException indicating the given value is out of range.
*/
@interface OFOutOfRangeException: OFException {}
@end
|
︙ | | | ︙ | |
182
183
184
185
186
187
188
189
190
191
192
193
194
195
196
197
198
199
200
201
202
203
204
205
206
|
/**
* \param class The class of the object which caused the exception
* \param selector The selector which doesn't accept the argument
* \return A new invalid argument exception
*/
+ newWithClass: (Class)class
andSelector: (SEL)selector;
/**
* Initializes an already allocated invalid argument exception
*
* \param class The class of the object which caused the exception
* \param selector The selector which doesn't accept the argument
* \return An initialized invalid argument exception
*/
- initWithClass: (Class)class
andSelector: (SEL)selector;
@end
/**
* An OFException indicating that the encoding is invalid for this object.
*/
@interface OFInvalidEncodingException: OFException {}
@end
|
|
|
|
182
183
184
185
186
187
188
189
190
191
192
193
194
195
196
197
198
199
200
201
202
203
204
205
206
|
/**
* \param class The class of the object which caused the exception
* \param selector The selector which doesn't accept the argument
* \return A new invalid argument exception
*/
+ newWithClass: (Class)class
selector: (SEL)selector;
/**
* Initializes an already allocated invalid argument exception
*
* \param class The class of the object which caused the exception
* \param selector The selector which doesn't accept the argument
* \return An initialized invalid argument exception
*/
- initWithClass: (Class)class
selector: (SEL)selector;
@end
/**
* An OFException indicating that the encoding is invalid for this object.
*/
@interface OFInvalidEncodingException: OFException {}
@end
|
︙ | | | ︙ | |
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
255
256
257
|
/**
* \param class The class of the object which caused the exception
* \param path A string of the path to the file tried to open
* \param mode A string of the mode in which the file should have been opened
* \return A new open file failed exception
*/
+ newWithClass: (Class)class
andPath: (OFString*)path
andMode: (OFString*)mode;
/**
* Initializes an already allocated open file failed exception.
*
* \param class The class of the object which caused the exception
* \param path A string of the path to the file which couldn't be opened
* \param mode A string of the mode in which the file should have been opened
* \return An initialized open file failed exception
*/
- initWithClass: (Class)class
andPath: (OFString*)path
andMode: (OFString*)mode;
/**
* \return The errno from when the exception was created
*/
- (int)errNo;
/**
|
|
|
|
|
|
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
255
256
257
|
/**
* \param class The class of the object which caused the exception
* \param path A string of the path to the file tried to open
* \param mode A string of the mode in which the file should have been opened
* \return A new open file failed exception
*/
+ newWithClass: (Class)class
path: (OFString*)path
mode: (OFString*)mode;
/**
* Initializes an already allocated open file failed exception.
*
* \param class The class of the object which caused the exception
* \param path A string of the path to the file which couldn't be opened
* \param mode A string of the mode in which the file should have been opened
* \return An initialized open file failed exception
*/
- initWithClass: (Class)class
path: (OFString*)path
mode: (OFString*)mode;
/**
* \return The errno from when the exception was created
*/
- (int)errNo;
/**
|
︙ | | | ︙ | |
275
276
277
278
279
280
281
282
283
284
285
286
287
288
289
290
291
292
293
294
295
296
297
298
299
300
301
302
303
304
305
306
307
308
309
310
311
312
313
314
315
316
317
318
319
320
321
322
323
324
|
BOOL has_items;
int err;
}
/**
* \param class The class of the object which caused the exception
* \param size The requested size of the data that couldn't be read / written
* \param nitems The requested number of items that couldn't be read / written
* \return A new open file failed exception
*/
+ newWithClass: (Class)class
andSize: (size_t)size
andNItems: (size_t)nitems;
/**
* \param class The class of the object which caused the exception
* \param size The requested size of the data that couldn't be read / written
* \return A new open file failed exception
*/
+ newWithClass: (Class)class
andSize: (size_t)size;
/**
* Initializes an already allocated read or write failed exception.
*
* \param class The class of the object which caused the exception
* \param size The requested size of the data that couldn't be read / written
* \param nitems The requested number of items that couldn't be read / written
* \return A new open file failed exception
*/
- initWithClass: (Class)class
andSize: (size_t)size
andNItems: (size_t)nitems;
/**
* Initializes an already allocated read or write failed exception.
*
* \param class The class of the object which caused the exception
* \param size The requested size of the data that couldn't be read / written
* \return A new open file failed exception
*/
- initWithClass: (Class)class
andSize: (size_t)size;
/**
* \return The errno from when the exception was created
*/
- (int)errNo;
/**
|
|
|
|
|
|
|
|
|
|
275
276
277
278
279
280
281
282
283
284
285
286
287
288
289
290
291
292
293
294
295
296
297
298
299
300
301
302
303
304
305
306
307
308
309
310
311
312
313
314
315
316
317
318
319
320
321
322
323
324
|
BOOL has_items;
int err;
}
/**
* \param class The class of the object which caused the exception
* \param size The requested size of the data that couldn't be read / written
* \param items The requested number of items that couldn't be read / written
* \return A new open file failed exception
*/
+ newWithClass: (Class)class
size: (size_t)size
items: (size_t)items;
/**
* \param class The class of the object which caused the exception
* \param size The requested size of the data that couldn't be read / written
* \return A new open file failed exception
*/
+ newWithClass: (Class)class
size: (size_t)size;
/**
* Initializes an already allocated read or write failed exception.
*
* \param class The class of the object which caused the exception
* \param size The requested size of the data that couldn't be read / written
* \param items The requested number of items that couldn't be read / written
* \return A new open file failed exception
*/
- initWithClass: (Class)class
size: (size_t)size
items: (size_t)items;
/**
* Initializes an already allocated read or write failed exception.
*
* \param class The class of the object which caused the exception
* \param size The requested size of the data that couldn't be read / written
* \return A new open file failed exception
*/
- initWithClass: (Class)class
size: (size_t)size;
/**
* \return The errno from when the exception was created
*/
- (int)errNo;
/**
|
︙ | | | ︙ | |
381
382
383
384
385
386
387
388
389
390
391
392
393
394
395
396
397
398
399
400
401
402
403
404
405
406
407
408
|
/**
* \param class The class of the object which caused the exception
* \param node The node for which translation was requested
* \param service The service of the node for which translation was requested
* \return A new address translation failed exception
*/
+ newWithClass: (Class)class
andNode: (OFString*)node
andService: (OFString*)service;
/**
* Initializes an already allocated address translation failed exception.
*
* \param class The class of the object which caused the exception
* \param node The node for which translation was requested
* \param service The service of the node for which translation was requested
* \return An initialized address translation failed exception
*/
- initWithClass: (Class)class
andNode: (OFString*)node
andService: (OFString*)service;
/**
* \return The errno from when the exception was created
*/
- (int)errNo;
/**
|
|
|
|
|
|
381
382
383
384
385
386
387
388
389
390
391
392
393
394
395
396
397
398
399
400
401
402
403
404
405
406
407
408
|
/**
* \param class The class of the object which caused the exception
* \param node The node for which translation was requested
* \param service The service of the node for which translation was requested
* \return A new address translation failed exception
*/
+ newWithClass: (Class)class
node: (OFString*)node
service: (OFString*)service;
/**
* Initializes an already allocated address translation failed exception.
*
* \param class The class of the object which caused the exception
* \param node The node for which translation was requested
* \param service The service of the node for which translation was requested
* \return An initialized address translation failed exception
*/
- initWithClass: (Class)class
node: (OFString*)node
service: (OFString*)service;
/**
* \return The errno from when the exception was created
*/
- (int)errNo;
/**
|
︙ | | | ︙ | |
429
430
431
432
433
434
435
436
437
438
439
440
441
442
443
444
445
446
447
448
449
450
451
452
453
454
455
456
|
/**
* \param class The class of the object which caused the exception
* \param node The node to which the connection failed
* \param service The service on the node to which the connection failed
* \return A new connection failed exception
*/
+ newWithClass: (Class)class
andNode: (OFString*)node
andService: (OFString*)service;
/**
* Initializes an already allocated connection failed exception.
*
* \param class The class of the object which caused the exception
* \param node The node to which the connection failed
* \param service The service on the node to which the connection failed
* \return An initialized connection failed exception
*/
- initWithClass: (Class)class
andNode: (OFString*)node
andService: (OFString*)service;
/**
* \return The errno from when the exception was created
*/
- (int)errNo;
/**
|
|
|
|
|
|
429
430
431
432
433
434
435
436
437
438
439
440
441
442
443
444
445
446
447
448
449
450
451
452
453
454
455
456
|
/**
* \param class The class of the object which caused the exception
* \param node The node to which the connection failed
* \param service The service on the node to which the connection failed
* \return A new connection failed exception
*/
+ newWithClass: (Class)class
node: (OFString*)node
service: (OFString*)service;
/**
* Initializes an already allocated connection failed exception.
*
* \param class The class of the object which caused the exception
* \param node The node to which the connection failed
* \param service The service on the node to which the connection failed
* \return An initialized connection failed exception
*/
- initWithClass: (Class)class
node: (OFString*)node
service: (OFString*)service;
/**
* \return The errno from when the exception was created
*/
- (int)errNo;
/**
|
︙ | | | ︙ | |
479
480
481
482
483
484
485
486
487
488
489
490
491
492
493
494
495
496
497
498
499
500
501
502
503
504
505
506
507
508
509
|
* \param class The class of the object which caused the exception
* \param node The node on which binding failed
* \param service The service on which binding failed
* \param family The family for which binnding failed
* \return A new bind failed exception
*/
+ newWithClass: (Class)class
andNode: (OFString*)node
andService: (OFString*)service
andFamily: (int)family;
/**
* Initializes an already allocated bind failed exception.
*
* \param class The class of the object which caused the exception
* \param node The node on which binding failed
* \param service The service on which binding failed
* \param family The family for which binnding failed
* \return An initialized bind failed exception
*/
- initWithClass: (Class)class
andNode: (OFString*)node
andService: (OFString*)service
andFamily: (int)family;
/**
* \return The errno from when the exception was created
*/
- (int)errNo;
/**
|
|
|
|
|
|
|
|
479
480
481
482
483
484
485
486
487
488
489
490
491
492
493
494
495
496
497
498
499
500
501
502
503
504
505
506
507
508
509
|
* \param class The class of the object which caused the exception
* \param node The node on which binding failed
* \param service The service on which binding failed
* \param family The family for which binnding failed
* \return A new bind failed exception
*/
+ newWithClass: (Class)class
node: (OFString*)node
service: (OFString*)service
family: (int)family;
/**
* Initializes an already allocated bind failed exception.
*
* \param class The class of the object which caused the exception
* \param node The node on which binding failed
* \param service The service on which binding failed
* \param family The family for which binnding failed
* \return An initialized bind failed exception
*/
- initWithClass: (Class)class
node: (OFString*)node
service: (OFString*)service
family: (int)family;
/**
* \return The errno from when the exception was created
*/
- (int)errNo;
/**
|
︙ | | | ︙ | |
533
534
535
536
537
538
539
540
541
542
543
544
545
546
547
548
549
550
551
552
553
554
555
556
557
|
/**
* \param class The class of the object which caused the exception
* \param backlog The requested size of the back log
* \return A new listen failed exception
*/
+ newWithClass: (Class)class
andBackLog: (int)backlog;
/**
* Initializes an already allocated listen failed exception
*
* \param class The class of the object which caused the exception
* \param backlog The requested size of the back log
* \return An initialized listen failed exception
*/
- initWithClass: (Class)class
andBackLog: (int)backlog;
/**
* \return The errno from when the exception was created
*/
- (int)errNo;
/**
|
|
|
|
533
534
535
536
537
538
539
540
541
542
543
544
545
546
547
548
549
550
551
552
553
554
555
556
557
|
/**
* \param class The class of the object which caused the exception
* \param backlog The requested size of the back log
* \return A new listen failed exception
*/
+ newWithClass: (Class)class
backLog: (int)backlog;
/**
* Initializes an already allocated listen failed exception
*
* \param class The class of the object which caused the exception
* \param backlog The requested size of the back log
* \return An initialized listen failed exception
*/
- initWithClass: (Class)class
backLog: (int)backlog;
/**
* \return The errno from when the exception was created
*/
- (int)errNo;
/**
|
︙ | | | ︙ | |
Modified src/OFExceptions.m
from [fb0a17fe11]
to [0cd8668484].
︙ | | | ︙ | |
98
99
100
101
102
103
104
105
106
107
108
109
110
111
112
113
114
115
116
117
118
119
|
{
return string;
}
@end
@implementation OFOutOfMemoryException
+ newWithClass: (Class)class_
andSize: (size_t)size
{
return [[self alloc] initWithClass: class_
andSize: size];
}
- initWithClass: (Class)class_
andSize: (size_t)size
{
self = [super initWithClass: class_];
req_size = size;
return self;
}
|
|
|
|
|
98
99
100
101
102
103
104
105
106
107
108
109
110
111
112
113
114
115
116
117
118
119
|
{
return string;
}
@end
@implementation OFOutOfMemoryException
+ newWithClass: (Class)class_
size: (size_t)size
{
return [[self alloc] initWithClass: class_
size: size];
}
- initWithClass: (Class)class_
size: (size_t)size
{
self = [super initWithClass: class_];
req_size = size;
return self;
}
|
︙ | | | ︙ | |
134
135
136
137
138
139
140
141
142
143
144
145
146
147
148
149
150
151
152
153
154
155
|
{
return req_size;
}
@end
@implementation OFMemoryNotPartOfObjectException
+ newWithClass: (Class)class_
andPointer: (void*)ptr
{
return [[self alloc] initWithClass: class_
andPointer: ptr];
}
- initWithClass: (Class)class_
andPointer: (void*)ptr
{
self = [super initWithClass: class_];
pointer = ptr;
return self;
}
|
|
|
|
|
134
135
136
137
138
139
140
141
142
143
144
145
146
147
148
149
150
151
152
153
154
155
|
{
return req_size;
}
@end
@implementation OFMemoryNotPartOfObjectException
+ newWithClass: (Class)class_
pointer: (void*)ptr
{
return [[self alloc] initWithClass: class_
pointer: ptr];
}
- initWithClass: (Class)class_
pointer: (void*)ptr
{
self = [super initWithClass: class_];
pointer = ptr;
return self;
}
|
︙ | | | ︙ | |
172
173
174
175
176
177
178
179
180
181
182
183
184
185
186
187
188
189
190
191
192
193
|
{
return pointer;
}
@end
@implementation OFNotImplementedException
+ newWithClass: (Class)class_
andSelector: (SEL)selector_
{
return [[self alloc] initWithClass: class_
andSelector: selector_];
}
- initWithClass: (Class)class_
andSelector: (SEL)selector_
{
self = [super initWithClass: class_];
selector = selector_;
return self;
}
|
|
|
|
|
172
173
174
175
176
177
178
179
180
181
182
183
184
185
186
187
188
189
190
191
192
193
|
{
return pointer;
}
@end
@implementation OFNotImplementedException
+ newWithClass: (Class)class_
selector: (SEL)selector_
{
return [[self alloc] initWithClass: class_
selector: selector_];
}
- initWithClass: (Class)class_
selector: (SEL)selector_
{
self = [super initWithClass: class_];
selector = selector_;
return self;
}
|
︙ | | | ︙ | |
216
217
218
219
220
221
222
223
224
225
226
227
228
229
230
231
232
233
234
235
236
237
|
return string;
}
@end
@implementation OFInvalidArgumentException
+ newWithClass: (Class)class_
andSelector: (SEL)selector_
{
return [[self alloc] initWithClass: class_
andSelector: selector_];
}
- initWithClass: (Class)class_
andSelector: (SEL)selector_
{
self = [super initWithClass: class_];
selector = selector_;
return self;
}
|
|
|
|
|
216
217
218
219
220
221
222
223
224
225
226
227
228
229
230
231
232
233
234
235
236
237
|
return string;
}
@end
@implementation OFInvalidArgumentException
+ newWithClass: (Class)class_
selector: (SEL)selector_
{
return [[self alloc] initWithClass: class_
selector: selector_];
}
- initWithClass: (Class)class_
selector: (SEL)selector_
{
self = [super initWithClass: class_];
selector = selector_;
return self;
}
|
︙ | | | ︙ | |
286
287
288
289
290
291
292
293
294
295
296
297
298
299
300
301
302
303
304
305
306
307
308
309
310
|
return string;
}
@end
@implementation OFOpenFileFailedException
+ newWithClass: (Class)class_
andPath: (OFString*)path_
andMode: (OFString*)mode_
{
return [[self alloc] initWithClass: class_
andPath: path_
andMode: mode_];
}
- initWithClass: (Class)class_
andPath: (OFString*)path_
andMode: (OFString*)mode_
{
self = [super initWithClass: class_];
path = [path_ retain];
mode = [mode_ retain];
err = GET_ERR;
|
|
|
|
|
|
|
|
286
287
288
289
290
291
292
293
294
295
296
297
298
299
300
301
302
303
304
305
306
307
308
309
310
|
return string;
}
@end
@implementation OFOpenFileFailedException
+ newWithClass: (Class)class_
path: (OFString*)path_
mode: (OFString*)mode_
{
return [[self alloc] initWithClass: class_
path: path_
mode: mode_];
}
- initWithClass: (Class)class_
path: (OFString*)path_
mode: (OFString*)mode_
{
self = [super initWithClass: class_];
path = [path_ retain];
mode = [mode_ retain];
err = GET_ERR;
|
︙ | | | ︙ | |
345
346
347
348
349
350
351
352
353
354
355
356
357
358
359
360
361
362
363
364
365
366
367
368
369
370
371
372
373
374
375
376
377
378
379
380
381
382
383
384
385
386
387
388
389
390
391
392
393
|
{
return mode;
}
@end
@implementation OFReadOrWriteFailedException
+ newWithClass: (Class)class_
andSize: (size_t)size
andNItems: (size_t)nitems
{
return [[self alloc] initWithClass: class_
andSize: size
andNItems: nitems];
}
+ newWithClass: (Class)class_
andSize: (size_t)size
{
return [[self alloc] initWithClass: class_
andSize: size];
}
- initWithClass: (Class)class_
andSize: (size_t)size
andNItems: (size_t)nitems
{
self = [super initWithClass: class_];
req_size = size;
req_items = nitems;
has_items = YES;
if (class_ == [OFTCPSocket class])
err = GET_SOCK_ERR;
else
err = GET_ERR;
return self;
}
- initWithClass: (Class)class_
andSize: (size_t)size
{
self = [super initWithClass: class_];
req_size = size;
req_items = 0;
has_items = NO;
|
|
|
|
|
|
|
|
|
|
|
|
345
346
347
348
349
350
351
352
353
354
355
356
357
358
359
360
361
362
363
364
365
366
367
368
369
370
371
372
373
374
375
376
377
378
379
380
381
382
383
384
385
386
387
388
389
390
391
392
393
|
{
return mode;
}
@end
@implementation OFReadOrWriteFailedException
+ newWithClass: (Class)class_
size: (size_t)size
items: (size_t)items
{
return [[self alloc] initWithClass: class_
size: size
items: items];
}
+ newWithClass: (Class)class_
size: (size_t)size
{
return [[self alloc] initWithClass: class_
size: size];
}
- initWithClass: (Class)class_
size: (size_t)size
items: (size_t)items
{
self = [super initWithClass: class_];
req_size = size;
req_items = items;
has_items = YES;
if (class_ == [OFTCPSocket class])
err = GET_SOCK_ERR;
else
err = GET_ERR;
return self;
}
- initWithClass: (Class)class_
size: (size_t)size
{
self = [super initWithClass: class_];
req_size = size;
req_items = 0;
has_items = NO;
|
︙ | | | ︙ | |
496
497
498
499
500
501
502
503
504
505
506
507
508
509
510
511
512
513
514
515
516
517
518
519
520
|
return string;
}
@end
@implementation OFAddressTranslationFailedException
+ newWithClass: (Class)class_
andNode: (OFString*)node_
andService: (OFString*)service_
{
return [[self alloc] initWithClass: class_
andNode: node_
andService: service_];
}
- initWithClass: (Class)class_
andNode: (OFString*)node_
andService: (OFString*)service_
{
self = [super initWithClass: class_];
node = [node_ retain];
service = [service_ retain];
err = GET_AT_ERR;
|
|
|
|
|
|
|
|
496
497
498
499
500
501
502
503
504
505
506
507
508
509
510
511
512
513
514
515
516
517
518
519
520
|
return string;
}
@end
@implementation OFAddressTranslationFailedException
+ newWithClass: (Class)class_
node: (OFString*)node_
service: (OFString*)service_
{
return [[self alloc] initWithClass: class_
node: node_
service: service_];
}
- initWithClass: (Class)class_
node: (OFString*)node_
service: (OFString*)service_
{
self = [super initWithClass: class_];
node = [node_ retain];
service = [service_ retain];
err = GET_AT_ERR;
|
︙ | | | ︙ | |
559
560
561
562
563
564
565
566
567
568
569
570
571
572
573
574
575
576
577
578
579
580
581
582
583
|
{
return service;
}
@end
@implementation OFConnectionFailedException
+ newWithClass: (Class)class_
andNode: (OFString*)node_
andService: (OFString*)service_
{
return [[self alloc] initWithClass: class_
andNode: node_
andService: service_];
}
- initWithClass: (Class)class_
andNode: (OFString*)node_
andService: (OFString*)service_
{
self = [super initWithClass: class_];
node = [node_ retain];
service = [service_ retain];
err = GET_SOCK_ERR;
|
|
|
|
|
|
|
|
559
560
561
562
563
564
565
566
567
568
569
570
571
572
573
574
575
576
577
578
579
580
581
582
583
|
{
return service;
}
@end
@implementation OFConnectionFailedException
+ newWithClass: (Class)class_
node: (OFString*)node_
service: (OFString*)service_
{
return [[self alloc] initWithClass: class_
node: node_
service: service_];
}
- initWithClass: (Class)class_
node: (OFString*)node_
service: (OFString*)service_
{
self = [super initWithClass: class_];
node = [node_ retain];
service = [service_ retain];
err = GET_SOCK_ERR;
|
︙ | | | ︙ | |
619
620
621
622
623
624
625
626
627
628
629
630
631
632
633
634
635
636
637
638
639
640
641
642
643
644
645
646
|
{
return service;
}
@end
@implementation OFBindFailedException
+ newWithClass: (Class)class_
andNode: (OFString*)node_
andService: (OFString*)service_
andFamily: (int)family_
{
return [[self alloc] initWithClass: class_
andNode: node_
andService: service_
andFamily: family_];
}
- initWithClass: (Class)class_
andNode: (OFString*)node_
andService: (OFString*)service_
andFamily: (int)family_
{
self = [super initWithClass: class_];
node = [node_ retain];
service = [service_ retain];
family = family_;
err = GET_SOCK_ERR;
|
|
|
|
|
|
|
|
|
|
|
619
620
621
622
623
624
625
626
627
628
629
630
631
632
633
634
635
636
637
638
639
640
641
642
643
644
645
646
|
{
return service;
}
@end
@implementation OFBindFailedException
+ newWithClass: (Class)class_
node: (OFString*)node_
service: (OFString*)service_
family: (int)family_
{
return [[self alloc] initWithClass: class_
node: node_
service: service_
family: family_];
}
- initWithClass: (Class)class_
node: (OFString*)node_
service: (OFString*)service_
family: (int)family_
{
self = [super initWithClass: class_];
node = [node_ retain];
service = [service_ retain];
family = family_;
err = GET_SOCK_ERR;
|
︙ | | | ︙ | |
688
689
690
691
692
693
694
695
696
697
698
699
700
701
702
703
704
705
706
707
708
709
|
{
return family;
}
@end
@implementation OFListenFailedException
+ newWithClass: (Class)class_
andBackLog: (int)backlog_
{
return [[self alloc] initWithClass: class_
andBackLog: backlog_];
}
- initWithClass: (Class)class_
andBackLog: (int)backlog_
{
self = [super initWithClass: class_];
backlog = backlog_;
err = GET_SOCK_ERR;
return self;
|
|
|
|
|
688
689
690
691
692
693
694
695
696
697
698
699
700
701
702
703
704
705
706
707
708
709
|
{
return family;
}
@end
@implementation OFListenFailedException
+ newWithClass: (Class)class_
backLog: (int)backlog_
{
return [[self alloc] initWithClass: class_
backLog: backlog_];
}
- initWithClass: (Class)class_
backLog: (int)backlog_
{
self = [super initWithClass: class_];
backlog = backlog_;
err = GET_SOCK_ERR;
return self;
|
︙ | | | ︙ | |
Modified src/OFFile.h
from [b3fcaa127c]
to [e55b9c78bb].
︙ | | | ︙ | |
31
32
33
34
35
36
37
38
39
40
41
42
43
44
45
|
/**
* \param path The path to the file to open as a string
* \param mode The mode in which the file should be opened as a string
* \return A new autoreleased OFFile
*/
+ fileWithPath: (OFString*)path
andMode: (OFString*)mode;
/**
* \return An OFFile singleton for stdin
*/
+ standardInput;
/**
|
|
|
31
32
33
34
35
36
37
38
39
40
41
42
43
44
45
|
/**
* \param path The path to the file to open as a string
* \param mode The mode in which the file should be opened as a string
* \return A new autoreleased OFFile
*/
+ fileWithPath: (OFString*)path
mode: (OFString*)mode;
/**
* \return An OFFile singleton for stdin
*/
+ standardInput;
/**
|
︙ | | | ︙ | |
73
74
75
76
77
78
79
80
81
82
83
84
85
86
87
88
|
* \param path The path to the file of which the owner should be changed as a
* string
* \param owner The new owner for the file
* \param group The new group for the file
* \return A boolean whether the operation succeeded
*/
+ (void)changeOwnerOfFile: (OFString*)path
toOwner: (uid_t)owner
andGroup: (gid_t)group;
/**
* Deletes a file.
*
* \param path The path to the file of which should be deleted as a string
* \return A boolean whether the operation succeeded
*/
|
|
|
|
73
74
75
76
77
78
79
80
81
82
83
84
85
86
87
88
|
* \param path The path to the file of which the owner should be changed as a
* string
* \param owner The new owner for the file
* \param group The new group for the file
* \return A boolean whether the operation succeeded
*/
+ (void)changeOwnerOfFile: (OFString*)path
owner: (uid_t)owner
group: (gid_t)group;
/**
* Deletes a file.
*
* \param path The path to the file of which should be deleted as a string
* \return A boolean whether the operation succeeded
*/
|
︙ | | | ︙ | |
116
117
118
119
120
121
122
123
124
125
126
127
128
129
130
|
* Initializes an already allocated OFFile.
*
* \param path The path to the file to open as a string
* \param mode The mode in which the file should be opened as a string
* \return An initialized OFFile
*/
- initWithPath: (OFString*)path
andMode: (OFString*)mode;
/**
* Reads from the file into a buffer.
*
* \param buf The buffer into which the data is read
* \param size The size of the data that should be read.
* The buffer MUST be at least size * nitems big!
|
|
|
116
117
118
119
120
121
122
123
124
125
126
127
128
129
130
|
* Initializes an already allocated OFFile.
*
* \param path The path to the file to open as a string
* \param mode The mode in which the file should be opened as a string
* \return An initialized OFFile
*/
- initWithPath: (OFString*)path
mode: (OFString*)mode;
/**
* Reads from the file into a buffer.
*
* \param buf The buffer into which the data is read
* \param size The size of the data that should be read.
* The buffer MUST be at least size * nitems big!
|
︙ | | | ︙ | |
Modified src/OFFile.m
from [9a531e1b8b]
to [4d9a49c8b5].
︙ | | | ︙ | |
25
26
27
28
29
30
31
32
33
34
35
36
37
38
39
40
41
42
|
static OFFileSingleton *of_file_stdin = nil;
static OFFileSingleton *of_file_stdout = nil;
static OFFileSingleton *of_file_stderr = nil;
@implementation OFFile
+ fileWithPath: (OFString*)path
andMode: (OFString*)mode
{
return [[[self alloc] initWithPath: path
andMode: mode] autorelease];
}
+ standardInput
{
if (of_file_stdin == nil)
of_file_stdin = [[OFFileSingleton alloc]
initWithFilePointer: stdin];
|
|
|
|
25
26
27
28
29
30
31
32
33
34
35
36
37
38
39
40
41
42
|
static OFFileSingleton *of_file_stdin = nil;
static OFFileSingleton *of_file_stdout = nil;
static OFFileSingleton *of_file_stderr = nil;
@implementation OFFile
+ fileWithPath: (OFString*)path
mode: (OFString*)mode
{
return [[[self alloc] initWithPath: path
mode: mode] autorelease];
}
+ standardInput
{
if (of_file_stdin == nil)
of_file_stdin = [[OFFileSingleton alloc]
initWithFilePointer: stdin];
|
︙ | | | ︙ | |
71
72
73
74
75
76
77
78
79
80
81
82
83
84
85
86
|
*/
#ifndef _WIN32
chmod([path cString], mode);
#endif
}
+ (void)changeOwnerOfFile: (OFString*)path
toOwner: (uid_t)owner
andGroup: (gid_t)group
{
/* FIXME: On error, throw exception */
#ifndef _WIN32
chown([path cString], owner, group);
#endif
}
|
|
|
|
71
72
73
74
75
76
77
78
79
80
81
82
83
84
85
86
|
*/
#ifndef _WIN32
chmod([path cString], mode);
#endif
}
+ (void)changeOwnerOfFile: (OFString*)path
owner: (uid_t)owner
group: (gid_t)group
{
/* FIXME: On error, throw exception */
#ifndef _WIN32
chown([path cString], owner, group);
#endif
}
|
︙ | | | ︙ | |
105
106
107
108
109
110
111
112
113
114
115
116
117
118
119
120
121
122
123
124
125
126
127
128
129
130
|
/* FIXME: On error, throw exception */
#ifndef _WIN32
symlink([src cString], [dest cString]);
#endif
}
- initWithPath: (OFString*)path
andMode: (OFString*)mode
{
Class c;
self = [super init];
if ((fp = fopen([path cString], [mode cString])) == NULL) {
c = isa;
[super dealloc];
@throw [OFOpenFileFailedException newWithClass: c
andPath: path
andMode: mode];
}
return self;
}
- (void)dealloc
{
|
|
|
|
|
105
106
107
108
109
110
111
112
113
114
115
116
117
118
119
120
121
122
123
124
125
126
127
128
129
130
|
/* FIXME: On error, throw exception */
#ifndef _WIN32
symlink([src cString], [dest cString]);
#endif
}
- initWithPath: (OFString*)path
mode: (OFString*)mode
{
Class c;
self = [super init];
if ((fp = fopen([path cString], [mode cString])) == NULL) {
c = isa;
[super dealloc];
@throw [OFOpenFileFailedException newWithClass: c
path: path
mode: mode];
}
return self;
}
- (void)dealloc
{
|
︙ | | | ︙ | |
148
149
150
151
152
153
154
155
156
157
158
159
160
161
162
163
|
{
size_t ret;
if (fp == NULL || feof(fp) ||
((ret = fread(buf, size, nitems, fp)) == 0 &&
size != 0 && nitems != 0 && !feof(fp)))
@throw [OFReadFailedException newWithClass: isa
andSize: size
andNItems: nitems];
return ret;
}
- (size_t)readNBytes: (size_t)size
intoBuffer: (char*)buf
{
|
|
|
|
148
149
150
151
152
153
154
155
156
157
158
159
160
161
162
163
|
{
size_t ret;
if (fp == NULL || feof(fp) ||
((ret = fread(buf, size, nitems, fp)) == 0 &&
size != 0 && nitems != 0 && !feof(fp)))
@throw [OFReadFailedException newWithClass: isa
size: size
items: nitems];
return ret;
}
- (size_t)readNBytes: (size_t)size
intoBuffer: (char*)buf
{
|
︙ | | | ︙ | |
172
173
174
175
176
177
178
179
180
181
182
183
184
185
186
187
|
{
size_t ret;
if (fp == NULL || feof(fp) ||
((ret = fwrite(buf, size, nitems, fp)) < nitems &&
size != 0 && nitems != 0))
@throw [OFWriteFailedException newWithClass: isa
andSize: size
andNItems: nitems];
return ret;
}
- (size_t)writeNBytes: (size_t)size
fromBuffer: (const char*)buf
{
|
|
|
|
172
173
174
175
176
177
178
179
180
181
182
183
184
185
186
187
|
{
size_t ret;
if (fp == NULL || feof(fp) ||
((ret = fwrite(buf, size, nitems, fp)) < nitems &&
size != 0 && nitems != 0))
@throw [OFWriteFailedException newWithClass: isa
size: size
items: nitems];
return ret;
}
- (size_t)writeNBytes: (size_t)size
fromBuffer: (const char*)buf
{
|
︙ | | | ︙ | |
234
235
236
237
238
239
240
241
242
243
244
|
{
return SIZE_MAX;
}
- (void)dealloc
{
@throw [OFNotImplementedException newWithClass: isa
andSelector: _cmd];
[super dealloc]; /* Get rid of stupid warning */
}
@end
|
|
|
234
235
236
237
238
239
240
241
242
243
244
|
{
return SIZE_MAX;
}
- (void)dealloc
{
@throw [OFNotImplementedException newWithClass: isa
selector: _cmd];
[super dealloc]; /* Get rid of stupid warning */
}
@end
|
Modified src/OFIterator.h
from [b88ba4de2f]
to [bde5592843].
︙ | | | ︙ | |
29
30
31
32
33
34
35
36
37
38
39
40
41
42
43
|
OFList **data;
size_t size;
size_t pos;
of_dictionary_list_object_t *last;
}
- initWithData: (OFList**)data
andSize: (size_t)size;
/**
* \return A struct containing the next key and object
*/
- (of_iterator_pair_t)nextKeyObjectPair;
/**
|
|
|
29
30
31
32
33
34
35
36
37
38
39
40
41
42
43
|
OFList **data;
size_t size;
size_t pos;
of_dictionary_list_object_t *last;
}
- initWithData: (OFList**)data
size: (size_t)size;
/**
* \return A struct containing the next key and object
*/
- (of_iterator_pair_t)nextKeyObjectPair;
/**
|
︙ | | | ︙ | |
Modified src/OFIterator.m
from [7c8346b7b5]
to [2650b6ee1b].
︙ | | | ︙ | |
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
|
#import "OFExceptions.h"
/* Reference for static linking */
int _OFIterator_reference;
@implementation OFIterator
- initWithData: (OFList**)data_
andSize: (size_t)size_
{
self = [super init];
data = data_;
size = size_;
last = NULL;
|
|
|
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
|
#import "OFExceptions.h"
/* Reference for static linking */
int _OFIterator_reference;
@implementation OFIterator
- initWithData: (OFList**)data_
size: (size_t)size_
{
self = [super init];
data = data_;
size = size_;
last = NULL;
|
︙ | | | ︙ | |
72
73
74
75
76
77
78
79
80
81
|
}
@end
@implementation OFDictionary (OFIterator)
- (OFIterator*)iterator
{
return [[[OFIterator alloc] initWithData: data
andSize: size] autorelease];
}
@end
|
|
|
72
73
74
75
76
77
78
79
80
81
|
}
@end
@implementation OFDictionary (OFIterator)
- (OFIterator*)iterator
{
return [[[OFIterator alloc] initWithData: data
size: size] autorelease];
}
@end
|
Modified src/OFMutableDictionary.m
from [66ece5ed91]
to [43575dd54b].
︙ | | | ︙ | |
22
23
24
25
26
27
28
29
30
31
32
33
34
35
36
|
forKey: (OFObject <OFCopying>*)key
{
uint32_t fullhash, hash;
of_dictionary_list_object_t *iter;
if (key == nil || obj == nil)
@throw [OFInvalidArgumentException newWithClass: isa
andSelector: _cmd];
fullhash = [key hash];
hash = fullhash & (size - 1);
if (data[hash] == nil)
data[hash] = [[OFList alloc] initWithListObjectSize:
sizeof(of_dictionary_list_object_t)];
|
|
|
22
23
24
25
26
27
28
29
30
31
32
33
34
35
36
|
forKey: (OFObject <OFCopying>*)key
{
uint32_t fullhash, hash;
of_dictionary_list_object_t *iter;
if (key == nil || obj == nil)
@throw [OFInvalidArgumentException newWithClass: isa
selector: _cmd];
fullhash = [key hash];
hash = fullhash & (size - 1);
if (data[hash] == nil)
data[hash] = [[OFList alloc] initWithListObjectSize:
sizeof(of_dictionary_list_object_t)];
|
︙ | | | ︙ | |
64
65
66
67
68
69
70
71
72
73
74
75
76
77
78
|
- removeObjectForKey: (OFObject*)key
{
uint32_t hash;
of_dictionary_list_object_t *iter;
if (key == nil)
@throw [OFInvalidArgumentException newWithClass: isa
andSelector: _cmd];
hash = [key hash] & (size - 1);
if (data[hash] == nil)
return self;
for (iter = (of_dictionary_list_object_t*)[data[hash] first];
|
|
|
64
65
66
67
68
69
70
71
72
73
74
75
76
77
78
|
- removeObjectForKey: (OFObject*)key
{
uint32_t hash;
of_dictionary_list_object_t *iter;
if (key == nil)
@throw [OFInvalidArgumentException newWithClass: isa
selector: _cmd];
hash = [key hash] & (size - 1);
if (data[hash] == nil)
return self;
for (iter = (of_dictionary_list_object_t*)[data[hash] first];
|
︙ | | | ︙ | |
97
98
99
100
101
102
103
104
105
106
107
108
109
110
111
|
{
OFList **newdata;
size_t newsize, i;
of_dictionary_list_object_t *iter;
if (hashsize < 8 || hashsize >= 28)
@throw [OFInvalidArgumentException newWithClass: isa
andSelector: _cmd];
newsize = (size_t)1 << hashsize;
newdata = [self allocMemoryForNItems: newsize
withSize: sizeof(OFList*)];
memset(newdata, 0, newsize * sizeof(OFList*));
for (i = 0; i < size; i++) {
|
|
|
97
98
99
100
101
102
103
104
105
106
107
108
109
110
111
|
{
OFList **newdata;
size_t newsize, i;
of_dictionary_list_object_t *iter;
if (hashsize < 8 || hashsize >= 28)
@throw [OFInvalidArgumentException newWithClass: isa
selector: _cmd];
newsize = (size_t)1 << hashsize;
newdata = [self allocMemoryForNItems: newsize
withSize: sizeof(OFList*)];
memset(newdata, 0, newsize * sizeof(OFList*));
for (i = 0; i < size; i++) {
|
︙ | | | ︙ | |
Modified src/OFMutableString.h
from [d951857644]
to [722b2ff321].
︙ | | | ︙ | |
59
60
61
62
63
64
65
66
67
68
69
70
71
72
73
|
* Only use this if you are 100% sure the string you append is either ASCII or
* UTF-8!
*
* \param str A UTF-8 encoded C string to append
* \param len The length of the UTF-8 encoded C string
*/
- appendCStringWithoutUTF8Checking: (const char*)str
andLength: (size_t)len;
/**
* Appends another OFString to the OFString.
*
* \param str An OFString to append
*/
- appendString: (OFString*)str;
|
|
|
59
60
61
62
63
64
65
66
67
68
69
70
71
72
73
|
* Only use this if you are 100% sure the string you append is either ASCII or
* UTF-8!
*
* \param str A UTF-8 encoded C string to append
* \param len The length of the UTF-8 encoded C string
*/
- appendCStringWithoutUTF8Checking: (const char*)str
length: (size_t)len;
/**
* Appends another OFString to the OFString.
*
* \param str An OFString to append
*/
- appendString: (OFString*)str;
|
︙ | | | ︙ | |
84
85
86
87
88
89
90
91
92
93
94
95
96
97
98
|
* Appends a formatted UTF-8 encoded C string to the OFString.
* See printf for the format syntax.
*
* \param fmt A format string which generates the string to append
* \param args The arguments used in the format string
*/
- appendWithFormat: (OFString*)fmt
andArguments: (va_list)args;
/**
* Reverse the OFString.
*/
- reverse;
/**
|
|
|
84
85
86
87
88
89
90
91
92
93
94
95
96
97
98
|
* Appends a formatted UTF-8 encoded C string to the OFString.
* See printf for the format syntax.
*
* \param fmt A format string which generates the string to append
* \param args The arguments used in the format string
*/
- appendWithFormat: (OFString*)fmt
arguments: (va_list)args;
/**
* Reverse the OFString.
*/
- reverse;
/**
|
︙ | | | ︙ | |
Modified src/OFMutableString.m
from [d6f1d8e020]
to [aa0351ec1a].
︙ | | | ︙ | |
114
115
116
117
118
119
120
121
122
123
124
125
126
127
128
|
memcpy(string + length, str, strlength + 1);
length += strlength;
return self;
}
- appendCStringWithoutUTF8Checking: (const char*)str
andLength: (size_t)len
{
if (len > strlen(str))
@throw [OFOutOfRangeException newWithClass: isa];
string = [self resizeMemory: string
toSize: length + len + 1];
memcpy(string + length, str, len);
|
|
|
114
115
116
117
118
119
120
121
122
123
124
125
126
127
128
|
memcpy(string + length, str, strlength + 1);
length += strlength;
return self;
}
- appendCStringWithoutUTF8Checking: (const char*)str
length: (size_t)len
{
if (len > strlen(str))
@throw [OFOutOfRangeException newWithClass: isa];
string = [self resizeMemory: string
toSize: length + len + 1];
memcpy(string + length, str, len);
|
︙ | | | ︙ | |
140
141
142
143
144
145
146
147
148
149
150
151
152
153
154
155
156
157
158
159
160
161
|
- appendWithFormat: (OFString*)fmt, ...
{
id ret;
va_list args;
va_start(args, fmt);
ret = [self appendWithFormat: fmt
andArguments: args];
va_end(args);
return ret;
}
- appendWithFormat: (OFString*)fmt
andArguments: (va_list)args
{
char *t;
if (fmt == NULL)
@throw [OFInvalidFormatException newWithClass: isa];
if ((vasprintf(&t, [fmt cString], args)) == -1)
|
|
|
|
140
141
142
143
144
145
146
147
148
149
150
151
152
153
154
155
156
157
158
159
160
161
|
- appendWithFormat: (OFString*)fmt, ...
{
id ret;
va_list args;
va_start(args, fmt);
ret = [self appendWithFormat: fmt
arguments: args];
va_end(args);
return ret;
}
- appendWithFormat: (OFString*)fmt
arguments: (va_list)args
{
char *t;
if (fmt == NULL)
@throw [OFInvalidFormatException newWithClass: isa];
if ((vasprintf(&t, [fmt cString], args)) == -1)
|
︙ | | | ︙ | |
Modified src/OFNumber.m
from [6fac52d2f8]
to [d35a23e51f].
︙ | | | ︙ | |
744
745
746
747
748
749
750
751
752
753
754
755
756
757
758
|
case OF_NUMBER_INTPTR:
return ([obj asUIntMax] == [self asUIntMax] ? YES : NO);
case OF_NUMBER_FLOAT:
case OF_NUMBER_DOUBLE:
return ([obj asDouble] == [self asDouble] ? YES : NO);
default:
@throw [OFInvalidArgumentException newWithClass: isa
andSelector: _cmd];
}
}
- (uint32_t)hash
{
return [self asUInt32];
}
|
|
|
744
745
746
747
748
749
750
751
752
753
754
755
756
757
758
|
case OF_NUMBER_INTPTR:
return ([obj asUIntMax] == [self asUIntMax] ? YES : NO);
case OF_NUMBER_FLOAT:
case OF_NUMBER_DOUBLE:
return ([obj asDouble] == [self asDouble] ? YES : NO);
default:
@throw [OFInvalidArgumentException newWithClass: isa
selector: _cmd];
}
}
- (uint32_t)hash
{
return [self asUInt32];
}
|
︙ | | | ︙ | |
Modified src/OFObject.m
from [cb5875a194]
to [bc5794b890].
︙ | | | ︙ | |
145
146
147
148
149
150
151
152
153
154
155
156
157
158
159
160
161
162
163
164
165
166
167
168
169
170
171
172
173
174
175
176
177
178
179
|
{
#ifdef __objc_INCLUDE_GNU
Method_t method = class_get_instance_method(self, selector);
IMP oldimp;
if (method == NULL)
@throw [OFInvalidArgumentException newWithClass: self
andSelector: _cmd];
if ((oldimp = method_get_imp(method)) == (IMP)0 || newimp == (IMP)0)
@throw [OFInvalidArgumentException newWithClass: self
andSelector: _cmd];
method->method_imp = newimp;
/* Update the dtable if necessary */
if (sarray_get_safe(((Class)self)->dtable,
(sidx)method->method_name->sel_id))
sarray_at_put_safe(((Class)self)->dtable,
(sidx)method->method_name->sel_id, method->method_imp);
return oldimp;
#else
Method method;
if ((method = class_getInstanceMethod(self, selector)) == NULL)
@throw [OFInvalidArgumentException newWithClass: self
andSelector: _cmd];
return method_setImplementation(method, newimp);
#endif
}
+ (IMP)replaceMethod: (SEL)selector
withMethodFromClass: (Class)class;
|
|
|
|
|
145
146
147
148
149
150
151
152
153
154
155
156
157
158
159
160
161
162
163
164
165
166
167
168
169
170
171
172
173
174
175
176
177
178
179
|
{
#ifdef __objc_INCLUDE_GNU
Method_t method = class_get_instance_method(self, selector);
IMP oldimp;
if (method == NULL)
@throw [OFInvalidArgumentException newWithClass: self
selector: _cmd];
if ((oldimp = method_get_imp(method)) == (IMP)0 || newimp == (IMP)0)
@throw [OFInvalidArgumentException newWithClass: self
selector: _cmd];
method->method_imp = newimp;
/* Update the dtable if necessary */
if (sarray_get_safe(((Class)self)->dtable,
(sidx)method->method_name->sel_id))
sarray_at_put_safe(((Class)self)->dtable,
(sidx)method->method_name->sel_id, method->method_imp);
return oldimp;
#else
Method method;
if ((method = class_getInstanceMethod(self, selector)) == NULL)
@throw [OFInvalidArgumentException newWithClass: self
selector: _cmd];
return method_setImplementation(method, newimp);
#endif
}
+ (IMP)replaceMethod: (SEL)selector
withMethodFromClass: (Class)class;
|
︙ | | | ︙ | |
275
276
277
278
279
280
281
282
283
284
285
286
287
288
289
|
if (SIZE_MAX - PRE_IVAR->memchunks_size < 1 ||
memchunks_size > SIZE_MAX / sizeof(void*))
@throw [OFOutOfRangeException newWithClass: isa];
if ((memchunks = realloc(PRE_IVAR->memchunks,
memchunks_size * sizeof(void*))) == NULL)
@throw [OFOutOfMemoryException newWithClass: isa
andSize: memchunks_size];
PRE_IVAR->memchunks = memchunks;
PRE_IVAR->memchunks[PRE_IVAR->memchunks_size] = ptr;
PRE_IVAR->memchunks_size = memchunks_size;
return self;
}
|
|
|
275
276
277
278
279
280
281
282
283
284
285
286
287
288
289
|
if (SIZE_MAX - PRE_IVAR->memchunks_size < 1 ||
memchunks_size > SIZE_MAX / sizeof(void*))
@throw [OFOutOfRangeException newWithClass: isa];
if ((memchunks = realloc(PRE_IVAR->memchunks,
memchunks_size * sizeof(void*))) == NULL)
@throw [OFOutOfMemoryException newWithClass: isa
size: memchunks_size];
PRE_IVAR->memchunks = memchunks;
PRE_IVAR->memchunks[PRE_IVAR->memchunks_size] = ptr;
PRE_IVAR->memchunks_size = memchunks_size;
return self;
}
|
︙ | | | ︙ | |
300
301
302
303
304
305
306
307
308
309
310
311
312
313
314
315
316
317
318
319
320
|
if (SIZE_MAX - PRE_IVAR->memchunks_size == 0 ||
memchunks_size > SIZE_MAX / sizeof(void*))
@throw [OFOutOfRangeException newWithClass: isa];
if ((ptr = malloc(size)) == NULL)
@throw [OFOutOfMemoryException newWithClass: isa
andSize: size];
if ((memchunks = realloc(PRE_IVAR->memchunks,
memchunks_size * sizeof(void*))) == NULL) {
free(ptr);
@throw [OFOutOfMemoryException newWithClass: isa
andSize: memchunks_size];
}
PRE_IVAR->memchunks = memchunks;
PRE_IVAR->memchunks[PRE_IVAR->memchunks_size] = ptr;
PRE_IVAR->memchunks_size = memchunks_size;
return ptr;
|
|
|
|
300
301
302
303
304
305
306
307
308
309
310
311
312
313
314
315
316
317
318
319
320
|
if (SIZE_MAX - PRE_IVAR->memchunks_size == 0 ||
memchunks_size > SIZE_MAX / sizeof(void*))
@throw [OFOutOfRangeException newWithClass: isa];
if ((ptr = malloc(size)) == NULL)
@throw [OFOutOfMemoryException newWithClass: isa
size: size];
if ((memchunks = realloc(PRE_IVAR->memchunks,
memchunks_size * sizeof(void*))) == NULL) {
free(ptr);
@throw [OFOutOfMemoryException newWithClass: isa
size: memchunks_size];
}
PRE_IVAR->memchunks = memchunks;
PRE_IVAR->memchunks[PRE_IVAR->memchunks_size] = ptr;
PRE_IVAR->memchunks_size = memchunks_size;
return ptr;
|
︙ | | | ︙ | |
348
349
350
351
352
353
354
355
356
357
358
359
360
361
362
363
364
365
366
367
368
369
370
|
iter = PRE_IVAR->memchunks + PRE_IVAR->memchunks_size;
while (iter-- > PRE_IVAR->memchunks) {
if (OF_UNLIKELY(*iter == ptr)) {
if (OF_UNLIKELY((ptr = realloc(ptr, size)) == NULL))
@throw [OFOutOfMemoryException
newWithClass: isa
andSize: size];
*iter = ptr;
return ptr;
}
}
@throw [OFMemoryNotPartOfObjectException newWithClass: isa
andPointer: ptr];
}
- (void*)resizeMemory: (void*)ptr
toNItems: (size_t)nitems
withSize: (size_t)size
{
if (ptr == NULL)
|
|
|
|
348
349
350
351
352
353
354
355
356
357
358
359
360
361
362
363
364
365
366
367
368
369
370
|
iter = PRE_IVAR->memchunks + PRE_IVAR->memchunks_size;
while (iter-- > PRE_IVAR->memchunks) {
if (OF_UNLIKELY(*iter == ptr)) {
if (OF_UNLIKELY((ptr = realloc(ptr, size)) == NULL))
@throw [OFOutOfMemoryException
newWithClass: isa
size: size];
*iter = ptr;
return ptr;
}
}
@throw [OFMemoryNotPartOfObjectException newWithClass: isa
pointer: ptr];
}
- (void*)resizeMemory: (void*)ptr
toNItems: (size_t)nitems
withSize: (size_t)size
{
if (ptr == NULL)
|
︙ | | | ︙ | |
422
423
424
425
426
427
428
429
430
431
432
433
434
435
436
|
PRE_IVAR->memchunks_size = memchunks_size;
return self;
}
}
@throw [OFMemoryNotPartOfObjectException newWithClass: isa
andPointer: ptr];
}
- retain
{
PRE_IVAR->retain_count++;
return self;
|
|
|
422
423
424
425
426
427
428
429
430
431
432
433
434
435
436
|
PRE_IVAR->memchunks_size = memchunks_size;
return self;
}
}
@throw [OFMemoryNotPartOfObjectException newWithClass: isa
pointer: ptr];
}
- retain
{
PRE_IVAR->retain_count++;
return self;
|
︙ | | | ︙ | |
470
471
472
473
474
475
476
477
478
479
480
481
482
483
484
485
486
487
488
489
490
491
492
493
494
495
496
497
498
499
500
501
502
503
504
505
506
507
508
509
510
511
512
513
514
515
516
517
518
|
/*
* Those are needed as the root class is the superclass of the root class's
* metaclass and thus instance methods can be sent to class objects as well.
*/
+ addMemoryToPool: (void*)ptr
{
@throw [OFNotImplementedException newWithClass: self
andSelector: _cmd];
}
+ (void*)allocMemoryWithSize: (size_t)size
{
@throw [OFNotImplementedException newWithClass: self
andSelector: _cmd];
}
+ (void*)allocMemoryForNItems: (size_t)nitems
withSize: (size_t)size
{
@throw [OFNotImplementedException newWithClass: self
andSelector: _cmd];
}
+ (void*)resizeMemory: (void*)ptr
toSize: (size_t)size
{
@throw [OFNotImplementedException newWithClass: self
andSelector: _cmd];
}
+ (void*)resizeMemory: (void*)ptr
toNItems: (size_t)nitems
withSize: (size_t)size
{
@throw [OFNotImplementedException newWithClass: self
andSelector: _cmd];
}
+ freeMemory: (void*)ptr
{
@throw [OFNotImplementedException newWithClass: self
andSelector: _cmd];
}
+ retain
{
return self;
}
|
|
|
|
|
|
|
|
470
471
472
473
474
475
476
477
478
479
480
481
482
483
484
485
486
487
488
489
490
491
492
493
494
495
496
497
498
499
500
501
502
503
504
505
506
507
508
509
510
511
512
513
514
515
516
517
518
|
/*
* Those are needed as the root class is the superclass of the root class's
* metaclass and thus instance methods can be sent to class objects as well.
*/
+ addMemoryToPool: (void*)ptr
{
@throw [OFNotImplementedException newWithClass: self
selector: _cmd];
}
+ (void*)allocMemoryWithSize: (size_t)size
{
@throw [OFNotImplementedException newWithClass: self
selector: _cmd];
}
+ (void*)allocMemoryForNItems: (size_t)nitems
withSize: (size_t)size
{
@throw [OFNotImplementedException newWithClass: self
selector: _cmd];
}
+ (void*)resizeMemory: (void*)ptr
toSize: (size_t)size
{
@throw [OFNotImplementedException newWithClass: self
selector: _cmd];
}
+ (void*)resizeMemory: (void*)ptr
toNItems: (size_t)nitems
withSize: (size_t)size
{
@throw [OFNotImplementedException newWithClass: self
selector: _cmd];
}
+ freeMemory: (void*)ptr
{
@throw [OFNotImplementedException newWithClass: self
selector: _cmd];
}
+ retain
{
return self;
}
|
︙ | | | ︙ | |
Modified src/OFPlugin.m
from [81e7a99874]
to [310c254d06].
︙ | | | ︙ | |
28
29
30
31
32
33
34
35
36
37
38
39
40
41
42
|
OFPlugin *plugin;
pathlen = [path length];
suffixlen = strlen(PLUGIN_SUFFIX);
if ((file = malloc(pathlen + suffixlen + 1)) == NULL) {
@throw [OFOutOfMemoryException newWithClass: self
andSize: pathlen +
suffixlen + 1];
}
memcpy(file, [path cString], pathlen);
memcpy(file + pathlen, PLUGIN_SUFFIX, suffixlen);
file[pathlen + suffixlen] = 0;
if ((handle = dlopen(file, RTLD_NOW)) == NULL) {
|
|
|
28
29
30
31
32
33
34
35
36
37
38
39
40
41
42
|
OFPlugin *plugin;
pathlen = [path length];
suffixlen = strlen(PLUGIN_SUFFIX);
if ((file = malloc(pathlen + suffixlen + 1)) == NULL) {
@throw [OFOutOfMemoryException newWithClass: self
size: pathlen +
suffixlen + 1];
}
memcpy(file, [path cString], pathlen);
memcpy(file + pathlen, PLUGIN_SUFFIX, suffixlen);
file[pathlen + suffixlen] = 0;
if ((handle = dlopen(file, RTLD_NOW)) == NULL) {
|
︙ | | | ︙ | |
Modified src/OFSocket.m
from [f493de3de8]
to [ee6abc7e26].
︙ | | | ︙ | |
78
79
80
81
82
83
84
85
86
87
88
89
90
91
92
|
ssize_t ret;
if (sock == INVALID_SOCKET)
@throw [OFNotConnectedException newWithClass: isa];
if ((ret = send(sock, buf, size, 0)) == -1)
@throw [OFWriteFailedException newWithClass: isa
andSize: size];
/* This is safe, as we already checked for -1 */
return ret;
}
- (size_t)writeCString: (const char*)str
{
|
|
|
78
79
80
81
82
83
84
85
86
87
88
89
90
91
92
|
ssize_t ret;
if (sock == INVALID_SOCKET)
@throw [OFNotConnectedException newWithClass: isa];
if ((ret = send(sock, buf, size, 0)) == -1)
@throw [OFWriteFailedException newWithClass: isa
size: size];
/* This is safe, as we already checked for -1 */
return ret;
}
- (size_t)writeCString: (const char*)str
{
|
︙ | | | ︙ | |
122
123
124
125
126
127
128
129
130
131
132
133
134
135
136
137
138
139
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
167
168
169
|
return self;
}
- connectToService: (OFString*)service
onNode: (OFString*)node
{
@throw [OFNotImplementedException newWithClass: isa
andSelector: _cmd];
}
- bindService: (OFString*)service
onNode: (OFString*)node
withFamily: (int)family
{
@throw [OFNotImplementedException newWithClass: isa
andSelector: _cmd];
}
- listenWithBackLog: (int)backlog
{
@throw [OFNotImplementedException newWithClass: isa
andSelector: _cmd];
}
- listen
{
@throw [OFNotImplementedException newWithClass: isa
andSelector: _cmd];
}
- (OFSocket*)accept
{
@throw [OFNotImplementedException newWithClass: isa
andSelector: _cmd];
}
- enableKeepAlives: (BOOL)enable
{
@throw [OFNotImplementedException newWithClass: isa
andSelector: _cmd];
}
- close
{
@throw [OFNotImplementedException newWithClass: isa
andSelector: _cmd];
}
@end
|
|
|
|
|
|
|
|
|
122
123
124
125
126
127
128
129
130
131
132
133
134
135
136
137
138
139
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
167
168
169
|
return self;
}
- connectToService: (OFString*)service
onNode: (OFString*)node
{
@throw [OFNotImplementedException newWithClass: isa
selector: _cmd];
}
- bindService: (OFString*)service
onNode: (OFString*)node
withFamily: (int)family
{
@throw [OFNotImplementedException newWithClass: isa
selector: _cmd];
}
- listenWithBackLog: (int)backlog
{
@throw [OFNotImplementedException newWithClass: isa
selector: _cmd];
}
- listen
{
@throw [OFNotImplementedException newWithClass: isa
selector: _cmd];
}
- (OFSocket*)accept
{
@throw [OFNotImplementedException newWithClass: isa
selector: _cmd];
}
- enableKeepAlives: (BOOL)enable
{
@throw [OFNotImplementedException newWithClass: isa
selector: _cmd];
}
- close
{
@throw [OFNotImplementedException newWithClass: isa
selector: _cmd];
}
@end
|
Modified src/OFStream.m
from [fc7e1fba0a]
to [5bb8f6d8aa].
︙ | | | ︙ | |
45
46
47
48
49
50
51
52
53
54
55
56
57
58
59
60
61
62
63
64
65
66
67
68
69
70
71
72
73
74
75
76
77
78
79
80
81
|
return self;
}
- (BOOL)atEndOfStream
{
@throw [OFNotImplementedException newWithClass: isa
andSelector: _cmd];
}
- (size_t)readNBytes: (size_t)size
intoBuffer: (char*)buf
{
@throw [OFNotImplementedException newWithClass: isa
andSelector: _cmd];
}
- (OFString*)readLine
{
size_t i, len;
char *ret_c, *tmp, *tmp2;
OFString *ret;
/* Look if there's a line or \0 in our cache */
if (cache != NULL) {
for (i = 0; i < cache_len; i++) {
if (OF_UNLIKELY(cache[i] == '\n' ||
cache[i] == '\0')) {
ret = [OFString stringWithCString: cache
andLength: i];
tmp = [self allocMemoryWithSize: cache_len -
i - 1];
memcpy(tmp, cache + i + 1, cache_len - i - 1);
[self freeMemory: cache];
cache = tmp;
|
|
|
|
|
45
46
47
48
49
50
51
52
53
54
55
56
57
58
59
60
61
62
63
64
65
66
67
68
69
70
71
72
73
74
75
76
77
78
79
80
81
|
return self;
}
- (BOOL)atEndOfStream
{
@throw [OFNotImplementedException newWithClass: isa
selector: _cmd];
}
- (size_t)readNBytes: (size_t)size
intoBuffer: (char*)buf
{
@throw [OFNotImplementedException newWithClass: isa
selector: _cmd];
}
- (OFString*)readLine
{
size_t i, len;
char *ret_c, *tmp, *tmp2;
OFString *ret;
/* Look if there's a line or \0 in our cache */
if (cache != NULL) {
for (i = 0; i < cache_len; i++) {
if (OF_UNLIKELY(cache[i] == '\n' ||
cache[i] == '\0')) {
ret = [OFString stringWithCString: cache
length: i];
tmp = [self allocMemoryWithSize: cache_len -
i - 1];
memcpy(tmp, cache + i + 1, cache_len - i - 1);
[self freeMemory: cache];
cache = tmp;
|
︙ | | | ︙ | |
93
94
95
96
97
98
99
100
101
102
103
104
105
106
107
|
if ([self atEndOfStream]) {
[self freeMemory: tmp];
if (cache == NULL)
return nil;
ret = [OFString stringWithCString: cache
andLength: cache_len];
[self freeMemory: cache];
cache = NULL;
cache_len = 0;
return ret;
}
|
|
|
93
94
95
96
97
98
99
100
101
102
103
104
105
106
107
|
if ([self atEndOfStream]) {
[self freeMemory: tmp];
if (cache == NULL)
return nil;
ret = [OFString stringWithCString: cache
length: cache_len];
[self freeMemory: cache];
cache = NULL;
cache_len = 0;
return ret;
}
|
︙ | | | ︙ | |
184
185
186
187
188
189
190
191
192
193
194
195
196
197
198
|
}
}
- (size_t)writeNBytes: (size_t)size
fromBuffer: (const char*)buf
{
@throw [OFNotImplementedException newWithClass: isa
andSelector: _cmd];
}
- (size_t)writeString: (OFString*)str
{
return [self writeNBytes: [str length]
fromBuffer: [str cString]];
}
|
|
|
184
185
186
187
188
189
190
191
192
193
194
195
196
197
198
|
}
}
- (size_t)writeNBytes: (size_t)size
fromBuffer: (const char*)buf
{
@throw [OFNotImplementedException newWithClass: isa
selector: _cmd];
}
- (size_t)writeString: (OFString*)str
{
return [self writeNBytes: [str length]
fromBuffer: [str cString]];
}
|
︙ | | | ︙ | |
215
216
217
218
219
220
221
222
223
224
|
return self;
}
- close
{
@throw [OFNotImplementedException newWithClass: isa
andSelector: _cmd];
}
@end
|
|
|
215
216
217
218
219
220
221
222
223
224
|
return self;
}
- close
{
@throw [OFNotImplementedException newWithClass: isa
selector: _cmd];
}
@end
|
Modified src/OFString.h
from [e0cc0b9e88]
to [bf71f83fcd].
︙ | | | ︙ | |
53
54
55
56
57
58
59
60
61
62
63
64
65
66
67
|
* length.
*
* \param str A UTF-8 encoded C string to initialize the OFString with
* \param len The length of the string
* \return A new autoreleased OFString
*/
+ stringWithCString: (const char*)str
andLength: (size_t)len;
/**
* Creates a new OFString from a format string.
* See printf for the format syntax.
*
* \param fmt A string used as format to initialize the OFString
* \return A new autoreleased OFString
|
|
|
53
54
55
56
57
58
59
60
61
62
63
64
65
66
67
|
* length.
*
* \param str A UTF-8 encoded C string to initialize the OFString with
* \param len The length of the string
* \return A new autoreleased OFString
*/
+ stringWithCString: (const char*)str
length: (size_t)len;
/**
* Creates a new OFString from a format string.
* See printf for the format syntax.
*
* \param fmt A string used as format to initialize the OFString
* \return A new autoreleased OFString
|
︙ | | | ︙ | |
96
97
98
99
100
101
102
103
104
105
106
107
108
109
110
111
112
113
114
115
116
117
118
119
120
121
122
123
124
125
126
127
128
129
130
|
* the specified length.
*
* \param str A UTF-8 encoded C string to initialize the OFString with
* \param len The length of the string
* \return An initialized OFString
*/
- initWithCString: (const char*)str
andLength: (size_t)len;
/**
* Initializes an already allocated OFString with a format string.
* See printf for the format syntax.
*
* \param fmt A string used as format to initialize the OFString
* \return An initialized OFString
*/
- initWithFormat: (OFString*)fmt, ...;
/**
* Initializes an already allocated OFString with a format string.
* See printf for the format syntax.
*
* \param fmt A string used as format to initialize the OFString
* \param args The arguments used in the format string
* \return An initialized OFString
*/
- initWithFormat: (OFString*)fmt
andArguments: (va_list)args;
/**
* Initializes an already allocated OFString with another string.
*
* \param str A string to initialize the OFString with
* \return An initialized OFString
*/
|
|
|
|
96
97
98
99
100
101
102
103
104
105
106
107
108
109
110
111
112
113
114
115
116
117
118
119
120
121
122
123
124
125
126
127
128
129
130
|
* the specified length.
*
* \param str A UTF-8 encoded C string to initialize the OFString with
* \param len The length of the string
* \return An initialized OFString
*/
- initWithCString: (const char*)str
length: (size_t)len;
/**
* Initializes an already allocated OFString with a format string.
* See printf for the format syntax.
*
* \param fmt A string used as format to initialize the OFString
* \return An initialized OFString
*/
- initWithFormat: (OFString*)fmt, ...;
/**
* Initializes an already allocated OFString with a format string.
* See printf for the format syntax.
*
* \param fmt A string used as format to initialize the OFString
* \param args The arguments used in the format string
* \return An initialized OFString
*/
- initWithFormat: (OFString*)fmt
arguments: (va_list)args;
/**
* Initializes an already allocated OFString with another string.
*
* \param str A string to initialize the OFString with
* \return An initialized OFString
*/
|
︙ | | | ︙ | |
206
207
208
209
210
211
212
213
214
215
216
217
218
219
220
221
222
223
224
|
- setToCString: (const char*)str;
- appendCString: (const char*)str;
- appendCString: (const char*)str
withLength: (size_t)len;
- appendCStringWithoutUTF8Checking: (const char*)str;
- appendCStringWithoutUTF8Checking: (const char*)str
andLength: (size_t)len;
- appendString: (OFString*)str;
- appendWithFormat: (OFString*)fmt, ...;
- appendWithFormat: (OFString*)fmt
andArguments: (va_list)args;
- reverse;
- upper;
- lower;
- replaceOccurrencesOfString: (OFString*)str
withString: (OFString*)repl;
- removeLeadingWhitespaces;
- removeTrailingWhitespaces;
|
|
|
|
206
207
208
209
210
211
212
213
214
215
216
217
218
219
220
221
222
223
224
|
- setToCString: (const char*)str;
- appendCString: (const char*)str;
- appendCString: (const char*)str
withLength: (size_t)len;
- appendCStringWithoutUTF8Checking: (const char*)str;
- appendCStringWithoutUTF8Checking: (const char*)str
length: (size_t)len;
- appendString: (OFString*)str;
- appendWithFormat: (OFString*)fmt, ...;
- appendWithFormat: (OFString*)fmt
arguments: (va_list)args;
- reverse;
- upper;
- lower;
- replaceOccurrencesOfString: (OFString*)str
withString: (OFString*)repl;
- removeLeadingWhitespaces;
- removeTrailingWhitespaces;
|
︙ | | | ︙ | |
Modified src/OFString.m
from [b274f55ce4]
to [1a350e2ba4].
︙ | | | ︙ | |
145
146
147
148
149
150
151
152
153
154
155
156
157
158
159
160
161
162
163
164
165
166
167
168
169
170
171
172
|
+ stringWithCString: (const char*)str
{
return [[[self alloc] initWithCString: str] autorelease];
}
+ stringWithCString: (const char*)str
andLength: (size_t)len
{
return [[[self alloc] initWithCString: str
andLength: len] autorelease];
}
+ stringWithFormat: (OFString*)fmt, ...
{
id ret;
va_list args;
va_start(args, fmt);
ret = [[[self alloc] initWithFormat: fmt
andArguments: args] autorelease];
va_end(args);
return ret;
}
+ stringWithString: (OFString*)str
{
|
|
|
|
|
145
146
147
148
149
150
151
152
153
154
155
156
157
158
159
160
161
162
163
164
165
166
167
168
169
170
171
172
|
+ stringWithCString: (const char*)str
{
return [[[self alloc] initWithCString: str] autorelease];
}
+ stringWithCString: (const char*)str
length: (size_t)len
{
return [[[self alloc] initWithCString: str
length: len] autorelease];
}
+ stringWithFormat: (OFString*)fmt, ...
{
id ret;
va_list args;
va_start(args, fmt);
ret = [[[self alloc] initWithFormat: fmt
arguments: args] autorelease];
va_end(args);
return ret;
}
+ stringWithString: (OFString*)str
{
|
︙ | | | ︙ | |
215
216
217
218
219
220
221
222
223
224
225
226
227
228
229
|
memcpy(string, str, length + 1);
}
return self;
}
- initWithCString: (const char*)str
andLength: (size_t)len
{
Class c;
self = [super init];
if (len > strlen(str)) {
c = isa;
|
|
|
215
216
217
218
219
220
221
222
223
224
225
226
227
228
229
|
memcpy(string, str, length + 1);
}
return self;
}
- initWithCString: (const char*)str
length: (size_t)len
{
Class c;
self = [super init];
if (len > strlen(str)) {
c = isa;
|
︙ | | | ︙ | |
263
264
265
266
267
268
269
270
271
272
273
274
275
276
277
278
279
280
281
282
283
284
|
- initWithFormat: (OFString*)fmt, ...
{
id ret;
va_list args;
va_start(args, fmt);
ret = [self initWithFormat: fmt
andArguments: args];
va_end(args);
return ret;
}
- initWithFormat: (OFString*)fmt
andArguments: (va_list)args
{
int t;
Class c;
self = [super init];
if (fmt == NULL) {
|
|
|
|
263
264
265
266
267
268
269
270
271
272
273
274
275
276
277
278
279
280
281
282
283
284
|
- initWithFormat: (OFString*)fmt, ...
{
id ret;
va_list args;
va_start(args, fmt);
ret = [self initWithFormat: fmt
arguments: args];
va_end(args);
return ret;
}
- initWithFormat: (OFString*)fmt
arguments: (va_list)args
{
int t;
Class c;
self = [super init];
if (fmt == NULL) {
|
︙ | | | ︙ | |
368
369
370
371
372
373
374
375
376
377
378
379
380
381
382
|
return [[OFMutableString alloc] initWithString: self];
}
- (int)compare: (id)obj
{
if (![obj isKindOfClass: [OFString class]])
@throw [OFInvalidArgumentException newWithClass: isa
andSelector: _cmd];
return strcmp(string, [obj cString]);
}
- (uint32_t)hash
{
uint32_t hash;
|
|
|
368
369
370
371
372
373
374
375
376
377
378
379
380
381
382
|
return [[OFMutableString alloc] initWithString: self];
}
- (int)compare: (id)obj
{
if (![obj isKindOfClass: [OFString class]])
@throw [OFInvalidArgumentException newWithClass: isa
selector: _cmd];
return strcmp(string, [obj cString]);
}
- (uint32_t)hash
{
uint32_t hash;
|
︙ | | | ︙ | |
432
433
434
435
436
437
438
439
440
441
442
443
444
445
446
447
448
449
450
451
452
|
}
- (OFString*)substringFromIndex: (size_t)start
toIndex: (size_t)end
{
if (start > end)
@throw [OFInvalidArgumentException newWithClass: isa
andSelector: _cmd];
if (end > length)
@throw [OFOutOfRangeException newWithClass: isa];
return [OFString stringWithCString: string + start
andLength: end - start];
}
- (OFString*)stringByAppendingString: (OFString*)str
{
return [[OFMutableString stringWithString: self] appendString: str];
}
|
|
|
|
432
433
434
435
436
437
438
439
440
441
442
443
444
445
446
447
448
449
450
451
452
|
}
- (OFString*)substringFromIndex: (size_t)start
toIndex: (size_t)end
{
if (start > end)
@throw [OFInvalidArgumentException newWithClass: isa
selector: _cmd];
if (end > length)
@throw [OFOutOfRangeException newWithClass: isa];
return [OFString stringWithCString: string + start
length: end - start];
}
- (OFString*)stringByAppendingString: (OFString*)str
{
return [[OFMutableString stringWithString: self] appendString: str];
}
|
︙ | | | ︙ | |
490
491
492
493
494
495
496
497
498
499
500
501
502
503
504
505
506
507
508
509
510
511
512
513
514
515
516
517
518
519
520
521
522
523
524
525
526
527
528
529
530
531
532
533
534
535
536
537
538
539
540
541
542
543
544
545
546
547
548
549
550
551
552
553
554
555
556
557
558
559
560
561
562
563
564
565
566
567
568
569
570
571
572
573
574
575
576
577
578
579
580
581
582
583
584
585
586
587
588
589
590
591
592
593
594
595
596
597
598
599
600
601
|
}
for (i = 0, last = 0; i <= length - delim_len; i++) {
if (memcmp(string + i, delim, delim_len))
continue;
[array addObject: [OFString stringWithCString: string + last
andLength: i - last]];
i += delim_len - 1;
last = i + 1;
}
[array addObject: [OFString stringWithCString: string + last]];
[pool release];
return array;
}
- setToCString: (const char*)str
{
@throw [OFNotImplementedException newWithClass: isa
andSelector: _cmd];
}
- appendCString: (const char*)str
{
@throw [OFNotImplementedException newWithClass: isa
andSelector: _cmd];
}
- appendCString: (const char*)str
withLength: (size_t)len
{
@throw [OFNotImplementedException newWithClass: isa
andSelector: _cmd];
}
- appendCStringWithoutUTF8Checking: (const char*)str
{
@throw [OFNotImplementedException newWithClass: isa
andSelector: _cmd];
}
- appendCStringWithoutUTF8Checking: (const char*)str
andLength: (size_t)len
{
@throw [OFNotImplementedException newWithClass: isa
andSelector: _cmd];
}
- appendString: (OFString*)str
{
@throw [OFNotImplementedException newWithClass: isa
andSelector: _cmd];
}
- appendWithFormat: (OFString*)fmt, ...
{
@throw [OFNotImplementedException newWithClass: isa
andSelector: _cmd];
}
- appendWithFormat: (OFString*)fmt
andArguments: (va_list)args
{
@throw [OFNotImplementedException newWithClass: isa
andSelector: _cmd];
}
- reverse
{
@throw [OFNotImplementedException newWithClass: isa
andSelector: _cmd];
}
- upper
{
@throw [OFNotImplementedException newWithClass: isa
andSelector: _cmd];
}
- lower
{
@throw [OFNotImplementedException newWithClass: isa
andSelector: _cmd];
}
- replaceOccurrencesOfString: (OFString*)str
withString: (OFString*)repl
{
@throw [OFNotImplementedException newWithClass: isa
andSelector: _cmd];
}
- removeLeadingWhitespaces
{
@throw [OFNotImplementedException newWithClass: isa
andSelector: _cmd];
}
- removeTrailingWhitespaces
{
@throw [OFNotImplementedException newWithClass: isa
andSelector: _cmd];
}
- removeLeadingAndTrailingWhitespaces
{
@throw [OFNotImplementedException newWithClass: isa
andSelector: _cmd];
}
@end
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
490
491
492
493
494
495
496
497
498
499
500
501
502
503
504
505
506
507
508
509
510
511
512
513
514
515
516
517
518
519
520
521
522
523
524
525
526
527
528
529
530
531
532
533
534
535
536
537
538
539
540
541
542
543
544
545
546
547
548
549
550
551
552
553
554
555
556
557
558
559
560
561
562
563
564
565
566
567
568
569
570
571
572
573
574
575
576
577
578
579
580
581
582
583
584
585
586
587
588
589
590
591
592
593
594
595
596
597
598
599
600
601
|
}
for (i = 0, last = 0; i <= length - delim_len; i++) {
if (memcmp(string + i, delim, delim_len))
continue;
[array addObject: [OFString stringWithCString: string + last
length: i - last]];
i += delim_len - 1;
last = i + 1;
}
[array addObject: [OFString stringWithCString: string + last]];
[pool release];
return array;
}
- setToCString: (const char*)str
{
@throw [OFNotImplementedException newWithClass: isa
selector: _cmd];
}
- appendCString: (const char*)str
{
@throw [OFNotImplementedException newWithClass: isa
selector: _cmd];
}
- appendCString: (const char*)str
withLength: (size_t)len
{
@throw [OFNotImplementedException newWithClass: isa
selector: _cmd];
}
- appendCStringWithoutUTF8Checking: (const char*)str
{
@throw [OFNotImplementedException newWithClass: isa
selector: _cmd];
}
- appendCStringWithoutUTF8Checking: (const char*)str
length: (size_t)len
{
@throw [OFNotImplementedException newWithClass: isa
selector: _cmd];
}
- appendString: (OFString*)str
{
@throw [OFNotImplementedException newWithClass: isa
selector: _cmd];
}
- appendWithFormat: (OFString*)fmt, ...
{
@throw [OFNotImplementedException newWithClass: isa
selector: _cmd];
}
- appendWithFormat: (OFString*)fmt
arguments: (va_list)args
{
@throw [OFNotImplementedException newWithClass: isa
selector: _cmd];
}
- reverse
{
@throw [OFNotImplementedException newWithClass: isa
selector: _cmd];
}
- upper
{
@throw [OFNotImplementedException newWithClass: isa
selector: _cmd];
}
- lower
{
@throw [OFNotImplementedException newWithClass: isa
selector: _cmd];
}
- replaceOccurrencesOfString: (OFString*)str
withString: (OFString*)repl
{
@throw [OFNotImplementedException newWithClass: isa
selector: _cmd];
}
- removeLeadingWhitespaces
{
@throw [OFNotImplementedException newWithClass: isa
selector: _cmd];
}
- removeTrailingWhitespaces
{
@throw [OFNotImplementedException newWithClass: isa
selector: _cmd];
}
- removeLeadingAndTrailingWhitespaces
{
@throw [OFNotImplementedException newWithClass: isa
selector: _cmd];
}
@end
|
Modified src/OFTCPSocket.m
from [44f2d9c515]
to [7e7c4b019c].
︙ | | | ︙ | |
64
65
66
67
68
69
70
71
72
73
74
75
76
77
78
79
|
memset(&hints, 0, sizeof(struct addrinfo));
hints.ai_family = AF_UNSPEC;
hints.ai_socktype = SOCK_STREAM;
if (getaddrinfo([node cString], [service cString], &hints, &res0))
@throw [OFAddressTranslationFailedException
newWithClass: isa
andNode: node
andService: service];
for (res = res0; res != NULL; res = res->ai_next) {
if ((sock = socket(res->ai_family, res->ai_socktype,
res->ai_protocol)) == INVALID_SOCKET)
continue;
if (connect(sock, res->ai_addr, res->ai_addrlen) == -1) {
|
|
|
|
64
65
66
67
68
69
70
71
72
73
74
75
76
77
78
79
|
memset(&hints, 0, sizeof(struct addrinfo));
hints.ai_family = AF_UNSPEC;
hints.ai_socktype = SOCK_STREAM;
if (getaddrinfo([node cString], [service cString], &hints, &res0))
@throw [OFAddressTranslationFailedException
newWithClass: isa
node: node
service: service];
for (res = res0; res != NULL; res = res->ai_next) {
if ((sock = socket(res->ai_family, res->ai_socktype,
res->ai_protocol)) == INVALID_SOCKET)
continue;
if (connect(sock, res->ai_addr, res->ai_addrlen) == -1) {
|
︙ | | | ︙ | |
96
97
98
99
100
101
102
103
104
105
106
107
108
109
110
111
112
113
114
115
116
117
118
119
120
121
122
123
124
125
126
127
128
129
130
131
132
133
134
|
[mutex lock];
if ((he = gethostbyname([node cString])) == NULL) {
[mutex unlock];
@throw [OFAddressTranslationFailedException
newWithClass: isa
andNode: node
andService: service];
}
if ((se = getservbyname([service cString], "TCP")) != NULL)
port = se->s_port;
else if ((port = htons(atoi([service cString]))) == 0) {
[mutex unlock];
@throw [OFAddressTranslationFailedException
newWithClass: isa
andNode: node
andService: service];
}
memset(&addr, 0, sizeof(addr));
addr.sin_family = AF_INET;
addr.sin_port = port;
if (he->h_addrtype != AF_INET ||
(sock = socket(AF_INET, SOCK_STREAM, 0)) == INVALID_SOCKET) {
[mutex unlock];
@throw [OFConnectionFailedException
newWithClass: isa
andNode: node
andService: service];
}
for (ip = he->h_addr_list; *ip != NULL; ip++) {
memcpy(&addr.sin_addr.s_addr, *ip, he->h_length);
if (connect(sock, (struct sockaddr*)&addr, sizeof(addr)) == -1)
continue;
|
|
|
|
|
|
|
|
96
97
98
99
100
101
102
103
104
105
106
107
108
109
110
111
112
113
114
115
116
117
118
119
120
121
122
123
124
125
126
127
128
129
130
131
132
133
134
|
[mutex lock];
if ((he = gethostbyname([node cString])) == NULL) {
[mutex unlock];
@throw [OFAddressTranslationFailedException
newWithClass: isa
node: node
service: service];
}
if ((se = getservbyname([service cString], "TCP")) != NULL)
port = se->s_port;
else if ((port = htons(atoi([service cString]))) == 0) {
[mutex unlock];
@throw [OFAddressTranslationFailedException
newWithClass: isa
node: node
service: service];
}
memset(&addr, 0, sizeof(addr));
addr.sin_family = AF_INET;
addr.sin_port = port;
if (he->h_addrtype != AF_INET ||
(sock = socket(AF_INET, SOCK_STREAM, 0)) == INVALID_SOCKET) {
[mutex unlock];
@throw [OFConnectionFailedException
newWithClass: isa
node: node
service: service];
}
for (ip = he->h_addr_list; *ip != NULL; ip++) {
memcpy(&addr.sin_addr.s_addr, *ip, he->h_length);
if (connect(sock, (struct sockaddr*)&addr, sizeof(addr)) == -1)
continue;
|
︙ | | | ︙ | |
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
168
169
170
171
172
173
174
175
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
202
203
204
205
206
207
208
209
210
211
212
213
214
215
216
217
218
219
220
221
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
251
252
253
254
255
256
257
258
259
260
261
262
263
264
265
266
267
268
269
270
271
272
273
274
275
|
close(sock);
sock = INVALID_SOCKET;
}
#endif
if (sock == INVALID_SOCKET)
@throw [OFConnectionFailedException newWithClass: isa
andNode: node
andService: service];
return self;
}
- bindService: (OFString*)service
onNode: (OFString*)node
withFamily: (int)family
{
if (sock != INVALID_SOCKET)
@throw [OFAlreadyConnectedException newWithClass: isa];
if ((sock = socket(family, SOCK_STREAM, 0)) == INVALID_SOCKET)
@throw [OFBindFailedException newWithClass: isa
andNode: node
andService: service
andFamily: family];
#ifdef HAVE_GETADDRINFO
struct addrinfo hints, *res;
memset(&hints, 0, sizeof(struct addrinfo));
hints.ai_family = family;
hints.ai_socktype = SOCK_STREAM;
if (getaddrinfo([node cString], [service cString], &hints, &res))
@throw [OFAddressTranslationFailedException
newWithClass: isa
andNode: node
andService: service];
if (bind(sock, res->ai_addr, res->ai_addrlen) == -1) {
freeaddrinfo(res);
@throw [OFBindFailedException newWithClass: isa
andNode: node
andService: service
andFamily: family];
}
freeaddrinfo(res);
#else
struct hostent *he;
struct servent *se;
struct sockaddr_in addr;
uint16_t port;
if (family != AF_INET)
@throw [OFBindFailedException newWithClass: isa
andNode: node
andService: service
andFamily: family];
[mutex lock];
if ((he = gethostbyname([node cString])) == NULL) {
[mutex unlock];
@throw [OFAddressTranslationFailedException
newWithClass: isa
andNode: node
andService: service];
}
if ((se = getservbyname([service cString], "TCP")) != NULL)
port = se->s_port;
else if ((port = htons(atoi([service cString]))) == 0) {
[mutex unlock];
@throw [OFAddressTranslationFailedException
newWithClass: isa
andNode: node
andService: service];
}
memset(&addr, 0, sizeof(addr));
addr.sin_family = AF_INET;
addr.sin_port = port;
if (he->h_addrtype != AF_INET || he->h_addr_list[0] == NULL) {
[mutex lock];
@throw [OFAddressTranslationFailedException
newWithClass: isa
andNode: node
andService: service];
}
memcpy(&addr.sin_addr.s_addr, he->h_addr_list[0], he->h_length);
[mutex unlock];
if (bind(sock, (struct sockaddr*)&addr, sizeof(addr)) == -1)
@throw [OFBindFailedException newWithClass: isa
andNode: node
andService: service
andFamily: family];
#endif
return self;
}
- listenWithBackLog: (int)backlog
{
if (sock == INVALID_SOCKET)
@throw [OFNotConnectedException newWithClass: isa];
if (listen(sock, backlog) == -1)
@throw [OFListenFailedException newWithClass: isa
andBackLog: backlog];
return self;
}
- listen
{
if (sock == INVALID_SOCKET)
@throw [OFNotConnectedException newWithClass: isa];
if (listen(sock, 5) == -1)
@throw [OFListenFailedException newWithClass: isa
andBackLog: 5];
return self;
}
- (OFSocket*)accept
{
OFTCPSocket *newsock;
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
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
168
169
170
171
172
173
174
175
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
202
203
204
205
206
207
208
209
210
211
212
213
214
215
216
217
218
219
220
221
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
251
252
253
254
255
256
257
258
259
260
261
262
263
264
265
266
267
268
269
270
271
272
273
274
275
|
close(sock);
sock = INVALID_SOCKET;
}
#endif
if (sock == INVALID_SOCKET)
@throw [OFConnectionFailedException newWithClass: isa
node: node
service: service];
return self;
}
- bindService: (OFString*)service
onNode: (OFString*)node
withFamily: (int)family
{
if (sock != INVALID_SOCKET)
@throw [OFAlreadyConnectedException newWithClass: isa];
if ((sock = socket(family, SOCK_STREAM, 0)) == INVALID_SOCKET)
@throw [OFBindFailedException newWithClass: isa
node: node
service: service
family: family];
#ifdef HAVE_GETADDRINFO
struct addrinfo hints, *res;
memset(&hints, 0, sizeof(struct addrinfo));
hints.ai_family = family;
hints.ai_socktype = SOCK_STREAM;
if (getaddrinfo([node cString], [service cString], &hints, &res))
@throw [OFAddressTranslationFailedException
newWithClass: isa
node: node
service: service];
if (bind(sock, res->ai_addr, res->ai_addrlen) == -1) {
freeaddrinfo(res);
@throw [OFBindFailedException newWithClass: isa
node: node
service: service
family: family];
}
freeaddrinfo(res);
#else
struct hostent *he;
struct servent *se;
struct sockaddr_in addr;
uint16_t port;
if (family != AF_INET)
@throw [OFBindFailedException newWithClass: isa
node: node
service: service
family: family];
[mutex lock];
if ((he = gethostbyname([node cString])) == NULL) {
[mutex unlock];
@throw [OFAddressTranslationFailedException
newWithClass: isa
node: node
service: service];
}
if ((se = getservbyname([service cString], "TCP")) != NULL)
port = se->s_port;
else if ((port = htons(atoi([service cString]))) == 0) {
[mutex unlock];
@throw [OFAddressTranslationFailedException
newWithClass: isa
node: node
service: service];
}
memset(&addr, 0, sizeof(addr));
addr.sin_family = AF_INET;
addr.sin_port = port;
if (he->h_addrtype != AF_INET || he->h_addr_list[0] == NULL) {
[mutex lock];
@throw [OFAddressTranslationFailedException
newWithClass: isa
node: node
service: service];
}
memcpy(&addr.sin_addr.s_addr, he->h_addr_list[0], he->h_length);
[mutex unlock];
if (bind(sock, (struct sockaddr*)&addr, sizeof(addr)) == -1)
@throw [OFBindFailedException newWithClass: isa
node: node
service: service
family: family];
#endif
return self;
}
- listenWithBackLog: (int)backlog
{
if (sock == INVALID_SOCKET)
@throw [OFNotConnectedException newWithClass: isa];
if (listen(sock, backlog) == -1)
@throw [OFListenFailedException newWithClass: isa
backLog: backlog];
return self;
}
- listen
{
if (sock == INVALID_SOCKET)
@throw [OFNotConnectedException newWithClass: isa];
if (listen(sock, 5) == -1)
@throw [OFListenFailedException newWithClass: isa
backLog: 5];
return self;
}
- (OFSocket*)accept
{
OFTCPSocket *newsock;
|
︙ | | | ︙ | |
Modified src/OFThread.m
from [a7103d64e5]
to [0f49dc44da].
︙ | | | ︙ | |
45
46
47
48
49
50
51
52
53
54
55
56
57
58
59
|
#ifndef _WIN32
if (pthread_setspecific(key->key, obj))
#else
if (!TlsSetValue(key->key, obj))
#endif
/* FIXME: Maybe another exception would be better */
@throw [OFInvalidArgumentException newWithClass: self
andSelector: _cmd];
[obj retain];
[old release];
return self;
}
|
|
|
45
46
47
48
49
50
51
52
53
54
55
56
57
58
59
|
#ifndef _WIN32
if (pthread_setspecific(key->key, obj))
#else
if (!TlsSetValue(key->key, obj))
#endif
/* FIXME: Maybe another exception would be better */
@throw [OFInvalidArgumentException newWithClass: self
selector: _cmd];
[obj retain];
[old release];
return self;
}
|
︙ | | | ︙ | |
Modified src/OFURLEncoding.m
from [f51e0ac16e]
to [6669fbc50f].
︙ | | | ︙ | |
34
35
36
37
38
39
40
41
42
43
44
45
46
47
48
|
/*
* Worst case: 3 times longer than before.
* Oh, and we can't use [self allocWithSize:] here as self might be a
* @"" literal.
*/
if ((ret_c = malloc((length * 3) + 1)) == NULL)
@throw [OFOutOfMemoryException newWithClass: isa
andSize: (length * 3) + 1];
for (i = 0; *s != '\0'; s++) {
if (isalnum(*s) || *s == '-' || *s == '_' || *s == '.' ||
*s == '~')
ret_c[i++] = *s;
else {
uint8_t high, low;
|
|
|
34
35
36
37
38
39
40
41
42
43
44
45
46
47
48
|
/*
* Worst case: 3 times longer than before.
* Oh, and we can't use [self allocWithSize:] here as self might be a
* @"" literal.
*/
if ((ret_c = malloc((length * 3) + 1)) == NULL)
@throw [OFOutOfMemoryException newWithClass: isa
size: (length * 3) + 1];
for (i = 0; *s != '\0'; s++) {
if (isalnum(*s) || *s == '-' || *s == '_' || *s == '.' ||
*s == '~')
ret_c[i++] = *s;
else {
uint8_t high, low;
|
︙ | | | ︙ | |
74
75
76
77
78
79
80
81
82
83
84
85
86
87
88
|
int st;
OFString *ret;
s = string;
if ((ret_c = malloc(length + 1)) == NULL)
@throw [OFOutOfMemoryException newWithClass: isa
andSize: length + 1];
for (st = 0, i = 0, c = 0; *s; s++) {
switch (st) {
case 0:
if (*s == '%')
st = 1;
else if (*s == '+')
|
|
|
74
75
76
77
78
79
80
81
82
83
84
85
86
87
88
|
int st;
OFString *ret;
s = string;
if ((ret_c = malloc(length + 1)) == NULL)
@throw [OFOutOfMemoryException newWithClass: isa
size: length + 1];
for (st = 0, i = 0, c = 0; *s; s++) {
switch (st) {
case 0:
if (*s == '%')
st = 1;
else if (*s == '+')
|
︙ | | | ︙ | |
Modified src/OFXMLElement.h
from [5d32edcfa4]
to [1247541a3e].
︙ | | | ︙ | |
37
38
39
40
41
42
43
44
45
46
47
48
49
50
51
52
53
54
55
56
57
58
59
60
61
62
63
64
65
66
67
68
69
70
71
72
73
74
75
76
77
78
79
80
81
82
83
84
85
86
|
/**
* \param name The name for the element
* \param stringval The value for the element
* \return A new autorelease OFXMLElement with the specified element name and
* value
*/
+ elementWithName: (OFString*)name
andStringValue: (OFString*)stringval;
/**
* Initializes an already allocated OFXMLElement with the specified name.
*
* \param name The name for the element
* \return An initialized OFXMLElement with the specified element name
*/
- initWithName: (OFString*)name;
/**
* Initializes an already allocated OFXMLElement with the specified name and
* value.
*
* \param name The name for the element
* \param stringval The value for the element
* \return An initialized OFXMLElement with the specified element name and
* value
*/
- initWithName: (OFString*)name
andStringValue: (OFString*)stringval;
/**
* \return A new autoreleased OFString representing the OFXMLElement as an
* XML string
*/
- (OFString*)string;
/**
* Adds the specified attribute with the specified value.
*
* \param name The name of the attribute
* \param value The value of the attribute
*/
- addAttributeWithName: (OFString*)name
andValue: (OFString*)value;
/**
* Adds a child to the OFXMLElement.
*
* \param child Another OFXMLElement which is added as a child
*/
- addChild: (OFXMLElement*)child;
|
|
|
|
|
|
37
38
39
40
41
42
43
44
45
46
47
48
49
50
51
52
53
54
55
56
57
58
59
60
61
62
63
64
65
66
67
68
69
70
71
72
73
74
75
76
77
78
79
80
81
82
83
84
85
86
|
/**
* \param name The name for the element
* \param stringval The value for the element
* \return A new autorelease OFXMLElement with the specified element name and
* value
*/
+ elementWithName: (OFString*)name
stringValue: (OFString*)stringval;
/**
* Initializes an already allocated OFXMLElement with the specified name.
*
* \param name The name for the element
* \return An initialized OFXMLElement with the specified element name
*/
- initWithName: (OFString*)name;
/**
* Initializes an already allocated OFXMLElement with the specified name and
* value.
*
* \param name The name for the element
* \param stringval The value for the element
* \return An initialized OFXMLElement with the specified element name and
* value
*/
- initWithName: (OFString*)name
stringValue: (OFString*)stringval;
/**
* \return A new autoreleased OFString representing the OFXMLElement as an
* XML string
*/
- (OFString*)string;
/**
* Adds the specified attribute with the specified value.
*
* \param name The name of the attribute
* \param value The value of the attribute
*/
- addAttributeWithName: (OFString*)name
stringValue: (OFString*)value;
/**
* Adds a child to the OFXMLElement.
*
* \param child Another OFXMLElement which is added as a child
*/
- addChild: (OFXMLElement*)child;
|
︙ | | | ︙ | |
Modified src/OFXMLElement.m
from [d97af29834]
to [ffae94dc12].
︙ | | | ︙ | |
24
25
26
27
28
29
30
31
32
33
34
35
36
37
38
39
40
41
42
43
44
45
46
47
48
49
50
51
52
53
54
|
@implementation OFXMLElement
+ elementWithName: (OFString*)name_
{
return [[[self alloc] initWithName: name_] autorelease];
}
+ elementWithName: (OFString*)name_
andStringValue: (OFString*)stringval_
{
return [[[self alloc] initWithName: name_
andStringValue: stringval_] autorelease];
}
- initWithName: (OFString*)name_
{
self = [super init];
name = [name_ retain];
return self;
}
- initWithName: (OFString*)name_
andStringValue: (OFString*)stringval_
{
self = [super init];
name = [name_ retain];
stringval = [stringval_ retain];
return self;
|
|
|
|
|
|
24
25
26
27
28
29
30
31
32
33
34
35
36
37
38
39
40
41
42
43
44
45
46
47
48
49
50
51
52
53
54
|
@implementation OFXMLElement
+ elementWithName: (OFString*)name_
{
return [[[self alloc] initWithName: name_] autorelease];
}
+ elementWithName: (OFString*)name_
stringValue: (OFString*)stringval_
{
return [[[self alloc] initWithName: name_
stringValue: stringval_] autorelease];
}
- initWithName: (OFString*)name_
{
self = [super init];
name = [name_ retain];
return self;
}
- initWithName: (OFString*)name_
stringValue: (OFString*)stringval_
{
self = [super init];
name = [name_ retain];
stringval = [stringval_ retain];
return self;
|
︙ | | | ︙ | |
156
157
158
159
160
161
162
163
164
165
166
167
168
169
170
171
172
173
174
175
176
177
178
179
180
181
182
183
184
185
|
[self freeMemory: str_c];
}
return ret;
}
- addAttributeWithName: (OFString*)name_
andValue: (OFString*)value_
{
if (attrs == nil)
attrs = [[OFMutableDictionary alloc] init];
[attrs setObject: value_
forKey: name_];
return self;
}
- addChild: (OFXMLElement*)child
{
if (stringval != nil)
@throw [OFInvalidArgumentException newWithClass: isa
andSelector: _cmd];
if (children == nil)
children = [[OFMutableArray alloc] init];
[children addObject: child];
return self;
|
|
|
|
156
157
158
159
160
161
162
163
164
165
166
167
168
169
170
171
172
173
174
175
176
177
178
179
180
181
182
183
184
185
|
[self freeMemory: str_c];
}
return ret;
}
- addAttributeWithName: (OFString*)name_
stringValue: (OFString*)value_
{
if (attrs == nil)
attrs = [[OFMutableDictionary alloc] init];
[attrs setObject: value_
forKey: name_];
return self;
}
- addChild: (OFXMLElement*)child
{
if (stringval != nil)
@throw [OFInvalidArgumentException newWithClass: isa
selector: _cmd];
if (children == nil)
children = [[OFMutableArray alloc] init];
[children addObject: child];
return self;
|
︙ | | | ︙ | |
208
209
210
211
212
213
214
215
216
217
218
219
220
221
222
|
len = length + 1;
/*
* We can't use allocMemoryWithSize: here as it might be a @"" literal
*/
if ((str_c = malloc(len + 1)) == NULL)
@throw [OFOutOfMemoryException newWithClass: isa
andSize: len];
for (i = 0; i < length; i++) {
switch (string[i]) {
case '<':
append = "<";
append_len = 4;
break;
|
|
|
208
209
210
211
212
213
214
215
216
217
218
219
220
221
222
|
len = length + 1;
/*
* We can't use allocMemoryWithSize: here as it might be a @"" literal
*/
if ((str_c = malloc(len + 1)) == NULL)
@throw [OFOutOfMemoryException newWithClass: isa
size: len];
for (i = 0; i < length; i++) {
switch (string[i]) {
case '<':
append = "<";
append_len = 4;
break;
|
︙ | | | ︙ | |
242
243
244
245
246
247
248
249
250
251
252
253
254
255
256
|
}
if (append != NULL) {
if ((tmp = realloc(str_c, len + append_len)) == NULL) {
free(str_c);
@throw [OFOutOfMemoryException
newWithClass: isa
andSize: len + append_len];
}
str_c = tmp;
len += append_len - 1;
memcpy(str_c + j, append, append_len);
j += append_len;
} else
|
|
|
242
243
244
245
246
247
248
249
250
251
252
253
254
255
256
|
}
if (append != NULL) {
if ((tmp = realloc(str_c, len + append_len)) == NULL) {
free(str_c);
@throw [OFOutOfMemoryException
newWithClass: isa
size: len + append_len];
}
str_c = tmp;
len += append_len - 1;
memcpy(str_c + j, append, append_len);
j += append_len;
} else
|
︙ | | | ︙ | |
Modified src/OFXMLParser.h
from [73bf2c69af]
to [46733a7e27].
︙ | | | ︙ | |
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
34
35
36
|
extern int _OFXMLParser_reference;
@class OFXMLParser;
@protocol OFXMLParserDelegate
- (BOOL)xmlParser: (OFXMLParser*)parser
didStartTagWithName: (OFString*)name
andPrefix: (OFString*)prefix
andNamespace: (OFString*)ns
andAttributes: (OFDictionary*)attrs;
- (BOOL)xmlParser: (OFXMLParser*)parser
didEndTagWithName: (OFString*)name
andPrefix: (OFString*)prefix
andNamespace: (OFString*)ns;
- (BOOL)xmlParser: (OFXMLParser*)parser
foundString: (OFString*)string;
@end
@interface OFXMLParser: OFObject
{
OFObject <OFXMLParserDelegate> *delegate;
|
|
|
|
|
|
|
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
34
35
36
|
extern int _OFXMLParser_reference;
@class OFXMLParser;
@protocol OFXMLParserDelegate
- (BOOL)xmlParser: (OFXMLParser*)parser
didStartTagWithName: (OFString*)name
prefix: (OFString*)prefix
namespace: (OFString*)ns
attributes: (OFDictionary*)attrs;
- (BOOL)xmlParser: (OFXMLParser*)parser
didEndTagWithName: (OFString*)name
prefix: (OFString*)prefix
namespace: (OFString*)ns;
- (BOOL)xmlParser: (OFXMLParser*)parser
foundString: (OFString*)string;
@end
@interface OFXMLParser: OFObject
{
OFObject <OFXMLParserDelegate> *delegate;
|
︙ | | | ︙ | |
Modified src/OFXMLParser.m
from [9cf8e5058f]
to [47f877a838].
︙ | | | ︙ | |
60
61
62
63
64
65
66
67
68
69
70
71
72
73
74
|
}
}
if ((i = of_string_unicode_to_utf8(c, buf)) == 0)
return nil;
return [OFString stringWithCString: buf
andLength: i];
}
@implementation OFXMLParser
+ xmlParser
{
return [[[self alloc] init] autorelease];
}
|
|
|
60
61
62
63
64
65
66
67
68
69
70
71
72
73
74
|
}
}
if ((i = of_string_unicode_to_utf8(c, buf)) == 0)
return nil;
return [OFString stringWithCString: buf
length: i];
}
@implementation OFXMLParser
+ xmlParser
{
return [[[self alloc] init] autorelease];
}
|
︙ | | | ︙ | |
175
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
202
203
204
205
206
207
208
209
210
211
212
213
214
215
216
|
cache_c = [cache cString];
cache_len = [cache length];
if ((tmp = memchr(cache_c, ':',
cache_len)) != NULL) {
prefix = [[OFString alloc]
initWithCString: cache_c
andLength: tmp - cache_c];
name = [[OFString alloc]
initWithCString: tmp + 1
andLength: cache_len - (tmp -
cache_c) - 1];
} else {
prefix = nil;
name = [[OFString alloc]
initWithCString: cache_c
andLength: cache_len];
}
[cache setToCString: ""];
if (buf[i] == '>' || buf[i] == '/') {
pool = [[OFAutoreleasePool alloc] init];
[delegate xmlParser: self
didStartTagWithName: name
andPrefix: prefix
andNamespace: ns
andAttributes: nil];
if (buf[i] == '/')
[delegate xmlParser: self
didEndTagWithName: name
andPrefix: prefix
andNamespace: ns];
[pool release];
[name release];
[prefix release];
[ns release];
|
|
|
|
|
|
|
|
|
|
175
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
202
203
204
205
206
207
208
209
210
211
212
213
214
215
216
|
cache_c = [cache cString];
cache_len = [cache length];
if ((tmp = memchr(cache_c, ':',
cache_len)) != NULL) {
prefix = [[OFString alloc]
initWithCString: cache_c
length: tmp - cache_c];
name = [[OFString alloc]
initWithCString: tmp + 1
length: cache_len - (tmp -
cache_c) - 1];
} else {
prefix = nil;
name = [[OFString alloc]
initWithCString: cache_c
length: cache_len];
}
[cache setToCString: ""];
if (buf[i] == '>' || buf[i] == '/') {
pool = [[OFAutoreleasePool alloc] init];
[delegate xmlParser: self
didStartTagWithName: name
prefix: prefix
namespace: ns
attributes: nil];
if (buf[i] == '/')
[delegate xmlParser: self
didEndTagWithName: name
prefix: prefix
namespace: ns];
[pool release];
[name release];
[prefix release];
[ns release];
|
︙ | | | ︙ | |
237
238
239
240
241
242
243
244
245
246
247
248
249
250
251
252
253
254
255
256
257
258
259
260
261
262
263
264
265
266
267
268
269
270
|
cache_c = [cache cString];
cache_len = [cache length];
if ((tmp = memchr(cache_c, ':',
cache_len)) != NULL) {
prefix = [[OFString alloc]
initWithCString: cache_c
andLength: tmp - cache_c];
name = [[OFString alloc]
initWithCString: tmp + 1
andLength: cache_len - (tmp -
cache_c) - 1];
} else {
prefix = nil;
name = [[OFString alloc]
initWithCString: cache_c
andLength: cache_len];
}
[cache setToCString: ""];
pool = [[OFAutoreleasePool alloc] init];
[delegate xmlParser: self
didEndTagWithName: name
andPrefix: prefix
andNamespace: ns];
[pool release];
[name release];
[prefix release];
[ns release];
|
|
|
|
|
|
|
237
238
239
240
241
242
243
244
245
246
247
248
249
250
251
252
253
254
255
256
257
258
259
260
261
262
263
264
265
266
267
268
269
270
|
cache_c = [cache cString];
cache_len = [cache length];
if ((tmp = memchr(cache_c, ':',
cache_len)) != NULL) {
prefix = [[OFString alloc]
initWithCString: cache_c
length: tmp - cache_c];
name = [[OFString alloc]
initWithCString: tmp + 1
length: cache_len - (tmp -
cache_c) - 1];
} else {
prefix = nil;
name = [[OFString alloc]
initWithCString: cache_c
length: cache_len];
}
[cache setToCString: ""];
pool = [[OFAutoreleasePool alloc] init];
[delegate xmlParser: self
didEndTagWithName: name
prefix: prefix
namespace: ns];
[pool release];
[name release];
[prefix release];
[ns release];
|
︙ | | | ︙ | |
278
279
280
281
282
283
284
285
286
287
288
289
290
291
292
293
294
295
296
297
298
299
300
|
/* Inside a tag, name found */
case OF_XMLPARSER_IN_TAG:
if (buf[i] == '>' || buf[i] == '/') {
pool = [[OFAutoreleasePool alloc] init];
[delegate xmlParser: self
didStartTagWithName: name
andPrefix: prefix
andNamespace: ns
andAttributes: attrs];
if (buf[i] == '/')
[delegate xmlParser: self
didEndTagWithName: name
andPrefix: prefix
andNamespace: ns];
[pool release];
[name release];
[prefix release];
[ns release];
[attrs release];
|
|
|
|
|
|
|
278
279
280
281
282
283
284
285
286
287
288
289
290
291
292
293
294
295
296
297
298
299
300
|
/* Inside a tag, name found */
case OF_XMLPARSER_IN_TAG:
if (buf[i] == '>' || buf[i] == '/') {
pool = [[OFAutoreleasePool alloc] init];
[delegate xmlParser: self
didStartTagWithName: name
prefix: prefix
namespace: ns
attributes: attrs];
if (buf[i] == '/')
[delegate xmlParser: self
didEndTagWithName: name
prefix: prefix
namespace: ns];
[pool release];
[name release];
[prefix release];
[ns release];
[attrs release];
|
︙ | | | ︙ | |
411
412
413
414
415
416
417
418
419
420
421
422
423
424
425
|
last = 0;
in_entity = NO;
ret = [OFMutableString string];
for (i = 0; i < length; i++) {
if (!in_entity && string[i] == '&') {
[ret appendCStringWithoutUTF8Checking: string + last
andLength: i - last];
last = i + 1;
in_entity = YES;
} else if (in_entity && string[i] == ';') {
char *entity = string + last;
size_t len = i - last;
|
|
|
411
412
413
414
415
416
417
418
419
420
421
422
423
424
425
|
last = 0;
in_entity = NO;
ret = [OFMutableString string];
for (i = 0; i < length; i++) {
if (!in_entity && string[i] == '&') {
[ret appendCStringWithoutUTF8Checking: string + last
length: i - last];
last = i + 1;
in_entity = YES;
} else if (in_entity && string[i] == ';') {
char *entity = string + last;
size_t len = i - last;
|
︙ | | | ︙ | |
449
450
451
452
453
454
455
456
457
458
459
460
461
462
463
|
} else if (h != nil) {
OFAutoreleasePool *pool;
OFString *n, *tmp;
pool = [[OFAutoreleasePool alloc] init];
n = [OFString stringWithCString: entity
andLength: len];
tmp = [h foundUnknownEntityNamed: n];
if (tmp == nil)
@throw [OFInvalidEncodingException
newWithClass: isa];
[ret appendString: tmp];
|
|
|
449
450
451
452
453
454
455
456
457
458
459
460
461
462
463
|
} else if (h != nil) {
OFAutoreleasePool *pool;
OFString *n, *tmp;
pool = [[OFAutoreleasePool alloc] init];
n = [OFString stringWithCString: entity
length: len];
tmp = [h foundUnknownEntityNamed: n];
if (tmp == nil)
@throw [OFInvalidEncodingException
newWithClass: isa];
[ret appendString: tmp];
|
︙ | | | ︙ | |
471
472
473
474
475
476
477
478
479
480
481
482
|
}
}
if (in_entity)
@throw [OFInvalidEncodingException newWithClass: isa];
[ret appendCStringWithoutUTF8Checking: string + last
andLength: i - last];
return ret;
}
@end
|
|
|
471
472
473
474
475
476
477
478
479
480
481
482
|
}
}
if (in_entity)
@throw [OFInvalidEncodingException newWithClass: isa];
[ret appendCStringWithoutUTF8Checking: string + last
length: i - last];
return ret;
}
@end
|
Modified tests/OFDictionary/OFDictionary.m
from [8f8688c53b]
to [3fa2e6f5e3].
︙ | | | ︙ | |
24
25
26
27
28
29
30
31
32
33
34
35
36
37
|
int
main()
{
int i = 0;
OFDictionary *dict = [OFMutableDictionary dictionaryWithHashSize: 16];
OFDictionary *dict2;
OFIterator *iter = [dict iterator];
of_iterator_pair_t pair[2];
OFAutoreleasePool *pool = [[OFAutoreleasePool alloc] init];
OFString *key1 = [OFString stringWithCString: "key1"];
OFString *key2 = [OFString stringWithCString: "key2"];
OFString *value1 = [OFString stringWithCString: "value1"];
|
>
|
24
25
26
27
28
29
30
31
32
33
34
35
36
37
38
|
int
main()
{
int i = 0;
OFDictionary *dict = [OFMutableDictionary dictionaryWithHashSize: 16];
OFDictionary *dict2;
OFArray *keys, *objs;
OFIterator *iter = [dict iterator];
of_iterator_pair_t pair[2];
OFAutoreleasePool *pool = [[OFAutoreleasePool alloc] init];
OFString *key1 = [OFString stringWithCString: "key1"];
OFString *key2 = [OFString stringWithCString: "key2"];
OFString *value1 = [OFString stringWithCString: "value1"];
|
︙ | | | ︙ | |
112
113
114
115
116
117
118
119
120
121
122
123
124
125
126
127
128
129
130
131
132
133
134
135
136
137
|
if (![[dict objectForKey: @"baz"] isEqual: @"qux"]) {
printf("\033[K\033[1;31mTest %d/%d failed!\033[m\n", i, TESTS);
return 1;
}
i++;
[dict release];
dict = [OFDictionary dictionaryWithKey: @"foo"
andObject: @"bar"];
if (![[dict objectForKey: @"foo"] isEqual: @"bar"]) {
printf("\033[K\033[1;31mTest %d/%d failed!\033[m\n", i, TESTS);
return 1;
}
i++;
[dict release];
dict = [OFDictionary
dictionaryWithKeys: [OFArray arrayWithObjects: @"k1", @"k2", nil]
andObjects: [OFArray arrayWithObjects: @"o1", @"o2", nil]];
if (![[dict objectForKey: @"k1"] isEqual: @"o1"]) {
printf("\033[K\033[1;31mTest %d/%d failed!\033[m\n", i, TESTS);
return 1;
}
i++;
if (![[dict objectForKey: @"k2"] isEqual: @"o2"]) {
|
|
|
<
|
|
>
>
|
113
114
115
116
117
118
119
120
121
122
123
124
125
126
127
128
129
130
131
132
133
134
135
136
137
138
139
|
if (![[dict objectForKey: @"baz"] isEqual: @"qux"]) {
printf("\033[K\033[1;31mTest %d/%d failed!\033[m\n", i, TESTS);
return 1;
}
i++;
[dict release];
dict = [OFDictionary dictionaryWithObject: @"bar"
forKey: @"foo"];
if (![[dict objectForKey: @"foo"] isEqual: @"bar"]) {
printf("\033[K\033[1;31mTest %d/%d failed!\033[m\n", i, TESTS);
return 1;
}
i++;
[dict release];
keys = [OFArray arrayWithObjects: @"k1", @"k2", nil];
objs = [OFArray arrayWithObjects: @"o1", @"o2", nil];
dict = [OFDictionary dictionaryWithObjects: objs
forKeys: keys];
if (![[dict objectForKey: @"k1"] isEqual: @"o1"]) {
printf("\033[K\033[1;31mTest %d/%d failed!\033[m\n", i, TESTS);
return 1;
}
i++;
if (![[dict objectForKey: @"k2"] isEqual: @"o2"]) {
|
︙ | | | ︙ | |
Modified tests/OFHashes/OFHashes.m
from [ebf6f59419]
to [326e3de950].
︙ | | | ︙ | |
28
29
30
31
32
33
34
35
36
37
38
39
40
41
42
|
{
char buf[64];
size_t len;
OFMD5Hash *md5 = [OFMD5Hash md5Hash];
OFSHA1Hash *sha1 = [OFSHA1Hash sha1Hash];
OFFile *f = [OFFile fileWithPath: @"testfile"
andMode: @"rb"];
while (![f atEndOfStream]) {
len = [f readNBytes: 64
intoBuffer: buf];
[md5 updateWithBuffer: buf
ofSize: len];
[sha1 updateWithBuffer: buf
|
|
|
28
29
30
31
32
33
34
35
36
37
38
39
40
41
42
|
{
char buf[64];
size_t len;
OFMD5Hash *md5 = [OFMD5Hash md5Hash];
OFSHA1Hash *sha1 = [OFSHA1Hash sha1Hash];
OFFile *f = [OFFile fileWithPath: @"testfile"
mode: @"rb"];
while (![f atEndOfStream]) {
len = [f readNBytes: 64
intoBuffer: buf];
[md5 updateWithBuffer: buf
ofSize: len];
[sha1 updateWithBuffer: buf
|
︙ | | | ︙ | |
Modified tests/OFString/OFString.m
from [94044c3abd]
to [ba435901f8].
︙ | | | ︙ | |
94
95
96
97
98
99
100
101
102
103
104
105
106
107
108
|
CHECK([[s1 upper] isEqual: @"321TSET"])
CHECK([[s1 lower] isEqual: @"321tset"])
/* Also clears all the memory of the returned C strings */
[pool release];
s1 = [OFMutableString stringWithCString: "foobar"
andLength: 3];
CHECK([s1 isEqual: @"foo"])
[s1 appendCString: "foobarqux" + 3
withLength: 3];
CHECK([s1 isEqual: @"foobar"])
/* UTF-8 tests */
|
|
|
94
95
96
97
98
99
100
101
102
103
104
105
106
107
108
|
CHECK([[s1 upper] isEqual: @"321TSET"])
CHECK([[s1 lower] isEqual: @"321tset"])
/* Also clears all the memory of the returned C strings */
[pool release];
s1 = [OFMutableString stringWithCString: "foobar"
length: 3];
CHECK([s1 isEqual: @"foo"])
[s1 appendCString: "foobarqux" + 3
withLength: 3];
CHECK([s1 isEqual: @"foobar"])
/* UTF-8 tests */
|
︙ | | | ︙ | |
Modified tests/OFXMLElement/OFXMLElement.m
from [0ba42ffac8]
to [6153658720].
︙ | | | ︙ | |
53
54
55
56
57
58
59
60
61
62
63
64
65
66
67
68
69
70
71
72
73
74
75
76
77
|
OFXMLElement *elem;
elem = [OFXMLElement elementWithName: @"foo"];
CHECK([[elem string] isEqual: @"<foo/>"]);
[elem addAttributeWithName: @"foo"
andValue: @"b&ar"];
CHECK([[elem string] isEqual: @"<foo foo='b&ar'/>"])
[elem addChild: [OFXMLElement elementWithName: @"bar"]];
CHECK([[elem string] isEqual: @"<foo foo='b&ar'><bar/></foo>"])
elem = [OFXMLElement elementWithName: @"foo"
andStringValue: @"b&ar"];
CHECK([[elem string] isEqual: @"<foo>b&ar</foo>"])
[elem addAttributeWithName: @"foo"
andValue: @"b&ar"];
CHECK([[elem string] isEqual: @"<foo foo='b&ar'>b&ar</foo>"])
puts("");
return 0;
}
|
|
|
|
|
53
54
55
56
57
58
59
60
61
62
63
64
65
66
67
68
69
70
71
72
73
74
75
76
77
|
OFXMLElement *elem;
elem = [OFXMLElement elementWithName: @"foo"];
CHECK([[elem string] isEqual: @"<foo/>"]);
[elem addAttributeWithName: @"foo"
stringValue: @"b&ar"];
CHECK([[elem string] isEqual: @"<foo foo='b&ar'/>"])
[elem addChild: [OFXMLElement elementWithName: @"bar"]];
CHECK([[elem string] isEqual: @"<foo foo='b&ar'><bar/></foo>"])
elem = [OFXMLElement elementWithName: @"foo"
stringValue: @"b&ar"];
CHECK([[elem string] isEqual: @"<foo>b&ar</foo>"])
[elem addAttributeWithName: @"foo"
stringValue: @"b&ar"];
CHECK([[elem string] isEqual: @"<foo foo='b&ar'>b&ar</foo>"])
puts("");
return 0;
}
|
Modified tests/OFXMLParser/OFXMLParser.m
from [e1028bfd04]
to [b3f4a79e63].
︙ | | | ︙ | |
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
34
|
@interface ParserDelegate: OFObject <OFXMLParserDelegate>
@end
@implementation ParserDelegate
- (BOOL)xmlParser: (OFXMLParser*)parser
didStartTagWithName: (OFString*)name
andPrefix: (OFString*)prefix
andNamespace: (OFString*)ns
andAttributes: (OFDictionary*)attrs
{
printf("START\nname=\"%s\"\nprefix=\"%s\"\nns=\"%s\"\n",
[name cString], [prefix cString], [ns cString]);
if (attrs) {
OFIterator *iter = [attrs iterator];
|
|
|
|
|
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
34
|
@interface ParserDelegate: OFObject <OFXMLParserDelegate>
@end
@implementation ParserDelegate
- (BOOL)xmlParser: (OFXMLParser*)parser
didStartTagWithName: (OFString*)name
prefix: (OFString*)prefix
namespace: (OFString*)ns
attributes: (OFDictionary*)attrs
{
printf("START\nname=\"%s\"\nprefix=\"%s\"\nns=\"%s\"\n",
[name cString], [prefix cString], [ns cString]);
if (attrs) {
OFIterator *iter = [attrs iterator];
|
︙ | | | ︙ | |
48
49
50
51
52
53
54
55
56
57
58
59
60
61
62
63
|
puts("");
return YES;
}
- (BOOL)xmlParser: (OFXMLParser*)parser
didEndTagWithName: (OFString*)name
andPrefix: (OFString*)prefix
andNamespace: (OFString*)ns
{
printf("END\nname=\"%s\"\nprefix=\"%s\"\nns=\"%s\"\n\n",
[name cString], [prefix cString], [ns cString]);
return YES;
}
|
|
|
|
48
49
50
51
52
53
54
55
56
57
58
59
60
61
62
63
|
puts("");
return YES;
}
- (BOOL)xmlParser: (OFXMLParser*)parser
didEndTagWithName: (OFString*)name
prefix: (OFString*)prefix
namespace: (OFString*)ns
{
printf("END\nname=\"%s\"\nprefix=\"%s\"\nns=\"%s\"\n\n",
[name cString], [prefix cString], [ns cString]);
return YES;
}
|
︙ | | | ︙ | |