forked from OctaForge/libostd
in HashRange, keep p_beg always pointing to the same bucket as p_node
parent
a4d33c5cd7
commit
501beee633
|
@ -54,10 +54,7 @@ private:
|
||||||
void advance() {
|
void advance() {
|
||||||
while ((p_beg != p_end) && !p_beg[0])
|
while ((p_beg != p_end) && !p_beg[0])
|
||||||
++p_beg;
|
++p_beg;
|
||||||
if (p_beg != p_end) {
|
if (p_beg != p_end) p_node = p_beg[0];
|
||||||
p_node = p_beg[0];
|
|
||||||
++p_beg;
|
|
||||||
}
|
|
||||||
}
|
}
|
||||||
public:
|
public:
|
||||||
HashRange(): p_beg(), p_end(), p_node() {}
|
HashRange(): p_beg(), p_end(), p_node() {}
|
||||||
|
@ -89,6 +86,7 @@ public:
|
||||||
if (!p_node) return false;
|
if (!p_node) return false;
|
||||||
p_node = p_node->next;
|
p_node = p_node->next;
|
||||||
if (p_node) return true;
|
if (p_node) return true;
|
||||||
|
++p_beg;
|
||||||
advance();
|
advance();
|
||||||
return true;
|
return true;
|
||||||
}
|
}
|
||||||
|
|
Loading…
Reference in New Issue