Differences From Artifact [6a33891d13]:
- File
src/OFList.m
— part of check-in
[033054ad75]
at
2009-05-29 19:21:57
on branch trunk
— A few renames.
OFExceptions:
* OFNoMemException to OFOutOfMemoryException.
* OFMemNotPartOfObjException to OFMemoryNotPartOfObjectException.OFObject:
* -[addItemToMemoryPool:] to -[addMemoryToPool:].
* -[allocWithSize:] to -[allocMemoryWithSize:].
* -[allocNItems:withSize] to -[allocMemoryForNItems:withSize:].
* -[resizeMem:toSize] to -[resizeMemory:toSize:].
* -[resizeMem:toNItems:withSize:] to
-[resizeMemoryToNItems:withSize:].
* -[freeMem] to -[freeMemory:].OFString:
* -[urlencode] to -[urlEncodedString].
* -[urldecode] to -[urlDecodedString]. (user: js, size: 3853) [annotate] [blame] [check-ins using]
To Artifact [f1ec98a7a2]:
- File
src/OFList.m
— part of check-in
[24ecf55297]
at
2009-06-29 12:33:59
on branch trunk
— Changes to OFDictionary, OFIterator and OFList - see details.
OFDictionary:
* More optimized way to internally store the data.
* Faster resizing of dictionaries (no rehashing anymore).OFIterator:
* Return a key/object pair rather than first the key and then the
object.OFList:
* Support for list objects with a different size so you can have your
own list object structs. (user: js, size: 4190) [annotate] [blame] [check-ins using]
︙ | ︙ | |||
15 16 17 18 19 20 21 22 23 24 25 26 27 28 29 30 31 32 33 34 35 36 37 38 39 40 41 42 43 44 45 46 | #import "OFExceptions.h" @implementation OFList + list { return [[[self alloc] init] autorelease]; } - init { self = [super init]; first = NULL; last = NULL; retain_and_release = YES; return self; } - initWithoutRetainAndRelease { self = [super init]; first = NULL; last = NULL; return self; } - (void)dealloc { of_list_object_t *iter; | > > > > > > > > > > > > > > > > > > > > | 15 16 17 18 19 20 21 22 23 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 55 56 57 58 59 60 61 62 63 64 65 66 | #import "OFExceptions.h" @implementation OFList + list { return [[[self alloc] init] autorelease]; } + listWithListObjectSize: (size_t)listobj_size_ { return [[[self alloc] initWithListObjectSize: listobj_size_] autorelease]; } - init { self = [super init]; first = NULL; last = NULL; listobj_size = sizeof(of_list_object_t); retain_and_release = YES; return self; } - initWithListObjectSize: (size_t)listobj_size_; { self = [super init]; first = NULL; last = NULL; listobj_size = listobj_size_; retain_and_release = YES; return self; } - initWithoutRetainAndRelease { self = [super init]; first = NULL; last = NULL; listobj_size = sizeof(of_list_object_t); return self; } - (void)dealloc { of_list_object_t *iter; |
︙ | ︙ | |||
61 62 63 64 65 66 67 | return last; } - (of_list_object_t*)append: (id)obj { of_list_object_t *o; | | | 81 82 83 84 85 86 87 88 89 90 91 92 93 94 95 | return last; } - (of_list_object_t*)append: (id)obj { of_list_object_t *o; o = [self allocMemoryWithSize: listobj_size]; o->object = obj; o->next = NULL; o->prev = last; if (last != NULL) last->next = o; |
︙ | ︙ | |||
83 84 85 86 87 88 89 | return o; } - (of_list_object_t*)prepend: (id)obj { of_list_object_t *o; | | | 103 104 105 106 107 108 109 110 111 112 113 114 115 116 117 | return o; } - (of_list_object_t*)prepend: (id)obj { of_list_object_t *o; o = [self allocMemoryWithSize: listobj_size]; o->object = obj; o->next = first; o->prev = NULL; if (first != NULL) first->prev = o; |
︙ | ︙ | |||
106 107 108 109 110 111 112 | } - (of_list_object_t*)insert: (id)obj before: (of_list_object_t*)listobj { of_list_object_t *o; | | | 126 127 128 129 130 131 132 133 134 135 136 137 138 139 140 | } - (of_list_object_t*)insert: (id)obj before: (of_list_object_t*)listobj { of_list_object_t *o; o = [self allocMemoryWithSize: listobj_size]; o->object = obj; o->next = listobj; o->prev = listobj->prev; if (listobj->prev != NULL) listobj->prev->next = o; |
︙ | ︙ | |||
130 131 132 133 134 135 136 | } - (of_list_object_t*)insert: (id)obj after: (of_list_object_t*)listobj { of_list_object_t *o; | | | 150 151 152 153 154 155 156 157 158 159 160 161 162 163 164 | } - (of_list_object_t*)insert: (id)obj after: (of_list_object_t*)listobj { of_list_object_t *o; o = [self allocMemoryWithSize: listobj_size]; o->object = obj; o->next = listobj->next; o->prev = listobj; if (listobj->next != NULL) listobj->next->prev = o; |
︙ | ︙ | |||
214 215 216 217 218 219 220 | new = [[OFList alloc] initWithoutRetainAndRelease]; o = NULL; prev = NULL; @try { for (iter = first; iter != NULL; iter = iter->next) { | | | 234 235 236 237 238 239 240 241 242 243 244 245 246 247 248 | new = [[OFList alloc] initWithoutRetainAndRelease]; o = NULL; prev = NULL; @try { for (iter = first; iter != NULL; iter = iter->next) { o = [new allocMemoryWithSize: listobj_size]; o->object = iter->object; o->next = NULL; o->prev = prev; if (new->first == NULL) new->first = o; if (prev != NULL) |
︙ | ︙ |