in HashRange, keep p_beg always pointing to the same bucket as p_node

master
Daniel Kolesa 2015-06-25 01:19:21 +01:00
parent a4d33c5cd7
commit 501beee633
1 changed files with 2 additions and 4 deletions

View File

@ -54,10 +54,7 @@ private:
void advance() {
while ((p_beg != p_end) && !p_beg[0])
++p_beg;
if (p_beg != p_end) {
p_node = p_beg[0];
++p_beg;
}
if (p_beg != p_end) p_node = p_beg[0];
}
public:
HashRange(): p_beg(), p_end(), p_node() {}
@ -89,6 +86,7 @@ public:
if (!p_node) return false;
p_node = p_node->next;
if (p_node) return true;
++p_beg;
advance();
return true;
}