|
Classes |
struct | msnode_ind |
struct | msnode_indval |
union | msnode |
struct | multiset_data |
struct | multiset |
Defines |
#define | MULTISET_FLAG_MARKER 0x1000 |
#define | MULTISET_FLAG_MASK (RB_FLAG_MASK | MULTISET_FLAG_MARKER) |
#define | MULTISET_WEAK_INDICES 2 |
#define | MULTISET_WEAK_VALUES 4 |
#define | MULTISET_WEAK 6 |
#define | MULTISET_INDVAL 8 |
#define | msnode_check(X) ((union msnode *) (X)) |
#define | MULTISET_STEP_FUNC(FUNC, NODE) ((union msnode *) FUNC ((struct rb_node_hdr *) msnode_check (NODE))) |
#define | low_multiset_first(MSD) MULTISET_STEP_FUNC (rb_first, (MSD)->root) |
#define | low_multiset_last(MSD) MULTISET_STEP_FUNC (rb_last, (MSD)->root) |
#define | low_multiset_prev(NODE) MULTISET_STEP_FUNC (rb_prev, NODE) |
#define | low_multiset_next(NODE) MULTISET_STEP_FUNC (rb_next, NODE) |
#define | low_multiset_get_nth(MSD, N) ((union msnode *) rb_get_nth ((struct rb_node_hdr *) (MSD)->root, (N))) |
#define | low_assign_multiset_index_no_free(TO, NODE) |
#define | low_assign_multiset_index(TO, NODE) |
#define | low_push_multiset_index(NODE) low_assign_multiset_index_no_free (Pike_sp++, (NODE)) |
#define | low_use_multiset_index(NODE, VAR) |
#define | low_get_multiset_value(MSD, NODE) ((MSD)->flags & MULTISET_INDVAL ? &(NODE)->iv.val : &svalue_int_one) |
#define | low_set_multiset_value(MSD, NODE, VAL) |
#define | OFF2MSNODE(MSD, OFFSET) |
#define | MSNODE2OFF(MSD, NODE) |
#define | l_sizeof(L) multiset_sizeof (L) |
#define | multiset_ind_types(L) ((L)->msd->ind_types) |
#define | multiset_val_types(L) ((L)->msd->val_types) |
#define | multiset_get_flags(L) ((L)->msd->flags) |
#define | multiset_get_cmp_less(L) (&(L)->msd->cmp_less) |
#define | multiset_indval(L) ((L)->msd->flags & MULTISET_INDVAL) |
#define | multiset_is_empty(L) (!(L)->msd->root) |
#define | free_multiset(L) |
#define | check_msnode(L, NODEPOS, ALLOW_DELETED) |
#define | access_msnode(L, NODEPOS) OFF2MSNODE ((L)->msd, (NODEPOS)) |
#define | add_msnode_ref(L) do {(L)->node_refs++;} while (0) |
#define | sub_msnode_ref(L) |
#define | assign_multiset_index_no_free(TO, L, NODEPOS) |
#define | assign_multiset_index(TO, L, NODEPOS) |
#define | push_multiset_index(L, NODEPOS) assign_multiset_index_no_free (Pike_sp++, (L), (NODEPOS)) |
#define | use_multiset_index(L, NODEPOS, VAR) |
#define | get_multiset_value(L, NODEPOS) |
#define | set_multiset_value(L, NODEPOS, VAL) |
#define | assign_multiset_value_no_free(TO, L, NODEPOS) assign_svalue_no_free (TO, get_multiset_value (L, NODEPOS)) |
#define | assign_multiset_value(TO, L, NODEPOS) assign_svalue (TO, get_multiset_value (L, NODEPOS)) |
#define | push_multiset_value(L, NODEPOS) push_svalue (get_multiset_value (L, NODEPOS)) |
#define | allocate_multiset(allocsize, flags, cmp_less) |
#define | gc_cycle_check_multiset(X, WEAK) gc_cycle_enqueue ((gc_cycle_check_cb *) real_gc_cycle_check_multiset, (X), (WEAK)) |
Functions |
PMOD_EXPORT void | multiset_clear_node_refs (struct multiset *l) |
msnode * | low_multiset_find_eq (struct multiset *l, struct svalue *key) |
PMOD_EXPORT INT32 | multiset_sizeof (struct multiset *l) |
PMOD_PROTO void | really_free_multiset (struct multiset *l) |
| BLOCK_ALLOC_FILL_PAGES (multiset, 2) |
PMOD_EXPORT ptrdiff_t | multiset_find_eq (struct multiset *l, struct svalue *key) |
PMOD_EXPORT ptrdiff_t | multiset_find_lt (struct multiset *l, struct svalue *key) |
PMOD_EXPORT ptrdiff_t | multiset_find_gt (struct multiset *l, struct svalue *key) |
PMOD_EXPORT ptrdiff_t | multiset_find_le (struct multiset *l, struct svalue *key) |
PMOD_EXPORT ptrdiff_t | multiset_find_ge (struct multiset *l, struct svalue *key) |
PMOD_EXPORT ptrdiff_t | multiset_first (struct multiset *l) |
PMOD_EXPORT ptrdiff_t | multiset_last (struct multiset *l) |
PMOD_EXPORT ptrdiff_t | multiset_prev (struct multiset *l, ptrdiff_t nodepos) |
PMOD_EXPORT ptrdiff_t | multiset_next (struct multiset *l, ptrdiff_t nodepos) |
PMOD_EXPORT void | do_sub_msnode_ref (struct multiset *l) |
PMOD_EXPORT int | msnode_is_deleted (struct multiset *l, ptrdiff_t nodepos) |
PMOD_EXPORT struct multiset * | real_allocate_multiset (int allocsize, int flags, struct svalue *cmp_less) |
PMOD_EXPORT void | do_free_multiset (struct multiset *l) |
void | multiset_fix_type_field (struct multiset *l) |
PMOD_EXPORT void | multiset_set_flags (struct multiset *l, int flags) |
PMOD_EXPORT void | multiset_set_cmp_less (struct multiset *l, struct svalue *cmp_less) |
PMOD_EXPORT struct multiset * | mkmultiset (struct array *indices) |
PMOD_EXPORT struct multiset * | mkmultiset_2 (struct array *indices, struct array *values, struct svalue *cmp_less) |
PMOD_EXPORT void | multiset_insert (struct multiset *l, struct svalue *ind) |
PMOD_EXPORT ptrdiff_t | multiset_insert_2 (struct multiset *l, struct svalue *ind, struct svalue *val, int replace) |
PMOD_EXPORT ptrdiff_t | multiset_add (struct multiset *l, struct svalue *ind, struct svalue *val) |
PMOD_EXPORT ptrdiff_t | multiset_add_after (struct multiset *l, ptrdiff_t node, struct svalue *ind, struct svalue *val) |
PMOD_EXPORT int | multiset_delete (struct multiset *l, struct svalue *ind) |
PMOD_EXPORT int | multiset_delete_2 (struct multiset *l, struct svalue *ind, struct svalue *removed_val) |
PMOD_EXPORT void | multiset_delete_node (struct multiset *l, ptrdiff_t node) |
PMOD_EXPORT int | multiset_member (struct multiset *l, struct svalue *key) |
PMOD_EXPORT struct svalue * | multiset_lookup (struct multiset *l, struct svalue *key) |
array * | multiset_indices (struct multiset *l) |
array * | multiset_values (struct multiset *l) |
array * | multiset_range_indices (struct multiset *l, ptrdiff_t beg, ptrdiff_t end) |
array * | multiset_range_values (struct multiset *l, ptrdiff_t beg, ptrdiff_t end) |
PMOD_EXPORT void | check_multiset_for_destruct (struct multiset *l) |
PMOD_EXPORT struct multiset * | copy_multiset (struct multiset *l) |
PMOD_EXPORT struct multiset * | merge_multisets (struct multiset *a, struct multiset *b, int operation) |
PMOD_EXPORT struct multiset * | add_multisets (struct svalue *argp, int count) |
PMOD_EXPORT int | multiset_equal_p (struct multiset *a, struct multiset *b, struct processing *p) |
void | describe_multiset (struct multiset *l, struct processing *p, int indent) |
void | simple_describe_multiset (struct multiset *l) |
int | multiset_is_constant (struct multiset *l, struct processing *p) |
node * | make_node_from_multiset (struct multiset *l) |
PMOD_EXPORT void | f_aggregate_multiset (int args) |
multiset * | copy_multiset_recursively (struct multiset *l, struct mapping *p) |
PMOD_EXPORT ptrdiff_t | multiset_get_nth (struct multiset *l, size_t n) |
unsigned | gc_touch_all_multisets (void) |
void | gc_check_all_multisets (void) |
void | gc_mark_multiset_as_referenced (struct multiset *l) |
void | gc_mark_all_multisets (void) |
void | gc_zap_ext_weak_refs_in_multisets (void) |
void | real_gc_cycle_check_multiset (struct multiset *l, int weak) |
void | gc_cycle_check_all_multisets (void) |
size_t | gc_free_all_unreferenced_multisets (void) |
void | count_memory_in_multisets (INT32 *num, INT32 *size) |
void | init_multiset (void) |
void | exit_multiset (void) |
void | test_multiset (void) |
Variables |
multiset * | first_multiset |
multiset * | gc_internal_multiset |
PMOD_EXPORT struct svalue | svalue_int_one |