mapper: place strings in array

mapper: place strings in a big array.
Make it possible to configure array and map extend size.
This commit is contained in:
Wim Taymans 2017-03-23 17:57:03 +01:00
parent f613240b66
commit d9a51b5d14
10 changed files with 41 additions and 25 deletions

View file

@ -43,6 +43,8 @@ struct _PinosMap {
uint32_t free_list;
};
#define PINOS_MAP_INIT(extend) { PINOS_ARRAY_INIT(extend), 0 }
#define pinos_map_get_size(m) pinos_array_get_len (&(m)->items, PinosMapItem)
#define pinos_map_get_item(m,id) pinos_array_get_unchecked(&(m)->items,id,PinosMapItem)
#define pinos_map_item_is_free(item) ((item)->next & 0x1)
@ -53,9 +55,10 @@ struct _PinosMap {
static inline void
pinos_map_init (PinosMap *map,
size_t size)
size_t size,
size_t extend)
{
pinos_array_init (&map->items);
pinos_array_init (&map->items, extend);
pinos_array_ensure_size (&map->items, size * sizeof (PinosMapItem));
map->free_list = 0;
}