From 08cf758b9efae30465ea5e621b97ca953b74265d Mon Sep 17 00:00:00 2001 From: =?UTF-8?q?Fredrik=20H=C3=BCbinette=20=28Hubbe=29?= <hubbe@hubbe.net> Date: Sat, 6 Oct 2001 05:04:08 -0700 Subject: [PATCH] more debug Rev: src/block_alloc.h:1.39 Rev: src/dmalloc.h:1.34 Rev: src/pike_macros.h:1.27 --- src/block_alloc.h | 6 +++--- src/dmalloc.h | 3 ++- src/pike_macros.h | 8 ++++++-- 3 files changed, 11 insertions(+), 6 deletions(-) diff --git a/src/block_alloc.h b/src/block_alloc.h index e65c187590..4b9865300f 100644 --- a/src/block_alloc.h +++ b/src/block_alloc.h @@ -1,4 +1,4 @@ -/* $Id: block_alloc.h,v 1.38 2001/09/25 21:23:30 hubbe Exp $ */ +/* $Id: block_alloc.h,v 1.39 2001/10/06 12:04:08 hubbe Exp $ */ #undef PRE_INIT_BLOCK #undef INIT_BLOCK #undef EXIT_BLOCK @@ -109,7 +109,7 @@ void PIKE_CONCAT3(really_free_,DATA,_unlocked)(struct DATA *d) \ { \ EXIT_BLOCK(d); \ DO_IF_DMALLOC( PIKE_CONCAT(check_free_,DATA)(d); \ - dmalloc_unregister(d, 1); ) \ + dmalloc_mark_as_free(d, 1); ) \ d->BLOCK_ALLOC_NEXT = (void *)PIKE_CONCAT3(free_,DATA,s); \ PRE_INIT_BLOCK(d); \ PIKE_CONCAT3(free_,DATA,s)=d; \ @@ -120,7 +120,7 @@ void PIKE_CONCAT(really_free_,DATA)(struct DATA *d) \ EXIT_BLOCK(d); \ DO_IF_RUN_UNLOCKED(mt_lock(&PIKE_CONCAT(DATA,_mutex))); \ DO_IF_DMALLOC( PIKE_CONCAT(check_free_,DATA)(d); \ - dmalloc_unregister(d, 1); ) \ + dmalloc_mark_as_free(d, 1); ) \ d->BLOCK_ALLOC_NEXT = (void *)PIKE_CONCAT3(free_,DATA,s); \ PRE_INIT_BLOCK(d); \ PIKE_CONCAT3(free_,DATA,s)=d; \ diff --git a/src/dmalloc.h b/src/dmalloc.h index 1f9c76748c..c683c0b566 100644 --- a/src/dmalloc.h +++ b/src/dmalloc.h @@ -1,5 +1,5 @@ /* - * $Id: dmalloc.h,v 1.33 2001/10/03 22:21:32 nilsson Exp $ + * $Id: dmalloc.h,v 1.34 2001/10/06 12:04:08 hubbe Exp $ */ PMOD_EXPORT extern void *debug_xalloc(size_t); @@ -44,6 +44,7 @@ extern void dmalloc_free(void *p); extern int debug_malloc_touch_fd(int, char *); extern int debug_malloc_register_fd(int, char *); extern int debug_malloc_close_fd(int, char *); +extern int dmalloc_mark_as_free(void*,int); void *debug_malloc_update_location(void *, char *); void *debug_malloc_update_location_ptr(void *, ptrdiff_t, char *); diff --git a/src/pike_macros.h b/src/pike_macros.h index 4cb412e938..414b2b7c80 100644 --- a/src/pike_macros.h +++ b/src/pike_macros.h @@ -5,7 +5,7 @@ \*/ /* - * $Id: pike_macros.h,v 1.26 2001/07/22 21:36:14 mast Exp $ + * $Id: pike_macros.h,v 1.27 2001/10/06 12:04:08 hubbe Exp $ */ #ifndef MACROS_H #define MACROS_H @@ -101,6 +101,7 @@ } while (0) #define DOUBLELINK(first_object, o) do { \ + debug_malloc_touch(o); \ o->next=first_object; \ o->prev=0; \ if(first_object) first_object->prev=o; \ @@ -108,12 +109,15 @@ }while(0) #define DOUBLEUNLINK(first_object,o) do{ \ + debug_malloc_touch(o); \ if(o->prev) { \ o->prev->next=o->next; \ }else { \ DO_IF_DEBUG( \ - if(first_object != o) \ + if(first_object != o) { \ + describe(o); \ fatal("Linked in wrong list!\n"); \ + } \ ) \ first_object=o->next; \ } \ -- GitLab