Lines Matching refs:DICTP
55 #define DICT_INIT(DICTP, KEY_TYPE, VALUE_TYPE, HASH1, EQ, HASH2) \ argument
60 dict_init(DICTP, sizeof(KEY_TYPE), sizeof(VALUE_TYPE), \
121 #define DICT_INSERT(DICTP, KEYP, VALUEP) \ argument
122 (assert((DICTP)->keys.elt_size == sizeof(*(KEYP))), \
123 assert((DICTP)->values.elt_size == sizeof(*(VALUEP))), \
124 dict_insert((DICTP), (KEYP), (VALUEP)))
132 #define DICT_HAS_KEY(DICTP, KEYP) \ argument
133 (assert((DICTP)->keys.elt_size == sizeof(*(KEYP))), \
134 dict_find((DICTP), (KEYP)) != NULL)
139 #define DICT_FIND_REF(DICTP, KEYP, VALUE_TYPE) \ argument
140 (assert((DICTP)->keys.elt_size == sizeof(*(KEYP))), \
141 (VALUE_TYPE *)dict_find((DICTP), (KEYP)))
146 #define DICT_FIND_VAL(DICTP, KEYP, VAR) \ argument
148 assert((DICTP)->keys.elt_size == sizeof(*(KEYP))); \
149 assert((DICTP)->values.elt_size == sizeof((VAR))); \
150 void *_ptr = dict_find((DICTP), (KEYP)); \
152 memcpy((VAR), _ptr, (DICTP)->values.elt_size); \
167 #define DICT_ERASE(DICTP, KEYP, VALUE_TYPE, DTOR_KEY, DTOR_VALUE, DATA) \ argument
169 struct dict *_d = (DICTP); \
189 #define DICT_DESTROY(DICTP, KEY_TYPE, VALUE_TYPE, DTOR_KEY, DTOR_VALUE, DATA) \ argument
191 struct dict *_d = (DICTP); \
213 #define DICT_EACH(DICTP, KEY_TYPE, VALUE_TYPE, START_AFTER, CB, DATA) \ argument
216 assert((DICTP)->keys.elt_size == sizeof(KEY_TYPE)); \
217 assert((DICTP)->values.elt_size == sizeof(VALUE_TYPE)); \
222 (KEY_TYPE *)dict_each((DICTP), _start_after, \