summaryrefslogtreecommitdiffstats
path: root/common/storage_lmdb.cpp
diff options
context:
space:
mode:
Diffstat (limited to 'common/storage_lmdb.cpp')
-rw-r--r--common/storage_lmdb.cpp6
1 files changed, 4 insertions, 2 deletions
diff --git a/common/storage_lmdb.cpp b/common/storage_lmdb.cpp
index f0a5bc0..ae2be23 100644
--- a/common/storage_lmdb.cpp
+++ b/common/storage_lmdb.cpp
@@ -308,17 +308,19 @@ void Storage::scan(const char *keyData, uint keySize,
308 } 308 }
309 309
310 if (!keyData || keySize == 0) { 310 if (!keyData || keySize == 0) {
311 bool gotResult = false;
311 if ((rc = mdb_cursor_get(cursor, &key, &data, MDB_FIRST)) == 0 && 312 if ((rc = mdb_cursor_get(cursor, &key, &data, MDB_FIRST)) == 0 &&
312 resultHandler(key.mv_data, key.mv_size, data.mv_data, data.mv_size)) { 313 resultHandler(key.mv_data, key.mv_size, data.mv_data, data.mv_size)) {
313 while ((rc = mdb_cursor_get(cursor, &key, &data, MDB_NEXT)) == 0) { 314 while ((rc = mdb_cursor_get(cursor, &key, &data, MDB_NEXT)) == 0) {
315 gotResult = true;
314 if (!resultHandler(key.mv_data, key.mv_size, data.mv_data, data.mv_size)) { 316 if (!resultHandler(key.mv_data, key.mv_size, data.mv_data, data.mv_size)) {
315 break; 317 break;
316 } 318 }
317 } 319 }
318 } 320 }
319 321
320 //We never find the last value 322 //We never find the last value, but ensure we got at least one.
321 if (rc == MDB_NOTFOUND) { 323 if (gotResult && rc == MDB_NOTFOUND) {
322 rc = 0; 324 rc = 0;
323 } 325 }
324 } else { 326 } else {