File tree Expand file tree Collapse file tree 1 file changed +7
-0
lines changed
Expand file tree Collapse file tree 1 file changed +7
-0
lines changed Original file line number Diff line number Diff line change @@ -50,6 +50,10 @@ class basic_table<P>::iterator
5050 ikey_type x[(MASSTREE_MAXKEYLEN + sizeof (ikey_type) - 1 )/sizeof (ikey_type)];
5151 char s[MASSTREE_MAXKEYLEN];
5252 } keybuf_;
53+ union {
54+ ikey_type x[(MASSTREE_MAXKEYLEN + sizeof (ikey_type) - 1 )/sizeof (ikey_type)];
55+ char s[MASSTREE_MAXKEYLEN];
56+ } keybuf2_;
5357
5458 void advance (bool emit_equal = false );
5559
@@ -98,7 +102,10 @@ basic_table<P>::iterator::advance(bool emit_equal) {
98102 Str suffix;
99103 char suffixbuf[MASSTREE_MAXKEYLEN];
100104
105+ memcpy (keybuf2_.s , keybuf_.s , sizeof (keybuf_));
106+
101107 retry_root:
108+ memcpy (keybuf_.s , keybuf2_.s , sizeof (keybuf2_));
102109 ka_.unshift_all ();
103110 root = table_->root ();
104111 n = root->reach_leaf (ka_, v, *ti_);
You can’t perform that action at this time.
0 commit comments