Changes in uspace/lib/c/include/adt/int_map.h [5fe7692:aaa3f33a] in mainline
- File:
-
- 1 edited
Legend:
- Unmodified
- Added
- Removed
-
uspace/lib/c/include/adt/int_map.h
r5fe7692 raaa3f33a 49 49 #define INT_MAP_ITEM_MAGIC_VALUE 0x55667788 50 50 51 /** Generic destructor function pointer. */52 #define DTOR_T(identifier) \53 void (*identifier)(const void *)54 55 51 /** Integer to generic type map declaration. 56 52 * … … 76 72 \ 77 73 int name##_add(name##_t *, int, type *); \ 78 void name##_clear(name##_t * , DTOR_T()); \74 void name##_clear(name##_t *); \ 79 75 int name##_count(name##_t *); \ 80 void name##_destroy(name##_t * , DTOR_T()); \81 void name##_exclude(name##_t *, int , DTOR_T()); \82 void name##_exclude_index(name##_t *, int , DTOR_T()); \76 void name##_destroy(name##_t *); \ 77 void name##_exclude(name##_t *, int); \ 78 void name##_exclude_index(name##_t *, int); \ 83 79 type *name##_find(name##_t *, int); \ 84 80 int name##_update(name##_t *, int, int); \ … … 86 82 int name##_initialize(name##_t *); \ 87 83 int name##_is_valid(name##_t *); \ 88 void name##_item_destroy(name##_item_t * , DTOR_T()); \84 void name##_item_destroy(name##_item_t *); \ 89 85 int name##_item_is_valid(name##_item_t *); 90 86 … … 119 115 } \ 120 116 \ 121 void name##_clear(name##_t *map , DTOR_T(dtor)) \117 void name##_clear(name##_t *map) \ 122 118 { \ 123 119 if (name##_is_valid(map)) { \ … … 126 122 if (name##_item_is_valid(&map->items[index])) { \ 127 123 name##_item_destroy( \ 128 &map->items[index] , dtor); \124 &map->items[index]); \ 129 125 } \ 130 126 } \ … … 139 135 } \ 140 136 \ 141 void name##_destroy(name##_t *map , DTOR_T(dtor)) \137 void name##_destroy(name##_t *map) \ 142 138 { \ 143 139 if (name##_is_valid(map)) { \ … … 147 143 if (name##_item_is_valid(&map->items[index])) { \ 148 144 name##_item_destroy( \ 149 &map->items[index] , dtor); \145 &map->items[index]); \ 150 146 } \ 151 147 } \ … … 154 150 } \ 155 151 \ 156 void name##_exclude(name##_t *map, int key , DTOR_T(dtor)) \152 void name##_exclude(name##_t *map, int key) \ 157 153 { \ 158 154 if (name##_is_valid(map)) { \ … … 162 158 (map->items[index].key == key)) { \ 163 159 name##_item_destroy( \ 164 &map->items[index] , dtor); \165 } \ 166 } \ 167 } \ 168 } \ 169 \ 170 void name##_exclude_index(name##_t *map, int index , DTOR_T(dtor)) \160 &map->items[index]); \ 161 } \ 162 } \ 163 } \ 164 } \ 165 \ 166 void name##_exclude_index(name##_t *map, int index) \ 171 167 { \ 172 168 if (name##_is_valid(map) && (index >= 0) && \ 173 169 (index < map->next) && \ 174 170 name##_item_is_valid(&map->items[index])) { \ 175 name##_item_destroy(&map->items[index] , dtor); \171 name##_item_destroy(&map->items[index]); \ 176 172 } \ 177 173 } \ … … 240 236 } \ 241 237 \ 242 void name##_item_destroy(name##_item_t *item , DTOR_T(dtor)) \238 void name##_item_destroy(name##_item_t *item) \ 243 239 { \ 244 240 if (name##_item_is_valid(item)) { \ 245 241 item->magic = 0; \ 246 242 if (item->value) { \ 247 if (dtor) \ 248 free(item->value); \ 243 free(item->value); \ 249 244 item->value = NULL; \ 250 245 } \
Note:
See TracChangeset
for help on using the changeset viewer.