Lines Matching refs:field

75 #define HASHTABLE_INIT(table, type, field, _entries_size)		\  argument
82 (table)->entries[var].field.capacity = \
84 (table)->entries[var].field.size = 0; \
85 (table)->entries[var].field.values = malloc( \
88 assert((table)->entries[var].field.values != NULL);\
95 #define HASHTABLE_DESTROY(table, field) \ argument
99 free((table)->entries[var].field.values); \
117 #define HASHTABLE_ENTRY_FOREACH(entry, field, var) \ argument
118 for ((var) = &((entry)->field.values[0]); \
119 (var) < &((entry)->field.values[(entry)->field.size]); \
122 #define HASHTABLE_ENTRY_CLEAR(entry, field) \ argument
123 ((entry)->field.size = 0)
125 #define HASHTABLE_ENTRY_SIZE(entry, field) \ argument
126 ((entry)->field.size)
128 #define HASHTABLE_ENTRY_CAPACITY(entry, field) \ argument
129 ((entry)->field.capacity)
131 #define HASHTABLE_ENTRY_CAPACITY_INCREASE(entry, field, type) \ argument
133 (entry)->field.capacity *= 2; \
134 (entry)->field.values = realloc((entry)->field.values, \
135 (entry)->field.capacity * sizeof(type)); \
138 #define HASHTABLE_ENTRY_CAPACITY_DECREASE(entry, field, type) \ argument
140 (entry)->field.capacity /= 2; \
141 (entry)->field.values = realloc((entry)->field.values, \
142 (entry)->field.capacity * sizeof(type)); \
159 #define HASHTABLE_GENERATE(name, entry_, type, field, HASH, CMP) \ argument
169 if (the_entry->field.size == the_entry->field.capacity) \
170 HASHTABLE_ENTRY_CAPACITY_INCREASE(the_entry, field, type);\
172 memcpy(&(the_entry->field.values[the_entry->field.size++]), \
175 qsort(the_entry->field.values, the_entry->field.size, \
182 return ((type *)bsearch(key, the_entry->field.values, \
183 the_entry->field.size, sizeof(type), CMP)); \
189 return ((type *)bsearch(key, the_entry->field.values, \
190 the_entry->field.size, sizeof(type), compar)); \
197 (&the_entry->field.values[--the_entry->field.size] - del_elm) *\