checks for alloc errors
This commit is contained in:
@ -19,6 +19,7 @@ union arraylist_meta {
|
|||||||
|
|
||||||
void* acl_arraylist_create(size_t array_size, size_t sizeof_one_element) {
|
void* acl_arraylist_create(size_t array_size, size_t sizeof_one_element) {
|
||||||
union arraylist_meta *arraylist_new = malloc(array_size * sizeof_one_element + sizeof*arraylist_new);
|
union arraylist_meta *arraylist_new = malloc(array_size * sizeof_one_element + sizeof*arraylist_new);
|
||||||
|
if(arraylist_new == NULL) return NULL;
|
||||||
arraylist_new->len = array_size;
|
arraylist_new->len = array_size;
|
||||||
arraylist_new->cap = array_size;
|
arraylist_new->cap = array_size;
|
||||||
arraylist_new->sizeof_one_element = sizeof_one_element;
|
arraylist_new->sizeof_one_element = sizeof_one_element;
|
||||||
@ -28,7 +29,9 @@ void* acl_arraylist_create(size_t array_size, size_t sizeof_one_element) {
|
|||||||
void* acl_arraylist_append(void *arraylist_void, void *element) {
|
void* acl_arraylist_append(void *arraylist_void, void *element) {
|
||||||
void *append_pointer;
|
void *append_pointer;
|
||||||
void **element_append = &append_pointer;
|
void **element_append = &append_pointer;
|
||||||
union arraylist_meta *arraylist = (union arraylist_meta*)acl_arraylist_append_ptr(arraylist_void, element_append) - 1;
|
union arraylist_meta *arraylist = acl_arraylist_append_ptr(arraylist_void, element_append);
|
||||||
|
if(arraylist == NULL) return NULL;
|
||||||
|
--arraylist;
|
||||||
memcpy(*element_append, element, arraylist->sizeof_one_element);
|
memcpy(*element_append, element, arraylist->sizeof_one_element);
|
||||||
return arraylist + 1;
|
return arraylist + 1;
|
||||||
}
|
}
|
||||||
|
|||||||
Reference in New Issue
Block a user