]> git.eshelyaron.com Git - emacs.git/commitdiff
Fix the MS-Windows build broken by "Let the OS clear large new objects"
authorEli Zaretskii <eliz@gnu.org>
Fri, 3 Jan 2020 16:27:35 +0000 (18:27 +0200)
committerEli Zaretskii <eliz@gnu.org>
Fri, 3 Jan 2020 16:27:35 +0000 (18:27 +0200)
* 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.

nt/inc/ms-w32.h
src/w32heap.c

index 6d20c959a3fc8e94b82ece6e02dc22be9c2e8d0f..3b1d3ff0393481c3f46a652632f5c7637be264f2 100644 (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
 
index 3a6c780467542b7434215a94e1e038b6320eabd0..ececc73c02683aae6e80c443cd3ba850dc76774b 100644 (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)