Fix a bug where a range end's version wasn't updated
This commit is contained in:
@@ -967,6 +967,10 @@ struct __attribute__((__visibility__("hidden"))) VersionedMap::Impl {
|
|||||||
/*endRange*/ true, iter);
|
/*endRange*/ true, iter);
|
||||||
} else if (engulfRight) {
|
} else if (engulfRight) {
|
||||||
insert({m.param1, m.param1Len}, {}, /*endRange*/ false, iter);
|
insert({m.param1, m.param1Len}, {}, /*endRange*/ false, iter);
|
||||||
|
move<std::memory_order_relaxed, true>(iter, latestVersion);
|
||||||
|
assert(iter.searchPathSize() > 0 &&
|
||||||
|
mm.base[iter.backNode()].entry == next);
|
||||||
|
insert({next->getKey(), next->keyLen}, {}, /*endRange*/ true, iter);
|
||||||
} else {
|
} else {
|
||||||
insert({m.param1, m.param1Len}, {{nullptr, -1}}, /*endRange*/ false,
|
insert({m.param1, m.param1Len}, {{nullptr, -1}}, /*endRange*/ false,
|
||||||
iter);
|
iter);
|
||||||
|
Reference in New Issue
Block a user