summaryrefslogtreecommitdiff
diff options
context:
space:
mode:
authorGerd Moellmann <gerd@gnu.org>2000-10-20 15:57:00 +0000
committerGerd Moellmann <gerd@gnu.org>2000-10-20 15:57:00 +0000
commit8094989ba2229aeb562284ac96034252ad0c90c8 (patch)
tree80683494a60436459243ed8fa593f73e5e61182b
parent877935b1f574db32339050788147d677fc3cce27 (diff)
(_malloc_internal) [GC_MALLOC_CHECK]: Use
_malloc_internal instead of malloc. (_free_internal) [GC_MALLOC_CHECK]: Use _free_internal instead of free.
-rw-r--r--src/ChangeLog23
-rw-r--r--src/gmalloc.c8
2 files changed, 31 insertions, 0 deletions
diff --git a/src/ChangeLog b/src/ChangeLog
index c390352004..6943c74531 100644
--- a/src/ChangeLog
+++ b/src/ChangeLog
@@ -1,3 +1,26 @@
+2000-10-20 Gerd Moellmann <gerd@gnu.org>
+
+ * alloc.c (toplevel) [SYSTEM_MALLOC || DOUG_LEA_MALLOC]: Undef
+ GC_MALLOC_CHECK.
+ (toplevel) [GC_MARK_STACK || GC_MALLOC_CHECK]: Move mem_node
+ structure definition and related variabled to the top of the file.
+ Include this code when GC_MALLOC_CHECK is defined.
+ (lisp_malloc, lisp_free) [GC_MALLOC_CHECK]: Don't
+ register/unregister allocated region.
+ (emacs_blocked_free) [GC_MALLOC_CHECK]: Check if freeing something
+ which isn't allocated.
+ (emacs_blocked_malloc) [GC_MALLOC_CHECK]: Check if returning
+ something which is already in use.
+ (emacs_blocked_realloc) [GC_MALLOC_CHECK]: Likewise.
+ (mem_insert) [GC_MALLOC_CHECK]: Use _malloc_internal.
+ (mem_delete) [GC_MALLOC_CHECK]: Use _free_internal.
+ (init_alloc_once) [GC_MALLOC_CHECK]: Call mem_init.
+
+ * gmalloc.c (_malloc_internal) [GC_MALLOC_CHECK]: Use
+ _malloc_internal instead of malloc.
+ (_free_internal) [GC_MALLOC_CHECK]: Use _free_internal instead
+ of free.
+
2000-10-20 Andrew Innes <andrewi@gnu.org>
* strftime.c [!WINDOWSNT]: Don't apply Solaris 2.5 work-around on
diff --git a/src/gmalloc.c b/src/gmalloc.c
index e05b758b76..2ce168c71c 100644
--- a/src/gmalloc.c
+++ b/src/gmalloc.c
@@ -678,7 +678,11 @@ _malloc_internal (size)
{
/* No free fragments of the desired size, so get a new block
and break it into fragments, returning the first. */
+#ifdef GC_MALLOC_CHECK
+ result = _malloc_internal (BLOCKSIZE);
+#else
result = malloc (BLOCKSIZE);
+#endif
if (result == NULL)
return NULL;
@@ -1092,7 +1096,11 @@ _free_internal (ptr)
_chunks_free -= BLOCKSIZE >> type;
_bytes_free -= BLOCKSIZE;
+#ifdef GC_MALLOC_CHECK
+ _free_internal (ADDRESS (block));
+#else
free (ADDRESS (block));
+#endif
}
else if (_heapinfo[block].busy.info.frag.nfree != 0)
{