wmem: Allow integer lookups with a null tree
wmem_tree currently returns NULL for lookups of strings with a NULL tree, but tries to dereference the tree and crashes when looking up integers with a NULL tree. Return NULL (or FALSE, for contains32()) for a tree that doesn't exist, making it easier to lazily create a tree only when inserting an entry.
This commit is contained in:
parent
799fb72e1e
commit
dd2ca75184
|
@ -501,6 +501,10 @@ wmem_tree_insert32(wmem_tree_t *tree, guint32 key, void *data)
|
|||
|
||||
gboolean wmem_tree_contains32(wmem_tree_t *tree, guint32 key)
|
||||
{
|
||||
if (!tree) {
|
||||
return FALSE;
|
||||
}
|
||||
|
||||
wmem_tree_node_t *node = tree->root;
|
||||
|
||||
while (node) {
|
||||
|
@ -521,6 +525,10 @@ gboolean wmem_tree_contains32(wmem_tree_t *tree, guint32 key)
|
|||
void *
|
||||
wmem_tree_lookup32(wmem_tree_t *tree, guint32 key)
|
||||
{
|
||||
if (!tree) {
|
||||
return NULL;
|
||||
}
|
||||
|
||||
wmem_tree_node_t *node = tree->root;
|
||||
|
||||
while (node) {
|
||||
|
@ -541,6 +549,10 @@ wmem_tree_lookup32(wmem_tree_t *tree, guint32 key)
|
|||
void *
|
||||
wmem_tree_lookup32_le(wmem_tree_t *tree, guint32 key)
|
||||
{
|
||||
if (!tree) {
|
||||
return NULL;
|
||||
}
|
||||
|
||||
wmem_tree_node_t *node = tree->root;
|
||||
|
||||
while (node) {
|
||||
|
|
Loading…
Reference in New Issue