Main Page | Class List | Directories | File List | Class Members | File Members

mapping.h File Reference

#include "svalue.h"
#include "dmalloc.h"
#include "block_alloc_h.h"

Go to the source code of this file.

Classes

struct  keypair
struct  mapping_data
struct  mapping

Defines

#define MAPPING_WEAK_INDICES   2
#define MAPPING_WEAK_VALUES   4
#define MAPPING_WEAK   6
#define MAPPING_FLAG_WEAK   6
#define map_delete(m, key)   map_delete_no_free(m, key, 0)
#define m_sizeof(m)   ((m)->data->size)
#define m_ind_types(m)   ((m)->data->ind_types)
#define m_val_types(m)   ((m)->data->val_types)
#define mapping_get_flags(m)   ((m)->data->flags)
#define mapping_data_is_shared(m)   ((m)->data->refs > 1)
#define MD_KEYPAIRS(MD, HSIZE)
#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)
#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)
#define free_mapping_data(M)
#define allocate_mapping(X)   dmalloc_touch(struct mapping *,debug_allocate_mapping(X))
#define gc_cycle_check_mapping(X, WEAK)   gc_cycle_enqueue((gc_cycle_check_cb *) real_gc_cycle_check_mapping, (X), (WEAK))

Functions

PMOD_PROTO void really_free_mapping (struct mapping *md)
 BLOCK_ALLOC_FILL_PAGES (mapping, 2)
PMOD_EXPORT struct mappingdebug_allocate_mapping (int size)
PMOD_EXPORT void really_free_mapping_data (struct mapping_data *md)
PMOD_EXPORT void do_free_mapping (struct mapping *m)
mapping_datacopy_mapping_data (struct mapping_data *md)
PMOD_EXPORT void mapping_fix_type_field (struct mapping *m)
PMOD_EXPORT void mapping_set_flags (struct mapping *m, int flags)
PMOD_EXPORT void low_mapping_insert (struct mapping *m, const struct svalue *key, const struct svalue *val, int overwrite)
PMOD_EXPORT void mapping_insert (struct mapping *m, const struct svalue *key, const struct svalue *val)
PMOD_EXPORT union anythingmapping_get_item_ptr (struct mapping *m, struct svalue *key, TYPE_T t)
PMOD_EXPORT void map_delete_no_free (struct mapping *m, struct svalue *key, struct svalue *to)
PMOD_EXPORT void check_mapping_for_destruct (struct mapping *m)
PMOD_EXPORT struct svaluelow_mapping_lookup (struct mapping *m, const struct svalue *key)
PMOD_EXPORT struct svaluelow_mapping_string_lookup (struct mapping *m, struct pike_string *p)
PMOD_EXPORT void mapping_string_insert (struct mapping *m, struct pike_string *p, struct svalue *val)
PMOD_EXPORT void mapping_string_insert_string (struct mapping *m, struct pike_string *p, struct pike_string *val)
PMOD_EXPORT struct svaluesimple_mapping_string_lookup (struct mapping *m, const char *p)
PMOD_EXPORT struct svaluemapping_mapping_lookup (struct mapping *m, struct svalue *key1, struct svalue *key2, int create)
PMOD_EXPORT struct svaluemapping_mapping_string_lookup (struct mapping *m, struct pike_string *key1, struct pike_string *key2, int create)
PMOD_EXPORT void mapping_index_no_free (struct svalue *dest, struct mapping *m, struct svalue *key)
PMOD_EXPORT struct arraymapping_indices (struct mapping *m)
PMOD_EXPORT struct arraymapping_values (struct mapping *m)
PMOD_EXPORT struct arraymapping_to_array (struct mapping *m)
PMOD_EXPORT void mapping_replace (struct mapping *m, struct svalue *from, struct svalue *to)
PMOD_EXPORT struct mappingmkmapping (struct array *ind, struct array *val)
PMOD_EXPORT struct mappingcopy_mapping (struct mapping *m)
PMOD_EXPORT struct mappingmerge_mappings (struct mapping *a, struct mapping *b, INT32 op)
PMOD_EXPORT struct mappingmerge_mapping_array_ordered (struct mapping *a, struct array *b, INT32 op)
PMOD_EXPORT struct mappingmerge_mapping_array_unordered (struct mapping *a, struct array *b, INT32 op)
PMOD_EXPORT struct mappingadd_mappings (struct svalue *argp, INT32 args)
PMOD_EXPORT int mapping_equal_p (struct mapping *a, struct mapping *b, struct processing *p)
void describe_mapping (struct mapping *m, struct processing *p, int indent)
nodemake_node_from_mapping (struct mapping *m)
PMOD_EXPORT void f_aggregate_mapping (INT32 args)
PMOD_EXPORT struct mappingcopy_mapping_recursively (struct mapping *m, struct mapping *p)
PMOD_EXPORT void mapping_search_no_free (struct svalue *to, struct mapping *m, struct svalue *look_for, struct svalue *key)
void check_mapping (struct mapping *m)
void check_all_mappings (void)
void gc_mark_mapping_as_referenced (struct mapping *m)
void real_gc_cycle_check_mapping (struct mapping *m, int weak)
unsigned gc_touch_all_mappings (void)
void gc_check_all_mappings (void)
void gc_mark_all_mappings (void)
void gc_cycle_check_all_mappings (void)
void gc_zap_ext_weak_refs_in_mappings (void)
size_t gc_free_all_unreferenced_mappings (void)
void simple_describe_mapping (struct mapping *m)
void debug_dump_mapping (struct mapping *m)
int mapping_is_constant (struct mapping *m, struct processing *p)

Variables

mappingfirst_mapping
mappinggc_internal_mapping


Define Documentation

#define allocate_mapping  )     dmalloc_touch(struct mapping *,debug_allocate_mapping(X))
 

#define free_mapping  ) 
 

Value:

do{                                             \
    struct mapping *m_=(M);                                             \
    debug_malloc_touch(m_);                                             \
    DO_IF_DEBUG (                                                       \
      DO_IF_PIKE_CLEANUP (                                              \
        if (gc_external_refs_zapped)                                    \
          gc_check_zapped (m_, PIKE_T_MAPPING, __FILE__, __LINE__)));   \
    if(!sub_ref(m_))                                                    \
      really_free_mapping(m_);                                          \
  }while(0)

#define free_mapping_data  ) 
 

Value:

do{ \
 struct mapping_data *md_=(M); \
 debug_malloc_touch(md_); \
 if(!sub_ref(md_)) really_free_mapping_data(md_); \
 /* FIXME: What about valrefs & hardlinks? */ \
}while(0)

#define gc_cycle_check_mapping X,
WEAK   )     gc_cycle_enqueue((gc_cycle_check_cb *) real_gc_cycle_check_mapping, (X), (WEAK))
 

#define m_ind_types  )     ((m)->data->ind_types)
 

#define m_sizeof  )     ((m)->data->size)
 

#define m_val_types  )     ((m)->data->val_types)
 

#define map_delete m,
key   )     map_delete_no_free(m, key, 0)
 

#define mapping_data_is_shared  )     ((m)->data->refs > 1)
 

#define MAPPING_FLAG_WEAK   6
 

#define mapping_get_flags  )     ((m)->data->flags)
 

#define MAPPING_LOOP  )     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 MAPPING_WEAK   6
 

#define MAPPING_WEAK_INDICES   2
 

#define MAPPING_WEAK_VALUES   4
 

#define MD_KEYPAIRS MD,
HSIZE   ) 
 

Value:

( (struct keypair *)                                                    \
     DO_ALIGN( PTR_TO_INT(((struct mapping_data *)(MD))->hash + HSIZE), \
               ALIGNOF(struct keypair)) )

#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)
 


Function Documentation

PMOD_EXPORT struct mapping* add_mappings struct svalue argp,
INT32  args
 

BLOCK_ALLOC_FILL_PAGES mapping  ,
 

void check_all_mappings void   ) 
 

void check_mapping struct mapping m  ) 
 

PMOD_EXPORT void check_mapping_for_destruct struct mapping m  ) 
 

PMOD_EXPORT struct mapping* copy_mapping struct mapping m  ) 
 

struct mapping_data* copy_mapping_data struct mapping_data md  ) 
 

PMOD_EXPORT struct mapping* copy_mapping_recursively struct mapping m,
struct mapping p
 

PMOD_EXPORT struct mapping* debug_allocate_mapping int  size  ) 
 

void debug_dump_mapping struct mapping m  ) 
 

void describe_mapping struct mapping m,
struct processing p,
int  indent
 

PMOD_EXPORT void do_free_mapping struct mapping m  ) 
 

PMOD_EXPORT void f_aggregate_mapping INT32  args  ) 
 

void gc_check_all_mappings void   ) 
 

void gc_cycle_check_all_mappings void   ) 
 

size_t gc_free_all_unreferenced_mappings void   ) 
 

void gc_mark_all_mappings void   ) 
 

void gc_mark_mapping_as_referenced struct mapping m  ) 
 

unsigned gc_touch_all_mappings void   ) 
 

void gc_zap_ext_weak_refs_in_mappings void   ) 
 

PMOD_EXPORT void low_mapping_insert struct mapping m,
const struct svalue key,
const struct svalue val,
int  overwrite
 

PMOD_EXPORT struct svalue* low_mapping_lookup struct mapping m,
const struct svalue key
 

PMOD_EXPORT struct svalue* low_mapping_string_lookup struct mapping m,
struct pike_string p
 

node* make_node_from_mapping struct mapping m  ) 
 

PMOD_EXPORT void map_delete_no_free struct mapping m,
struct svalue key,
struct svalue to
 

PMOD_EXPORT int mapping_equal_p struct mapping a,
struct mapping b,
struct processing p
 

PMOD_EXPORT void mapping_fix_type_field struct mapping m  ) 
 

PMOD_EXPORT union anything* mapping_get_item_ptr struct mapping m,
struct svalue key,
TYPE_T  t
 

PMOD_EXPORT void mapping_index_no_free struct svalue dest,
struct mapping m,
struct svalue key
 

PMOD_EXPORT struct array* mapping_indices struct mapping m  ) 
 

PMOD_EXPORT void mapping_insert struct mapping m,
const struct svalue key,
const struct svalue val
 

int mapping_is_constant struct mapping m,
struct processing p
 

PMOD_EXPORT struct svalue* mapping_mapping_lookup struct mapping m,
struct svalue key1,
struct svalue key2,
int  create
 

PMOD_EXPORT struct svalue* mapping_mapping_string_lookup struct mapping m,
struct pike_string key1,
struct pike_string key2,
int  create
 

PMOD_EXPORT void mapping_replace struct mapping m,
struct svalue from,
struct svalue to
 

PMOD_EXPORT void mapping_search_no_free struct svalue to,
struct mapping m,
struct svalue look_for,
struct svalue key
 

PMOD_EXPORT void mapping_set_flags struct mapping m,
int  flags
 

PMOD_EXPORT void mapping_string_insert struct mapping m,
struct pike_string p,
struct svalue val
 

PMOD_EXPORT void mapping_string_insert_string struct mapping m,
struct pike_string p,
struct pike_string val
 

PMOD_EXPORT struct array* mapping_to_array struct mapping m  ) 
 

PMOD_EXPORT struct array* mapping_values struct mapping m  ) 
 

PMOD_EXPORT struct mapping* merge_mapping_array_ordered struct mapping a,
struct array b,
INT32  op
 

PMOD_EXPORT struct mapping* merge_mapping_array_unordered struct mapping a,
struct array b,
INT32  op
 

PMOD_EXPORT struct mapping* merge_mappings struct mapping a,
struct mapping b,
INT32  op
 

PMOD_EXPORT struct mapping* mkmapping struct array ind,
struct array val
 

void real_gc_cycle_check_mapping struct mapping m,
int  weak
 

PMOD_PROTO void really_free_mapping struct mapping md  ) 
 

PMOD_EXPORT void really_free_mapping_data struct mapping_data md  ) 
 

void simple_describe_mapping struct mapping m  ) 
 

PMOD_EXPORT struct svalue* simple_mapping_string_lookup struct mapping m,
const char *  p
 


Variable Documentation

struct mapping* first_mapping
 

struct mapping* gc_internal_mapping
 


Generated on Fri Jul 22 23:44:29 2005 for Pike by  doxygen 1.3.9.1