@@ -90,7 +90,8 @@ void arrayList_trimToSize(array_list_pt list) {
9090 }
9191}
9292
93- void arrayList_ensureCapacity (array_list_pt list , int capacity ) {
93+ celix_status_t arrayList_ensureCapacity (array_list_pt list , int capacity ) {
94+ celix_status_t status = CELIX_SUCCESS ;
9495 celix_array_list_entry_t * newList ;
9596 list -> modCount ++ ;
9697 size_t oldCapacity = list -> capacity ;
@@ -100,9 +101,13 @@ void arrayList_ensureCapacity(array_list_pt list, int capacity) {
100101 newCapacity = capacity ;
101102 }
102103 newList = realloc (list -> elementData , sizeof (celix_array_list_entry_t ) * newCapacity );
103- list -> capacity = newCapacity ;
104- list -> elementData = newList ;
104+ if (newList != NULL ) {
105+ list -> capacity = newCapacity ;
106+ list -> elementData = newList ;
107+ }
108+ status = newList == NULL ? CELIX_ENOMEM : CELIX_SUCCESS ;
105109 }
110+ return status ;
106111}
107112
108113unsigned int arrayList_size (array_list_pt list ) {
@@ -280,7 +285,7 @@ array_list_pt arrayList_clone(array_list_pt list) {
280285// arrayList_ensureCapacity(new, list->size);
281286// memcpy(new->elementData, list->elementData, list->size);
282287// new->size = list->size;
283-
288+
284289 for (i = 0 ; i < arrayList_size (list ); i ++ ) {
285290 arrayList_add (new , arrayList_get (list , i ));
286291 }
@@ -420,65 +425,75 @@ double celix_arrayList_getDouble(const celix_array_list_t *list, int index) { re
420425bool celix_arrayList_getBool (const celix_array_list_t * list , int index ) { return arrayList_getEntry (list , index ).boolVal ; }
421426size_t celix_arrayList_getSize (const celix_array_list_t * list , int index ) { return arrayList_getEntry (list , index ).sizeVal ; }
422427
423- static void arrayList_addEntry (celix_array_list_t * list , celix_array_list_entry_t entry ) {
424- arrayList_ensureCapacity (list , (int )list -> size + 1 );
425- list -> elementData [list -> size ++ ] = entry ;
428+ static celix_status_t celix_arrayList_addEntry (celix_array_list_t * list , celix_array_list_entry_t entry ) {
429+ celix_status_t status = arrayList_ensureCapacity (list , (int )list -> size + 1 );
430+ if (status == CELIX_SUCCESS ) {
431+ list -> elementData [list -> size ++ ] = entry ;
432+ }
433+ return status ;
426434}
427435
428- void celix_arrayList_add (celix_array_list_t * list , void * element ) {
436+ celix_status_t celix_arrayList_add (celix_array_list_t * list , void * element ) {
429437 celix_array_list_entry_t entry ;
430438 memset (& entry , 0 , sizeof (entry ));
431439 entry .voidPtrVal = element ;
432- arrayList_addEntry (list , entry );
440+ return celix_arrayList_addEntry (list , entry );
433441}
434442
435- void celix_arrayList_addInt (celix_array_list_t * list , int val ) {
443+ celix_status_t celix_arrayList_addInt (celix_array_list_t * list , int val ) {
436444 celix_array_list_entry_t entry ;
437445 memset (& entry , 0 , sizeof (entry ));
438446 entry .intVal = val ;
439- arrayList_addEntry (list , entry );
447+ return celix_arrayList_addEntry (list , entry );
440448}
441- void celix_arrayList_addLong (celix_array_list_t * list , long val ) {
449+
450+ celix_status_t celix_arrayList_addLong (celix_array_list_t * list , long val ) {
442451 celix_array_list_entry_t entry ;
443452 memset (& entry , 0 , sizeof (entry ));
444453 entry .longVal = val ;
445- arrayList_addEntry (list , entry );
454+ return celix_arrayList_addEntry (list , entry );
446455}
447- void celix_arrayList_addUInt (celix_array_list_t * list , unsigned int val ) {
456+
457+ celix_status_t celix_arrayList_addUInt (celix_array_list_t * list , unsigned int val ) {
448458 celix_array_list_entry_t entry ;
449459 memset (& entry , 0 , sizeof (entry ));
450460 entry .uintVal = val ;
451- arrayList_addEntry (list , entry );
461+ return celix_arrayList_addEntry (list , entry );
452462}
453- void celix_arrayList_addULong (celix_array_list_t * list , unsigned long val ) {
463+
464+ celix_status_t celix_arrayList_addULong (celix_array_list_t * list , unsigned long val ) {
454465 celix_array_list_entry_t entry ;
455466 memset (& entry , 0 , sizeof (entry ));
456467 entry .ulongVal = val ;
457- arrayList_addEntry (list , entry );
468+ return celix_arrayList_addEntry (list , entry );
458469}
459- void celix_arrayList_addDouble (celix_array_list_t * list , double val ) {
470+
471+ celix_status_t celix_arrayList_addDouble (celix_array_list_t * list , double val ) {
460472 celix_array_list_entry_t entry ;
461473 memset (& entry , 0 , sizeof (entry ));
462474 entry .doubleVal = val ;
463- arrayList_addEntry (list , entry );
475+ return celix_arrayList_addEntry (list , entry );
464476}
465- void celix_arrayList_addFloat (celix_array_list_t * list , float val ) {
477+
478+ celix_status_t celix_arrayList_addFloat (celix_array_list_t * list , float val ) {
466479 celix_array_list_entry_t entry ;
467480 memset (& entry , 0 , sizeof (entry ));
468481 entry .floatVal = val ;
469- arrayList_addEntry (list , entry );
482+ return celix_arrayList_addEntry (list , entry );
470483}
471- void celix_arrayList_addBool (celix_array_list_t * list , bool val ) {
484+
485+ celix_status_t celix_arrayList_addBool (celix_array_list_t * list , bool val ) {
472486 celix_array_list_entry_t entry ;
473487 memset (& entry , 0 , sizeof (entry ));
474488 entry .boolVal = val ;
475- arrayList_addEntry (list , entry );
489+ return celix_arrayList_addEntry (list , entry );
476490}
477- void celix_arrayList_addSize (celix_array_list_t * list , size_t val ) {
491+
492+ celix_status_t celix_arrayList_addSize (celix_array_list_t * list , size_t val ) {
478493 celix_array_list_entry_t entry ;
479494 memset (& entry , 0 , sizeof (entry ));
480495 entry .sizeVal = val ;
481- arrayList_addEntry (list , entry );
496+ return celix_arrayList_addEntry (list , entry );
482497}
483498
484499int celix_arrayList_indexOf (celix_array_list_t * list , celix_array_list_entry_t entry ) {
0 commit comments