pike.git
/
src
/
mapping.h
version
»
Context lines:
10
20
40
80
file
none
3
pike.git/src/mapping.h:1:
/*\ ||| This file a part of Pike, and is copyright by Fredrik Hubinette ||| Pike is distributed as GPL (General Public License) ||| See the files COPYING and DISCLAIMER for more information. \*/ /*
-
* $Id: mapping.h,v 1.
19
2000/02/01
06
:
25
:
07
hubbe Exp $
+
* $Id: mapping.h,v 1.
20
2000/02/01
23
:
51
:
48
hubbe Exp $
*/ #ifndef MAPPING_H #define MAPPING_H #include "las.h" #include "block_alloc_h.h" #define MAPPING_FLAG_WEAK 1 struct keypair { struct keypair *next;
-
+
unsigned INT32 hval;
struct svalue ind, val; }; struct mapping_data { INT32 refs; INT32 valrefs; /* lock values too */ INT32 hardlinks; INT32 size, hashsize; INT32 num_keypairs;
pike.git/src/mapping.h:55:
#define NEW_MAPPING_LOOP(md) \ for((e=0) DO_IF_DMALLOC( ?0:(debug_malloc_touch(md)) ) ;e<md->hashsize;e++) for(k=md->hash[e];k;k=k->next) /* WARNING: this should not be used */ #define MAPPING_LOOP(m) \ for((e=0) DO_IF_DMALLOC( ?0:(debug_malloc_touch(m),debug_malloc_touch(m->data))) ;e<m->data->hashsize;e++) for(k=m->data->hash[e];k;k=k->next) #define free_mapping(M) do{ struct mapping *m_=(M); debug_malloc_touch(m_); if(!--m_->refs) really_free_mapping(m_); }while(0)
-
#define free_mapping_data(M) do{ struct mapping_data *md_=(M); debug_malloc_touch(md_); if(!--md_->refs) really_free_mapping_data(md_); }while(0)
+
-
+
#define free_mapping_data(M) do{ \
+
struct mapping_data *md_=(M); \
+
debug_malloc_touch(md_); \
+
if(!--md_->refs) really_free_mapping_data(md_); \
+
}while(0)
+
/* Prototypes begin here */ BLOCK_ALLOC(mapping, 511) static void check_mapping_type_fields(struct mapping *m); struct mapping *debug_allocate_mapping(int size); void really_free_mapping_data(struct mapping_data *md); struct mapping_data *copy_mapping_data(struct mapping_data *md); void mapping_fix_type_field(struct mapping *m); void low_mapping_insert(struct mapping *m, struct svalue *key,