Lines Matching refs:impl

31   ArrayListImpl* impl;
36 impl = NEW(ArrayListImpl, MTAG);
38 if (impl == NULL)
41 impl->Interface.add = &ArrayList_Add;
42 impl->Interface.insertAt = &ArrayList_InsertAt;
43 impl->Interface.contains = &ArrayList_Contains;
44 impl->Interface.destroy = &ArrayList_Destroy;
45 impl->Interface.get = &ArrayList_Get;
46 impl->Interface.getSize = &ArrayList_GetSize;
47 impl->Interface.remove = &ArrayList_Remove;
48 impl->Interface.removeAtIndex = &ArrayList_RemoveAtIndex;
49 impl->Interface.removeAll = &ArrayList_RemoveAll;
50 impl->Interface.set = &ArrayList_Set;
51 impl->Interface.toStaticArray = NULL; /* Not implemented */
52 impl->Interface.clone = &ArrayList_Clone;
54 impl->contents = MALLOC(minCapacity * sizeof(void*), MTAG);
55 if (impl->contents == NULL)
57 FREE(impl);
60 impl->capacity = minCapacity;
61 impl->minCapacity = minCapacity;
62 impl->size = 0;
64 *self = (ArrayList*) impl;
74 static ESR_ReturnCode ArrayList_Insert_Internal(ArrayListImpl *impl, size_t index, void *element)
78 if (impl->size >= impl->capacity)
81 size_t newCapacity = impl->capacity * 2;
82 void** temp = REALLOC(impl->contents, newCapacity * sizeof(void*));
85 impl->contents = temp;
86 impl->capacity = newCapacity;
89 for (i = impl->size; i > index; --i)
90 impl->contents[i] = impl->contents[i - 1];
91 ++impl->size;
92 impl->contents[index] = element;
98 ArrayListImpl *impl = (ArrayListImpl *) self;
100 return ArrayList_Insert_Internal(impl, impl->size, element);
105 ArrayListImpl *impl = (ArrayListImpl *) self;
107 if (index > impl->size)
110 return ArrayList_Insert_Internal(impl, index, element);
113 static ESR_ReturnCode ArrayList_Remove_Internal(ArrayListImpl *impl, size_t i)
115 --impl->size;
116 while (i < impl->size)
118 impl->contents[i] = impl->contents[i+1];
122 if (impl->capacity > impl->minCapacity &&
123 impl->size <= impl->capacity / 4)
126 size_t newCapacity = impl->capacity / 2;
129 if ((temp = REALLOC(impl->contents, newCapacity * sizeof(void*))) == NULL)
131 impl->contents = temp;
132 impl->capacity = newCapacity;
139 ArrayListImpl* impl = (ArrayListImpl*) self;
143 for (i = 0; i < impl->size; ++i)
145 if (impl->contents[i] == element)
146 return ArrayList_Remove_Internal(impl, i);
154 ArrayListImpl* impl = (ArrayListImpl*) self;
156 if (index >= impl->size)
159 return ArrayList_Remove_Internal(impl, index);
164 ArrayListImpl* impl = (ArrayListImpl*) self;
166 impl->size = 0;
173 ArrayListImpl* impl = (ArrayListImpl*) self;
176 for (i = 0; i < impl->size; ++i)
178 if (impl->contents[i] == element)
190 ArrayListImpl* impl = (ArrayListImpl*) self;
192 if (index >= impl->size)
194 *element = impl->contents[index];
200 ArrayListImpl* impl = (ArrayListImpl*) self;
202 if (index >= impl->size)
204 impl->contents[index] = element;
210 ArrayListImpl* impl = (ArrayListImpl*) self;
212 *size = impl->size;
236 ArrayListImpl* impl = (ArrayListImpl*) self;
238 FREE(impl->contents);