66 uintptr_t targetaddr = (uintptr_t) *target; |
66 uintptr_t targetaddr = (uintptr_t) *target; |
67 uintptr_t srcaddr = (uintptr_t) src; |
67 uintptr_t srcaddr = (uintptr_t) src; |
68 bool repairsrc = targetaddr <= srcaddr |
68 bool repairsrc = targetaddr <= srcaddr |
69 && srcaddr < targetaddr + cap * elem_size; |
69 && srcaddr < targetaddr + cap * elem_size; |
70 |
70 |
71 /* increase capacity linearly */ |
71 /* calculate new capacity (next number divisible by 16) */ |
72 cap += 16; |
72 cap = newsize - (newsize % 16) + 16; |
|
73 assert(cap > newsize); |
73 |
74 |
74 /* perform reallocation */ |
75 /* perform reallocation */ |
75 void *newmem = reallocator->realloc( |
76 void *newmem = reallocator->realloc( |
76 *target, cap, elem_size, reallocator |
77 *target, cap, elem_size, reallocator |
77 ); |
78 ); |