pike.git / src / block_alloc.h

version» Context lines:

pike.git/src/block_alloc.h:1: - /* $Id: block_alloc.h,v 1.17 2000/03/22 00:55:07 hubbe Exp $ */ + /* $Id: block_alloc.h,v 1.18 2000/03/24 01:24:49 hubbe Exp $ */   #undef PRE_INIT_BLOCK   #undef INIT_BLOCK   #undef EXIT_BLOCK   #undef BLOCK_ALLOC   #undef PTR_HASH_ALLOC   #undef COUNT_BLOCK   #undef COUNT_OTHER      #define PRE_INIT_BLOCK(X)   #define INIT_BLOCK(X)
pike.git/src/block_alloc.h:44:    for(e=0;e<BSIZE;e++) \    { \    n->x[e].BLOCK_ALLOC_NEXT=PIKE_CONCAT3(free_,DATA,s); \    PRE_INIT_BLOCK( (n->x+e) ); \    PIKE_CONCAT3(free_,DATA,s)=n->x+e; \    } \    } \    \    tmp=PIKE_CONCAT3(free_,DATA,s); \    PIKE_CONCAT3(free_,DATA,s)=tmp->BLOCK_ALLOC_NEXT; \ -  DO_IF_DMALLOC( dmalloc_register(tmp,0, DMALLOC_LOCATION()); ) \ +  DO_IF_DMALLOC( dmalloc_register(tmp,sizeof(struct DATA), DMALLOC_LOCATION()); )\    INIT_BLOCK(tmp); \    return tmp; \   } \    \   void PIKE_CONCAT(really_free_,DATA)(struct DATA *d) \   { \    EXIT_BLOCK(d); \    DO_IF_DMALLOC( dmalloc_unregister(d, 1); ) \    d->BLOCK_ALLOC_NEXT=PIKE_CONCAT3(free_,DATA,s); \    PRE_INIT_BLOCK(d); \    PIKE_CONCAT3(free_,DATA,s)=d; \   } \    \   void PIKE_CONCAT3(free_all_,DATA,_blocks)(void) \   { \    struct PIKE_CONCAT(DATA,_block) *tmp; \ -  +  DO_IF_DMALLOC( \ +  for(tmp=PIKE_CONCAT(DATA,_blocks);tmp;tmp=tmp->next) \ +  { \ +  int tmp2; \ +  extern void dmalloc_check_block_free(void *p); \ +  for(tmp2=0;tmp2<BSIZE;tmp2++) \ +  dmalloc_check_block_free(tmp->x+tmp2); \ +  } \ +  ) \    while((tmp=PIKE_CONCAT(DATA,_blocks))) \    { \    PIKE_CONCAT(DATA,_blocks)=tmp->next; \    free((char *)tmp); \    } \    PIKE_CONCAT(DATA,_blocks)=0; \    PIKE_CONCAT3(free_,DATA,s)=0; \   } \    \    \