diff --git a/src/include/lib/radixtree.h b/src/include/lib/radixtree.h index 542daae6d0..c2ee7f4fa1 100644 --- a/src/include/lib/radixtree.h +++ b/src/include/lib/radixtree.h @@ -1618,7 +1618,7 @@ RT_SET(RT_RADIX_TREE *tree, uint64 key, RT_VALUE_TYPE value) /* Descend the tree until we reach a leaf node */ while (shift >= 0) { - RT_PTR_ALLOC new_child; + RT_PTR_ALLOC new_child = RT_INVALID_PTR_ALLOC; child = RT_PTR_GET_LOCAL(tree, stored_child); @@ -1678,7 +1678,7 @@ RT_SEARCH(RT_RADIX_TREE *tree, uint64 key, RT_VALUE_TYPE *value_p) /* Descend the tree until a leaf node */ while (shift >= 0) { - RT_PTR_ALLOC child; + RT_PTR_ALLOC child = RT_INVALID_PTR_ALLOC; if (RT_NODE_IS_LEAF(node)) break; @@ -1742,7 +1742,7 @@ RT_DELETE(RT_RADIX_TREE *tree, uint64 key) level = -1; while (shift > 0) { - RT_PTR_ALLOC child; + RT_PTR_ALLOC child = RT_INVALID_PTR_ALLOC; /* Push the current node to the stack */ stack[++level] = allocnode; diff --git a/src/include/lib/radixtree_search_impl.h b/src/include/lib/radixtree_search_impl.h index a319c46c39..c8410e9a5c 100644 --- a/src/include/lib/radixtree_search_impl.h +++ b/src/include/lib/radixtree_search_impl.h @@ -15,13 +15,11 @@ uint8 chunk = RT_GET_KEY_CHUNK(key, node->shift); #ifdef RT_NODE_LEVEL_LEAF - RT_VALUE_TYPE value; - MemSet(&value, 0, sizeof(RT_VALUE_TYPE)); - + Assert(value_p != NULL); Assert(RT_NODE_IS_LEAF(node)); #else #ifndef RT_ACTION_UPDATE - RT_PTR_ALLOC child = RT_INVALID_PTR_ALLOC; + Assert(child_p != NULL); #endif Assert(!RT_NODE_IS_LEAF(node)); #endif @@ -41,9 +39,9 @@ return false; #ifdef RT_NODE_LEVEL_LEAF - value = n3->values[idx]; + *value_p = n3->values[idx]; #else - child = n3->children[idx]; + *child_p = n3->children[idx]; #endif #endif /* RT_ACTION_UPDATE */ break; @@ -61,9 +59,9 @@ return false; #ifdef RT_NODE_LEVEL_LEAF - value = n32->values[idx]; + *value_p = n32->values[idx]; #else - child = n32->children[idx]; + *child_p = n32->children[idx]; #endif #endif /* RT_ACTION_UPDATE */ break; @@ -81,9 +79,9 @@ return false; #ifdef RT_NODE_LEVEL_LEAF - value = RT_NODE_LEAF_125_GET_VALUE(n125, chunk); + *value_p = RT_NODE_LEAF_125_GET_VALUE(n125, chunk); #else - child = RT_NODE_INNER_125_GET_CHILD(n125, chunk); + *child_p = RT_NODE_INNER_125_GET_CHILD(n125, chunk); #endif #endif /* RT_ACTION_UPDATE */ break; @@ -103,9 +101,9 @@ return false; #ifdef RT_NODE_LEVEL_LEAF - value = RT_NODE_LEAF_256_GET_VALUE(n256, chunk); + *value_p = RT_NODE_LEAF_256_GET_VALUE(n256, chunk); #else - child = RT_NODE_INNER_256_GET_CHILD(n256, chunk); + *child_p = RT_NODE_INNER_256_GET_CHILD(n256, chunk); #endif #endif /* RT_ACTION_UPDATE */ break; @@ -115,14 +113,6 @@ #ifdef RT_ACTION_UPDATE return; #else -#ifdef RT_NODE_LEVEL_LEAF - Assert(value_p != NULL); - *value_p = value; -#else - Assert(child_p != NULL); - *child_p = child; -#endif - return true; #endif /* RT_ACTION_UPDATE */