Commit 1ce25987 authored by Tatsuhiro Tsujikawa's avatar Tatsuhiro Tsujikawa

Fixed bug that causes segmentation fault when erasing key which does not exist in map.

parent 43c0ef81
......@@ -164,6 +164,7 @@ static spdylay_map_entry* erase_rotate_recur(spdylay_map_entry *entry)
static spdylay_map_entry* erase_recur(spdylay_map_entry *entry, key_type key)
{
if(entry != NULL) {
if(key < entry->key) {
entry->left = erase_recur(entry->left, key);
} else if(key > entry->key) {
......@@ -171,6 +172,7 @@ static spdylay_map_entry* erase_recur(spdylay_map_entry *entry, key_type key)
} else {
entry = erase_rotate_recur(entry);
}
}
return entry;
}
......
......@@ -47,9 +47,11 @@ void test_spdylay_map()
spdylay_map_erase(&map, 1);
CU_ASSERT(NULL == spdylay_map_find(&map, 1));
spdylay_map_erase(&map, 1);
CU_ASSERT(NULL == spdylay_map_find(&map, 1));
CU_ASSERT(strcmp("bar", spdylay_map_find(&map, 2)) == 0);
CU_ASSERT(strcmp("shrubbery", spdylay_map_find(&map, 4)) == 0);
spdylay_map_free(&map);
}
Markdown is supported
0%
or
You are about to add 0 people to the discussion. Proceed with caution.
Finish editing this message first!
Please register or to comment