summaryrefslogtreecommitdiffstats
diff options
context:
space:
mode:
authorAaron Seigo <aseigo@kde.org>2014-12-10 10:10:59 +0100
committerAaron Seigo <aseigo@kde.org>2014-12-11 01:02:59 +0100
commit8e2967c5bc703788cf243c9607a3cab1f976b125 (patch)
tree83f0b20f48612ee60469bddb9774e788e7cc06ff
parent997637b3b466e1f1c95405a3d43a78d78d4ba259 (diff)
downloadsink-8e2967c5bc703788cf243c9607a3cab1f976b125.tar.gz
sink-8e2967c5bc703788cf243c9607a3cab1f976b125.zip
don't miss the first item in the database!
-rw-r--r--common/storage_lmdb.cpp10
1 files changed, 6 insertions, 4 deletions
diff --git a/common/storage_lmdb.cpp b/common/storage_lmdb.cpp
index 0070888..9832853 100644
--- a/common/storage_lmdb.cpp
+++ b/common/storage_lmdb.cpp
@@ -311,10 +311,12 @@ void Storage::readAll(const std::function<bool(void *key, int keySize, void *dat
311 return; 311 return;
312 } 312 }
313 313
314 rc = mdb_cursor_get(cursor, &key, &data, MDB_FIRST); 314 if ((rc = mdb_cursor_get(cursor, &key, &data, MDB_FIRST) == 0) &&
315 while ((rc = mdb_cursor_get(cursor, &key, &data, MDB_NEXT)) == 0) { 315 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)) { 316 while ((rc = mdb_cursor_get(cursor, &key, &data, MDB_NEXT)) == 0) {
317 break; 317 if (!resultHandler(key.mv_data, key.mv_size, data.mv_data, data.mv_size)) {
318 break;
319 }
318 } 320 }
319 } 321 }
320 322