mirror of
https://github.com/gryf/wmaker.git
synced 2026-01-30 20:35:49 +01:00
WMArray class is almost ready.
This commit is contained in:
@@ -77,20 +77,22 @@ WMFreeArray(WMArray *array)
|
|||||||
}
|
}
|
||||||
|
|
||||||
|
|
||||||
int
|
void*
|
||||||
WMReplaceArrayElement(WMArray *array, unsigned int index, void *data)
|
WMReplaceInArray(WMArray *array, unsigned int index, void *data)
|
||||||
{
|
{
|
||||||
|
void *old;
|
||||||
|
|
||||||
wassertrv(index > array->length, 0);
|
wassertrv(index > array->length, 0);
|
||||||
|
|
||||||
if (index == array->length)
|
if (index == array->length) {
|
||||||
return WMArrayAppend(array, data);
|
WMArrayAppend(array, data);
|
||||||
|
return NULL;
|
||||||
if (array->destructor) {
|
|
||||||
array->destructor(array->items[index]);
|
|
||||||
}
|
}
|
||||||
|
|
||||||
|
old = array->items[index];
|
||||||
array->items[index] = data;
|
array->items[index] = data;
|
||||||
|
|
||||||
return 1;
|
return old;
|
||||||
}
|
}
|
||||||
|
|
||||||
|
|
||||||
@@ -174,11 +176,11 @@ WMDeleteFromArray(WMArray *array, unsigned index)
|
|||||||
void*
|
void*
|
||||||
WMArrayPop(WMArray *array)
|
WMArrayPop(WMArray *array)
|
||||||
{
|
{
|
||||||
void *d = WMGetArrayElement(array, array->length-1);
|
void *last = array->items[length-1];
|
||||||
|
|
||||||
removeFromArray(array, array->length-1);
|
removeFromArray(array, array->length-1);
|
||||||
|
|
||||||
return d;
|
return last;
|
||||||
}
|
}
|
||||||
|
|
||||||
|
|
||||||
|
|||||||
Reference in New Issue
Block a user