cb2256 | 1995-10-11 | Fredrik Hübinette (Hubbe) | |
|
5267b7 | 1995-08-09 | Fredrik Hübinette (Hubbe) | | #ifndef MAPPING_H
#define MAPPING_H
#include "las.h"
|
515b6c | 1996-06-09 | Fredrik Hübinette (Hubbe) | | #ifndef OLD_MAPPINGS
#ifndef FLAT_MAPPINGS
struct mapping
{
INT32 refs, size, hashsize;
TYPE_FIELD ind_types, val_types;
struct mapping *next, *prev;
struct keypair **hash;
struct keypair *free_list;
};
#else
struct mapping
{
INT32 refs, size, hashsize;
TYPE_FIELD ind_types, val_types;
struct mapping *next, *prev;
struct keypair *hash;
};
#endif
#define m_sizeof(m) ((m)->size)
#define m_ind_types(m) ((m)->ind_types)
#define m_val_types(m) ((m)->val_types)
#else
|
5267b7 | 1995-08-09 | Fredrik Hübinette (Hubbe) | | struct mapping
{
INT32 refs;
struct mapping *next,*prev;
struct array *ind;
struct array *val;
};
|
515b6c | 1996-06-09 | Fredrik Hübinette (Hubbe) | | #define m_sizeof(m) (m->ind->size)
#define m_ind_types(m) ((m)->ind->type_field)
#define m_val_types(m) ((m)->val->type_field)
#endif
|
5267b7 | 1995-08-09 | Fredrik Hübinette (Hubbe) | | #define free_mapping(M) do{ struct mapping *m_=(M); if(!--m_->refs) really_free_mapping(m_); }while(0)
|
515b6c | 1996-06-09 | Fredrik Hübinette (Hubbe) | | struct keypair;
unsigned INT32 hash_svalue(struct svalue *s);
|
5267b7 | 1995-08-09 | Fredrik Hübinette (Hubbe) | | void really_free_mapping(struct mapping *m);
|
515b6c | 1996-06-09 | Fredrik Hübinette (Hubbe) | | void mapping_fix_type_field(struct mapping *m);
|
5267b7 | 1995-08-09 | Fredrik Hübinette (Hubbe) | | void mapping_insert(struct mapping *m,
|
515b6c | 1996-06-09 | Fredrik Hübinette (Hubbe) | | struct svalue *key,
struct svalue *val);
|
5267b7 | 1995-08-09 | Fredrik Hübinette (Hubbe) | | union anything *mapping_get_item_ptr(struct mapping *m,
|
515b6c | 1996-06-09 | Fredrik Hübinette (Hubbe) | | struct svalue *key,
|
5267b7 | 1995-08-09 | Fredrik Hübinette (Hubbe) | | TYPE_T t);
|
515b6c | 1996-06-09 | Fredrik Hübinette (Hubbe) | | void map_delete(struct mapping *m,
struct svalue *key);
void check_mapping_for_destruct(struct mapping *m);
void mapping_index_no_free(struct svalue *dest,
struct mapping *m,
struct svalue *key);
struct array *mapping_indices(struct mapping *m);
struct array *mapping_values(struct mapping *m);
void mapping_replace(struct mapping *m,struct svalue *from, struct svalue *to);
struct mapping *mkmapping(struct array *ind, struct array *val);
struct mapping *copy_mapping(struct mapping *m);
struct mapping *merge_mappings(struct mapping *a, struct mapping *b, INT32 op);
struct mapping *add_mappings(struct svalue *argp, INT32 args);
|
5267b7 | 1995-08-09 | Fredrik Hübinette (Hubbe) | | int mapping_equal_p(struct mapping *a, struct mapping *b, struct processing *p);
void describe_mapping(struct mapping *m,struct processing *p,int indent);
node * make_node_from_mapping(struct mapping *m);
void f_m_delete(INT32 args);
void f_aggregate_mapping(INT32 args);
struct mapping *copy_mapping_recursively(struct mapping *m,
struct processing *p);
void mapping_search_no_free(struct svalue *to,
struct mapping *m,
struct svalue *look_for,
struct svalue *start);
|
624d09 | 1996-02-24 | Fredrik Hübinette (Hubbe) | | void check_mapping(struct mapping *m);
void check_all_mappings();
|
c94c37 | 1996-03-28 | Fredrik Hübinette (Hubbe) | | void gc_mark_mapping_as_referenced(struct mapping *m);
void gc_check_all_mappings();
void gc_mark_all_mappings();
void gc_free_all_unreferenced_mappings();
|
5267b7 | 1995-08-09 | Fredrik Hübinette (Hubbe) | |
#endif
|