| 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 ); |