Lines Matching refs:field

73 #define HASHTABLE_INIT(table, type, field, _entries_size)		\  argument
80 (table)->entries[var].field.capacity = \
82 (table)->entries[var].field.size = 0; \
83 (table)->entries[var].field.values = malloc( \
86 assert((table)->entries[var].field.values != NULL);\
93 #define HASHTABLE_DESTROY(table, field) \ argument
97 free((table)->entries[var].field.values); \
115 #define HASHTABLE_ENTRY_FOREACH(entry, field, var) \ argument
116 for ((var) = &((entry)->field.values[0]); \
117 (var) < &((entry)->field.values[(entry)->field.size]); \
120 #define HASHTABLE_ENTRY_CLEAR(entry, field) \ argument
121 ((entry)->field.size = 0)
123 #define HASHTABLE_ENTRY_SIZE(entry, field) \ argument
124 ((entry)->field.size)
126 #define HASHTABLE_ENTRY_CAPACITY(entry, field) \ argument
127 ((entry)->field.capacity)
129 #define HASHTABLE_ENTRY_CAPACITY_INCREASE(entry, field, type) \ argument
131 (entry)->field.capacity *= 2; \
132 (entry)->field.values = realloc((entry)->field.values, \
133 (entry)->field.capacity * sizeof(type)); \
136 #define HASHTABLE_ENTRY_CAPACITY_DECREASE(entry, field, type) \ argument
138 (entry)->field.capacity /= 2; \
139 (entry)->field.values = realloc((entry)->field.values, \
140 (entry)->field.capacity * sizeof(type)); \
157 #define HASHTABLE_GENERATE(name, entry_, type, field, HASH, CMP) \ argument
167 if (the_entry->field.size == the_entry->field.capacity) \
168 HASHTABLE_ENTRY_CAPACITY_INCREASE(the_entry, field, type);\
170 memcpy(&(the_entry->field.values[the_entry->field.size++]), \
173 qsort(the_entry->field.values, the_entry->field.size, \
180 return ((type *)bsearch(key, the_entry->field.values, \
181 the_entry->field.size, sizeof(type), CMP)); \
187 return ((type *)bsearch(key, the_entry->field.values, \
188 the_entry->field.size, sizeof(type), compar)); \
195 (&the_entry->field.values[--the_entry->field.size] - del_elm) *\