diff --git a/VersionedMap.cpp b/VersionedMap.cpp index 7f5a51d..290e79e 100644 --- a/VersionedMap.cpp +++ b/VersionedMap.cpp @@ -1237,19 +1237,19 @@ void VersionedMap::Impl::firstGeq(const weaselab::VersionedMap::Key *key, const VersionedMap::Impl *map; const weaselab::VersionedMap::Key *key; - const int64_t *version; + int64_t version; weaselab::VersionedMap::Iterator *iterator; void begin(RootSet::ThreadSafeHandle handle) { uint32_t root; if (iterator->impl != nullptr) { - root = iterator->impl->version == *version + root = iterator->impl->version == version ? iterator->impl->finger.root() - : handle.rootForVersion(*version); + : handle.rootForVersion(version); iterator->impl->~Impl(); new (iterator->impl) Iterator::Impl(); } else { - root = handle.rootForVersion(*version); + root = handle.rootForVersion(version); iterator->impl = new (safe_malloc(sizeof(Iterator::Impl))) Iterator::Impl(); } @@ -1271,7 +1271,7 @@ void VersionedMap::Impl::firstGeq(const weaselab::VersionedMap::Key *key, // No duplicates return true; } - finger.push(map->child(n, c > 0, *version), + finger.push(map->child(n, c > 0, version), c > 0); return false; } @@ -1279,13 +1279,13 @@ void VersionedMap::Impl::firstGeq(const weaselab::VersionedMap::Key *key, void end() { Finger &finger = iterator->impl->finger; if (finger.searchPathSize() > 0 && finger.backNode() == 0) { - map->move(finger, *version); + map->move(finger, version); if (finger.searchPathSize() > 0) { assert(finger.backNode() != 0); } } - iterator->impl->version = *version; + iterator->impl->version = version; iterator->impl->map = map; const Entry *prev = nullptr; @@ -1328,7 +1328,7 @@ void VersionedMap::Impl::firstGeq(const weaselab::VersionedMap::Key *key, for (int i = 0; i < count; ++i) { stepwise[i].map = this; stepwise[i].key = &key[i]; - stepwise[i].version = &version[i]; + stepwise[i].version = version[i]; stepwise[i].iterator = &iterator[i]; stepwise[i].begin(handle); nextJob[i] = i + 1;