pike.git / src / dmalloc.h

version» Context lines:

pike.git/src/dmalloc.h:1:   /*   || This file is part of Pike. For copyright information see COPYRIGHT.   || Pike is distributed under GPL, LGPL and MPL. See the file COPYING   || for more information. - || $Id: dmalloc.h,v 1.43 2003/02/21 17:27:38 mast Exp $ + || $Id: dmalloc.h,v 1.44 2003/03/14 15:43:22 grubba Exp $   */      PMOD_EXPORT extern void *debug_xalloc(size_t);   PMOD_EXPORT extern void debug_xfree(void *);   PMOD_EXPORT extern void *debug_xmalloc(size_t);   PMOD_EXPORT extern void *debug_xcalloc(size_t,size_t);   PMOD_EXPORT extern void *debug_xrealloc(void *,size_t);    - #define DMALLOC_LOCATION() (("NS" __FILE__ ":" DEFINETOSTR(__LINE__) )+1) + #define DMALLOC_NAMED_LOCATION(NAME) \ +  (("NS" __FILE__ ":" DEFINETOSTR(__LINE__) NAME )+1)    -  + #define DMALLOC_LOCATION() DMALLOC_NAMED_LOCATION("") +    #ifdef DMALLOC_TRACE   #define DMALLOC_TRACELOGSIZE 131072      extern char *dmalloc_tracelog[DMALLOC_TRACELOGSIZE];   extern size_t dmalloc_tracelogptr;      #define DMALLOC_TRACE_LOG(X) (dmalloc_tracelog[ dmalloc_tracelogptr = (dmalloc_tracelogptr +1 )%DMALLOC_TRACELOGSIZE ] = (X))      #endif /* DMALLOC_TRACE */   
pike.git/src/dmalloc.h:59: Inside #if defined(DEBUG_MALLOC)
  /* Beware! names of named memory regions are never ever freed!! /Hubbe */   void *debug_malloc_name(void *p, const char *fn, int line);   int debug_malloc_copy_names(void *p, void *p2);   char *dmalloc_find_name(void *p);      /* glibc 2.1 defines this as a macro. */   #ifdef strdup   #undef strdup   #endif    - #define malloc(x) debug_malloc((x), DMALLOC_LOCATION()) - #define calloc(x, y) debug_calloc((x), (y), DMALLOC_LOCATION()) - #define realloc(x, y) debug_realloc((x), (y), DMALLOC_LOCATION()) - #define free(x) debug_free((x), DMALLOC_LOCATION(),0) - #define dmfree(x) debug_free((x),DMALLOC_LOCATION(),1) - #define strdup(x) debug_strdup((x), DMALLOC_LOCATION()) + #define malloc(x) debug_malloc((x), DMALLOC_NAMED_LOCATION(" malloc")) + #define calloc(x, y) debug_calloc((x), (y), DMALLOC_NAMED_LOCATION(" calloc")) + #define realloc(x, y) debug_realloc((x), (y), DMALLOC_NAMED_LOCATION(" realloc")) + #define free(x) debug_free((x), DMALLOC_NAMED_LOCATION(" free"),0) + #define dmfree(x) debug_free((x),DMALLOC_NAMED_LOCATION(" free"),1) + #define strdup(x) debug_strdup((x), DMALLOC_NAMED_LOCATION(" strdup"))   #define DO_IF_DMALLOC(X) X   #define DO_IF_NOT_DMALLOC(X)   #define debug_malloc_touch(X) debug_malloc_update_location((void *)(X),DMALLOC_LOCATION())   #define debug_malloc_pass(X) debug_malloc_update_location((void *)(X),DMALLOC_LOCATION())   #define dmalloc_touch_struct_ptr(TYPE,X,MEMBER) ((TYPE)debug_malloc_update_location_ptr((void *)(X), ((ptrdiff_t)& (((TYPE)0)->MEMBER)), DMALLOC_LOCATION()))    - #define xalloc(X) ((void *)debug_malloc_pass(debug_xalloc(X))) - #define xfree(X) debug_xfree(debug_malloc_pass((X))) + #define xalloc(X) ((void *)debug_malloc_update_location((void *)debug_xalloc(X), DMALLOC_NAMED_LOCATION(" xalloc"))) + #define xfree(X) debug_xfree(debug_malloc_update_location((X), DMALLOC_NAMED_LOCATION(" free")))   void debug_malloc_dump_references(void *x, int indent, int depth, int flags);   #define dmalloc_touch(TYPE,X) ((TYPE)debug_malloc_update_location((void *)(X),DMALLOC_LOCATION()))   void debug_malloc_dump_fd(int fd);   #define dmalloc_touch_svalue(X) do { struct svalue *_tmp = (X); if ((X)->type <= MAX_REF_TYPE) { debug_malloc_touch(_tmp->u.refs); } } while(0)      #define DMALLOC_LINE_ARGS ,char * dmalloc_location   #define DMALLOC_POS ,DMALLOC_LOCATION()   #define DMALLOC_PROXY_ARGS ,dmalloc_location   void dmalloc_accept_leak(void *);   #define dmalloc_touch_fd(X) debug_malloc_touch_fd((X),DMALLOC_LOCATION())