Fix the MS-Windows build broken by "Let the OS clear large new objects"

* src/w32heap.c (sys_calloc): New function, implements calloc
in terms of our private implementations of malloc.

* nt/inc/ms-w32.h (calloc): Redirect to sys_calloc.
This commit is contained in:
Eli Zaretskii 2020-01-03 18:27:35 +02:00
parent fa7148fd5a
commit 2b6d702e5d
2 changed files with 13 additions and 0 deletions

View file

@ -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

View file

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