From 0cde283c04d11a32e4a210a55ccee2d12b06f0ae Mon Sep 17 00:00:00 2001 From: =?UTF-8?q?Fredrik=20H=C3=BCbinette=20=28Hubbe=29?= <hubbe@hubbe.net> Date: Thu, 14 May 1998 14:45:22 -0700 Subject: [PATCH] fixed to export the definition of 'struct keypair' Rev: src/mapping.c:1.33 Rev: src/mapping.h:1.12 --- src/mapping.c | 37 +++++++++++++++---------------------- src/mapping.h | 10 ++++++++-- 2 files changed, 23 insertions(+), 24 deletions(-) diff --git a/src/mapping.c b/src/mapping.c index 27ad9109a9..0a83b30235 100644 --- a/src/mapping.c +++ b/src/mapping.c @@ -4,7 +4,7 @@ ||| See the files COPYING and DISCLAIMER for more information. \*/ #include "global.h" -RCSID("$Id: mapping.c,v 1.32 1998/05/13 00:24:29 hubbe Exp $"); +RCSID("$Id: mapping.c,v 1.33 1998/05/14 21:45:21 hubbe Exp $"); #include "main.h" #include "object.h" #include "mapping.h" @@ -23,13 +23,6 @@ RCSID("$Id: mapping.c,v 1.32 1998/05/13 00:24:29 hubbe Exp $"); #define AVG_LINK_LENGTH 4 #define MIN_LINK_LENGTH 1 #define MAP_SLOTS(X) ((X)?((X)+((X)>>4)+8):0) -#define LOOP(m) for(e=0;e<m->hashsize;e++) for(k=m->hash[e];k;k=k->next) - -struct keypair -{ - struct keypair *next; - struct svalue ind, val; -}; struct mapping *first_mapping; @@ -46,7 +39,7 @@ static void check_mapping_type_fields(struct mapping *m) ind_types=val_types=0; - LOOP(m) + MAPPING_LOOP(m) { val_types |= 1 << k->val.type; ind_types |= 1 << k->ind.type; @@ -137,7 +130,7 @@ void really_free_mapping(struct mapping *m) fatal("really free mapping on mapping with nonzero refs.\n"); #endif - LOOP(m) + MAPPING_LOOP(m) { free_svalue(& k->val); free_svalue(& k->ind); @@ -229,7 +222,7 @@ void mapping_fix_type_field(struct mapping *m) val_types = ind_types = 0; - LOOP(m) + MAPPING_LOOP(m) { val_types |= 1 << k->val.type; ind_types |= 1 << k->ind.type; @@ -543,7 +536,7 @@ struct array *mapping_indices(struct mapping *m) a=allocate_array(m->size); s=ITEM(a); - LOOP(m) assign_svalue(s++, & k->ind); + MAPPING_LOOP(m) assign_svalue(s++, & k->ind); a->type_field = m->ind_types; @@ -564,7 +557,7 @@ struct array *mapping_values(struct mapping *m) a=allocate_array(m->size); s=ITEM(a); - LOOP(m) assign_svalue(s++, & k->val); + MAPPING_LOOP(m) assign_svalue(s++, & k->val); a->type_field = m->val_types; @@ -583,7 +576,7 @@ struct array *mapping_to_array(struct mapping *m) struct svalue *s; a=allocate_array(m->size); s=ITEM(a); - LOOP(m) + MAPPING_LOOP(m) { struct array *b=allocate_array(2); assign_svalue(b->item+0, & k->ind); @@ -602,7 +595,7 @@ void mapping_replace(struct mapping *m,struct svalue *from, struct svalue *to) INT32 e; struct keypair *k; - LOOP(m) + MAPPING_LOOP(m) if(is_eq(& k->val, from)) assign_svalue(& k->val, to); @@ -641,7 +634,7 @@ struct mapping *copy_mapping(struct mapping *m) n=allocate_mapping(MAP_SLOTS(m->size)); - LOOP(m) mapping_insert(n, &k->ind, &k->val); + MAPPING_LOOP(m) mapping_insert(n, &k->ind, &k->val); return n; } @@ -702,7 +695,7 @@ struct mapping *add_mappings(struct svalue *argp, INT32 args) for(e=d=0;d<args;d++) e+=argp[d].u.mapping->size; ret=allocate_mapping(MAP_SLOTS(e)); for(d=0;d<args;d++) - LOOP(argp[d].u.mapping) + MAPPING_LOOP(argp[d].u.mapping) mapping_insert(ret, &k->ind, &k->val); return ret; } @@ -727,7 +720,7 @@ int mapping_equal_p(struct mapping *a, struct mapping *b, struct processing *p) check_mapping_for_destruct(a); check_mapping_for_destruct(b); - LOOP(a) + MAPPING_LOOP(a) { struct svalue *s; if((s=low_mapping_lookup(b, & k->ind))) @@ -770,7 +763,7 @@ void describe_mapping(struct mapping *m,struct processing *p,int indent) q=0; - LOOP(m) + MAPPING_LOOP(m) { if(q) { @@ -874,7 +867,7 @@ struct mapping *copy_mapping_recursively(struct mapping *m, check_stack(2); - LOOP(m) + MAPPING_LOOP(m) { copy_svalues_recursively_no_free(sp,&k->ind, 1, p); sp++; @@ -993,7 +986,7 @@ void gc_mark_mapping_as_referenced(struct mapping *m) { if((m->ind_types | m->val_types) & BIT_COMPLEX) { - LOOP(m) + MAPPING_LOOP(m) { /* We do not want to count this key:index pair if * the index is a destructed object or function @@ -1019,7 +1012,7 @@ void gc_check_all_mappings(void) { if((m->ind_types | m->val_types) & BIT_COMPLEX) { - LOOP(m) + MAPPING_LOOP(m) { /* We do not want to count this key:index pair if * the index is a destructed object or function diff --git a/src/mapping.h b/src/mapping.h index cd6b222fc6..1bbda5a90c 100644 --- a/src/mapping.h +++ b/src/mapping.h @@ -5,13 +5,19 @@ \*/ /* - * $Id: mapping.h,v 1.11 1998/04/24 00:01:32 hubbe Exp $ + * $Id: mapping.h,v 1.12 1998/05/14 21:45:22 hubbe Exp $ */ #ifndef MAPPING_H #define MAPPING_H #include "las.h" +struct keypair +{ + struct keypair *next; + struct svalue ind, val; +}; + struct mapping { INT32 refs, size, hashsize; @@ -26,11 +32,11 @@ extern struct mapping *first_mapping; #define m_sizeof(m) ((m)->size) #define m_ind_types(m) ((m)->ind_types) #define m_val_types(m) ((m)->val_types) +#define MAPPING_LOOP(m) for(e=0;e<m->hashsize;e++) for(k=m->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) /* Prototypes begin here */ -struct keypair; struct mapping *allocate_mapping(int size); void really_free_mapping(struct mapping *m); void mapping_fix_type_field(struct mapping *m); -- GitLab