pike.git / src / block_alloc.h

version» Context lines:

pike.git/src/block_alloc.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: block_alloc.h,v 1.64 2003/03/15 16:18:32 grubba Exp $ + || $Id: block_alloc.h,v 1.65 2003/03/16 19:17:07 grubba Exp $   */      #undef PRE_INIT_BLOCK   #undef DO_PRE_INIT_BLOCK   #undef INIT_BLOCK   #undef EXIT_BLOCK   #undef BLOCK_ALLOC   #undef LOW_PTR_HASH_ALLOC   #undef PTR_HASH_ALLOC_FIXED   #undef PTR_HASH_ALLOC
pike.git/src/block_alloc.h:393:    if(!PIKE_CONCAT(DATA,_hash_table_size)) { \    DO_IF_RUN_UNLOCKED(mt_unlock(&PIKE_CONCAT(DATA,_mutex))); \    return 0; \    } \    hval %= (PIKE_HASH_T)PIKE_CONCAT(DATA,_hash_table_size); \    p=PIKE_CONCAT3(really_low_find_,DATA,_unlocked)(ptr, hval); \    DO_IF_RUN_UNLOCKED(mt_unlock(&PIKE_CONCAT(DATA,_mutex))); \    return p; \   } \    \ + static inline struct DATA * \ +  PIKE_CONCAT3(just_find_,DATA,_unlocked)(void *ptr, \ +  PIKE_HASH_T hval) \ + { \ +  struct DATA *p,**pp; \ +  p=PIKE_CONCAT(DATA,_hash_table)[hval]; \ +  if(!p || p->PTR_HASH_ALLOC_DATA == ptr) \ +  { \ +  DO_IF_RUN_UNLOCKED(mt_unlock(&PIKE_CONCAT(DATA,_mutex))); \ +  return p; \ +  } \ +  while((p=p->BLOCK_ALLOC_NEXT)) \ +  { \ +  if(p->PTR_HASH_ALLOC_DATA==ptr) return p; \ +  } \ +  return 0; \ + } \    \ -  + static struct DATA *PIKE_CONCAT(just_find_,DATA)(void *ptr) \ + { \ +  struct DATA *p; \ +  PIKE_HASH_T hval = (PIKE_HASH_T)(((char *)ptr)-(char *)0); \ +  DO_IF_RUN_UNLOCKED(mt_lock(&PIKE_CONCAT(DATA,_mutex))); \ +  if(!PIKE_CONCAT(DATA,_hash_table_size)) { \ +  DO_IF_RUN_UNLOCKED(mt_unlock(&PIKE_CONCAT(DATA,_mutex))); \ +  return 0; \ +  } \ +  hval %= (PIKE_HASH_T)PIKE_CONCAT(DATA,_hash_table_size); \ +  p=PIKE_CONCAT3(just_find_,DATA,_unlocked)(ptr, hval); \ +  DO_IF_RUN_UNLOCKED(mt_unlock(&PIKE_CONCAT(DATA,_mutex))); \ +  return p; \ + } \    \ -  +  \ +  \   struct DATA *PIKE_CONCAT(make_,DATA)(void *ptr) \   { \    struct DATA *p; \    PIKE_HASH_T hval = (PIKE_HASH_T)(((char *)ptr)-(char *)0); \    DO_IF_RUN_UNLOCKED(mt_lock(&PIKE_CONCAT(DATA,_mutex))); \    hval %= (PIKE_HASH_T)PIKE_CONCAT(DATA,_hash_table_size); \    p=PIKE_CONCAT3(make_,DATA,_unlocked)(ptr,hval); \    DO_IF_RUN_UNLOCKED(mt_unlock(&PIKE_CONCAT(DATA,_mutex))); \    return p; \   } \