提交 72cdef8d 创建 作者: David Benjamin's avatar David Benjamin

Replace radix::search with a for loop

Conceivably it could use descend's replacement, but it's already pretty simple.
上级 aa2ba334
...@@ -82,13 +82,13 @@ radix::~radix() ...@@ -82,13 +82,13 @@ radix::~radix()
radix_elem* radix_elem*
radix::search(u64 key) radix::search(u64 key)
{ {
radix_elem *result = 0;
scoped_gc_epoch gc; scoped_gc_epoch gc;
descend(key >> shift_, &root_, radix_levels-1, [&result](radix_ptr *v) { radix_entry cur = root_.load();
result = v->load().elem(); for (u32 level = radix_levels-1; level >= 0 && !cur.is_elem(); level--) {
}, false); cur = cur.node()->child[index(key >> shift_, level)].load();
dprintf("%p: search(%lu) -> %p\n", this, key >> shift_, result); }
return result; dprintf("%p: search(%lu) -> %p\n", this, key >> shift_, cur.elem());
return cur.elem();
} }
radix_range radix_range
......
您添加了 0 到此讨论。请谨慎行事。
请先完成此评论的编辑!
注册 或者 后发表评论