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:
parent
fa7148fd5a
commit
2b6d702e5d
2 changed files with 13 additions and 0 deletions
|
@ -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
|
||||
|
||||
|
|
|
@ -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)
|
||||
|
|
Loading…
Add table
Reference in a new issue