summaryrefslogtreecommitdiff
path: root/db/db_iter.cc
diff options
context:
space:
mode:
Diffstat (limited to 'db/db_iter.cc')
-rw-r--r--db/db_iter.cc3
1 files changed, 2 insertions, 1 deletions
diff --git a/db/db_iter.cc b/db/db_iter.cc
index 0be18ff..8849f92 100644
--- a/db/db_iter.cc
+++ b/db/db_iter.cc
@@ -216,7 +216,6 @@ void DBIter::FindPrevUserEntry() {
ValueType value_type = kTypeDeletion;
if (iter_->Valid()) {
- SaveKey(ExtractUserKey(iter_->key()), &saved_key_);
do {
ParsedInternalKey ikey;
if (ParseKey(&ikey) && ikey.sequence <= sequence_) {
@@ -227,6 +226,7 @@ void DBIter::FindPrevUserEntry() {
}
value_type = ikey.type;
if (value_type == kTypeDeletion) {
+ saved_key_.clear();
ClearSavedValue();
} else {
Slice raw_value = iter_->value();
@@ -234,6 +234,7 @@ void DBIter::FindPrevUserEntry() {
std::string empty;
swap(empty, saved_value_);
}
+ SaveKey(ExtractUserKey(iter_->key()), &saved_key_);
saved_value_.assign(raw_value.data(), raw_value.size());
}
}