From 468f5783457e54c627c0e6ef7c2226a14b8dff82 Mon Sep 17 00:00:00 2001 From: dan Date: Tue, 19 Sep 2000 02:05:45 +0000 Subject: [PATCH] WMArray class is almost ready. --- WINGs/array.c | 22 ++++++++++++---------- 1 file changed, 12 insertions(+), 10 deletions(-) diff --git a/WINGs/array.c b/WINGs/array.c index 64b33e96..cdfdfe3f 100644 --- a/WINGs/array.c +++ b/WINGs/array.c @@ -77,20 +77,22 @@ WMFreeArray(WMArray *array) } -int -WMReplaceArrayElement(WMArray *array, unsigned int index, void *data) +void* +WMReplaceInArray(WMArray *array, unsigned int index, void *data) { + void *old; + wassertrv(index > array->length, 0); - if (index == array->length) - return WMArrayAppend(array, data); - - if (array->destructor) { - array->destructor(array->items[index]); + if (index == array->length) { + WMArrayAppend(array, data); + return NULL; } + + old = array->items[index]; array->items[index] = data; - return 1; + return old; } @@ -174,11 +176,11 @@ WMDeleteFromArray(WMArray *array, unsigned index) void* WMArrayPop(WMArray *array) { - void *d = WMGetArrayElement(array, array->length-1); + void *last = array->items[length-1]; removeFromArray(array, array->length-1); - return d; + return last; }