static void map_pair_free(void* obj)
{
- mem_release(((map_pair_t*)obj)->key);
- mem_release(((map_pair_t*)obj)->value);
+ if(((map_pair_t*)obj)->key)
+ mem_release(((map_pair_t*)obj)->key);
+ if(((map_pair_t*)obj)->value)
+ mem_release(((map_pair_t*)obj)->value);
}
static map_pair_t* map_pair_new(uint32_t hash, void* key, void* value)
mem_release(lup_val);
}
+ TEST(Verify_map_lookup_should_return_NULL_if_the_associated_value_is_null)
+ {
+ map_t* map = map_new(cmp_new(NULL, cmp_int), hash_int);
+ void* lup_val = mem_box(42);
+ map_insert(map, mem_retain(lup_val), NULL);
+ CHECK(map_size(map) == 1);
+ CHECK(map_lookup(map, lup_val) == NULL);
+ mem_release(map);
+ mem_release(lup_val);
+ }
+
TEST(Verify_map_lookup_should_return_NULL_if_no_association_exists)
{
map_t* map = map_new(cmp_new(NULL, cmp_int), hash_int);