Branch: Tag:

2001-05-27

2001-05-27 16:58:58 by Henrik Grubbström (Grubba) <grubba@grubba.org>

Added the PIKE_MAPPING_KEYPAIR_LOOP option.

Rev: src/acconfig.h:1.85
Rev: src/configure.in:1.520
Rev: src/mapping.c:1.123
Rev: src/mapping.h:1.37

5:   \*/      /* -  * $Id: mapping.h,v 1.36 2001/04/07 07:38:24 hubbe Exp $ +  * $Id: mapping.h,v 1.37 2001/05/27 16:58:57 grubba Exp $    */   #ifndef MAPPING_H   #define MAPPING_H
59:   #define m_val_types(m) ((m)->data->val_types)   #define mapping_get_flags(m) ((m)->data->flags)    + #define MD_KEYPAIRS(MD, HSIZE) \ +  ( (struct keypair *)DO_ALIGN( (ptrdiff_t) (((struct mapping_data *)(MD))->hash + HSIZE), ALIGNOF(struct keypair)) )    -  + #ifndef PIKE_MAPPING_KEYPAIR_LOOP   #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) -  + #else /* PIKE_MAPPING_KEYPAIR_LOOP */ + #define NEW_MAPPING_LOOP(md) \ +  for(((k = MD_KEYPAIRS(md, md->hashsize)), e=0) DO_IF_DMALLOC( ?0:(debug_malloc_touch(md)) ) ; e<md->size; e++,k++) + /* WARNING: this should not be used */ + #define MAPPING_LOOP(m) \ +  for(((k = MD_KEYPAIRS(m->data, m->data->hashsize)), e=0) DO_IF_DMALLOC( ?0:(debug_malloc_touch(m),debug_malloc_touch(m->data)) ) ; e<m->data->size; e++,k++) + #endif /* PIKE_MAPPING_KEYPAIR_LOOP */      #define free_mapping(M) do{ struct mapping *m_=(M); debug_malloc_touch(m_); if(!sub_ref(m_)) really_free_mapping(m_); }while(0)