diff --git a/day_5.c b/day_5.c index 45b98c2..8069bef 100644 --- a/day_5.c +++ b/day_5.c @@ -9,12 +9,15 @@ int main() { Map *map = map_create(); + map_put(map, 0x0, 1); + map_put(map, 0x10, 2); + for(int i = 0; i < 10000; i++) { map_put(map, i, i + 1); } - for(int i = 0; i < 10000; i++) { - assert(map_get(map, i) == i + 1); - } +// for(int i = 0; i < 10000; i++) { +// assert(map_get(map, i) == i + 1); +// } map_free(map); } diff --git a/map.c b/map.c index c0964c6..d7adb21 100644 --- a/map.c +++ b/map.c @@ -95,10 +95,12 @@ static __inline uint32_t map_index(Map *map, int key) { __inline void map_set_node(Map *map, MapNode node) { MapNode *current = &map->nodes[map_index(map, node.key)]; if(current->next == NULL || current->key == node.key) { - if(current->next == NULL) map->size++; current->key = node.key; current->value = node.value; - current->next = (MapNode*) UINTPTR_MAX; + if(current->next == NULL) { + map->size++; + current->next = (MapNode*) UINTPTR_MAX; + } } else { while((size_t) current->next != UINTPTR_MAX) { current = current->next;