78 } |
78 } |
79 |
79 |
80 static void *cx_realloc_testing(void *d, void *mem, size_t n) { |
80 static void *cx_realloc_testing(void *d, void *mem, size_t n) { |
81 CxTestingAllocator *data = d; |
81 CxTestingAllocator *data = d; |
82 void *ptr = realloc(mem, n); |
82 void *ptr = realloc(mem, n); |
83 if (ptr == mem) { |
83 if (mem != NULL && ptr == mem) { |
84 return ptr; |
84 return ptr; |
85 } else { |
85 } else { |
86 data->alloc_total++; |
86 data->alloc_total++; |
87 if (ptr == NULL) { |
87 if (ptr == NULL) { |
88 data->alloc_failed++; |
88 data->alloc_failed++; |
89 } else { |
89 } else { |
90 data->free_total++; |
90 if (mem != NULL) { |
91 if (!cx_testing_allocator_untrack(data, mem)) { |
91 data->free_total++; |
92 data->free_failed++; |
92 if (!cx_testing_allocator_untrack(data, mem)) { |
|
93 data->free_failed++; |
|
94 } |
93 } |
95 } |
94 cx_testing_allocator_track(data, ptr); |
96 cx_testing_allocator_track(data, ptr); |
95 } |
97 } |
96 return ptr; |
98 return ptr; |
97 } |
99 } |