| 4601 | } |
| 4602 | |
| 4603 | void* dlcalloc(size_t n_elements, size_t elem_size) { |
| 4604 | void* mem; |
| 4605 | size_t req = 0; |
| 4606 | if (n_elements != 0) { |
| 4607 | req = n_elements * elem_size; |
| 4608 | if (((n_elements | elem_size) & ~(size_t)0xffff) && |
| 4609 | (req / n_elements != elem_size)) |
| 4610 | req = MAX_SIZE_T; /* force downstream failure on overflow */ |
| 4611 | } |
| 4612 | mem = dlmalloc(req); |
| 4613 | if (mem != 0 && calloc_must_clear(mem2chunk(mem))) |
| 4614 | memset(mem, 0, req); |
| 4615 | return mem; |
| 4616 | } |
| 4617 | |
| 4618 | void* dlrealloc(void* oldmem, size_t bytes) { |
| 4619 | if (oldmem == 0) |