src/array_list.c

changeset 1319
aa1f580f8f59
parent 1318
12fa1d37fe48
child 1322
7be10b57f658
equal deleted inserted replaced
1318:12fa1d37fe48 1319:aa1f580f8f59
43 size_t n; 43 size_t n;
44 if (cx_szmul(capacity, elem_size, &n)) { 44 if (cx_szmul(capacity, elem_size, &n)) {
45 errno = EOVERFLOW; 45 errno = EOVERFLOW;
46 return NULL; 46 return NULL;
47 } 47 }
48 return cxRealloc(cxDefaultAllocator, array, n); 48 return cxReallocDefault(array, n);
49 } 49 }
50 50
51 CxArrayReallocator cx_array_default_reallocator_impl = { 51 CxArrayReallocator cx_array_default_reallocator_impl = {
52 cx_array_default_realloc, NULL, NULL, 0, 0 52 cx_array_default_realloc, NULL, NULL, 0, 0
53 }; 53 };
570 char sbo_mem[CX_ARRAY_SWAP_SBO_SIZE]; 570 char sbo_mem[CX_ARRAY_SWAP_SBO_SIZE];
571 void *tmp; 571 void *tmp;
572 572
573 // decide if we can use the local buffer 573 // decide if we can use the local buffer
574 if (elem_size > CX_ARRAY_SWAP_SBO_SIZE) { 574 if (elem_size > CX_ARRAY_SWAP_SBO_SIZE) {
575 tmp = cxMalloc(cxDefaultAllocator, elem_size); 575 tmp = cxMallocDefault(elem_size);
576 // we don't want to enforce error handling 576 // we don't want to enforce error handling
577 if (tmp == NULL) abort(); 577 if (tmp == NULL) abort();
578 } else { 578 } else {
579 tmp = sbo_mem; 579 tmp = sbo_mem;
580 } 580 }
589 memcpy(left, right, elem_size); 589 memcpy(left, right, elem_size);
590 memcpy(right, tmp, elem_size); 590 memcpy(right, tmp, elem_size);
591 591
592 // free dynamic memory, if it was needed 592 // free dynamic memory, if it was needed
593 if (tmp != sbo_mem) { 593 if (tmp != sbo_mem) {
594 cxFree(cxDefaultAllocator, tmp); 594 cxFreeDefault(tmp);
595 } 595 }
596 } 596 }
597 597
598 // HIGH LEVEL ARRAY LIST FUNCTIONS 598 // HIGH LEVEL ARRAY LIST FUNCTIONS
599 599

mercurial