diff options
-rw-r--r-- | nt/inc/ms-w32.h | 3 | ||||
-rw-r--r-- | src/w32heap.c | 10 |
2 files changed, 13 insertions, 0 deletions
diff --git a/nt/inc/ms-w32.h b/nt/inc/ms-w32.h index 6d20c959a3f..3b1d3ff0393 100644 --- a/nt/inc/ms-w32.h +++ b/nt/inc/ms-w32.h @@ -499,6 +499,8 @@ extern void *malloc_after_dump_9x(size_t); extern void *realloc_after_dump_9x(void *, size_t); extern void free_after_dump_9x(void *); +extern void *sys_calloc(size_t, size_t); + extern malloc_fn the_malloc_fn; extern realloc_fn the_realloc_fn; extern free_fn the_free_fn; @@ -506,6 +508,7 @@ extern free_fn the_free_fn; #define malloc(size) (*the_malloc_fn)(size) #define free(ptr) (*the_free_fn)(ptr) #define realloc(ptr, size) (*the_realloc_fn)(ptr, size) +#define calloc(num, size) sys_calloc(num, size) #endif diff --git a/src/w32heap.c b/src/w32heap.c index 3a6c7804675..ececc73c026 100644 --- a/src/w32heap.c +++ b/src/w32heap.c @@ -597,6 +597,16 @@ free_after_dump_9x (void *ptr) } } +void * +sys_calloc (size_t number, size_t size) +{ + size_t nbytes = number * size; + void *ptr = (*the_malloc_fn) (nbytes); + if (ptr) + memset (ptr, 0, nbytes); + return ptr; +} + #if defined HAVE_UNEXEC && defined ENABLE_CHECKING void report_temacs_memory_usage (void) |