[prev in list] [next in list] [prev in thread] [next in thread] 

List:       kde-commits
Subject:    [baloo] /: allow ctime/mtime == 0
From:       Christoph Cullmann <cullmann () kde ! org>
Date:       2016-09-11 16:52:23
Message-ID: E1bj7zT-0007in-GF () code ! kde ! org
[Download RAW message or body]

Git commit 628daced19b88d0c537736a14aea3287a4662609 by Christoph Cullmann.
Committed on 11/09/2016 at 16:48.
Pushed by cullmann into branch 'master'.

allow ctime/mtime == 0

Fix that baloo is instant killed by any file with timestamp 0. (which is OK and can \
easily happen after unpacking some zip/tar/..)

REVIEW: 128887
BUG: 355238

M  +17   -0    autotests/unit/engine/documenttimedbtest.cpp
M  +0    -2    src/engine/documenttimedb.cpp
M  +0    -3    src/engine/writetransaction.cpp

http://commits.kde.org/baloo/628daced19b88d0c537736a14aea3287a4662609

diff --git a/autotests/unit/engine/documenttimedbtest.cpp \
b/autotests/unit/engine/documenttimedbtest.cpp index 18231bf..c509e5c 100644
--- a/autotests/unit/engine/documenttimedbtest.cpp
+++ b/autotests/unit/engine/documenttimedbtest.cpp
@@ -28,6 +28,7 @@ class DocumentTimeDBTest : public SingleDBTest
     Q_OBJECT
 private Q_SLOTS:
     void test();
+    void testAllowZeroTime();
 };
 
 void DocumentTimeDBTest::test()
@@ -45,6 +46,22 @@ void DocumentTimeDBTest::test()
     QCOMPARE(db.get(1), DocumentTimeDB::TimeInfo());
 }
 
+void DocumentTimeDBTest::testAllowZeroTime()
+{
+    DocumentTimeDB db(DocumentTimeDB::create(m_txn), m_txn);
+
+    // we must be able to handle zero time, aka 1970...
+    DocumentTimeDB::TimeInfo info;
+    info.mTime = 0;
+    info.cTime = 0;
+
+    db.put(1, info);
+    QCOMPARE(db.get(1), info);
+
+    db.del(1);
+    QCOMPARE(db.get(1), DocumentTimeDB::TimeInfo());
+}
+
 QTEST_MAIN(DocumentTimeDBTest)
 
 #include "documenttimedbtest.moc"
diff --git a/src/engine/documenttimedb.cpp b/src/engine/documenttimedb.cpp
index aa0925a..ef744b9 100644
--- a/src/engine/documenttimedb.cpp
+++ b/src/engine/documenttimedb.cpp
@@ -58,8 +58,6 @@ MDB_dbi DocumentTimeDB::open(MDB_txn* txn)
 void DocumentTimeDB::put(quint64 docId, const TimeInfo& info)
 {
     Q_ASSERT(docId > 0);
-    Q_ASSERT(info.mTime);
-    Q_ASSERT(info.cTime);
 
     MDB_val key;
     key.mv_size = sizeof(quint64);
diff --git a/src/engine/writetransaction.cpp b/src/engine/writetransaction.cpp
index 9ad7520..3808970 100644
--- a/src/engine/writetransaction.cpp
+++ b/src/engine/writetransaction.cpp
@@ -206,9 +206,6 @@ void WriteTransaction::replaceDocument(const Document& doc, \
DocumentOperations o  }
 
     if (operations & DocumentTime) {
-        Q_ASSERT(doc.m_mTime);
-        Q_ASSERT(doc.m_cTime);
-
         DocumentTimeDB::TimeInfo info;
         info.mTime = doc.m_mTime;
         info.cTime = doc.m_cTime;


[prev in list] [next in list] [prev in thread] [next in thread] 

Configure | About | News | Add a list | Sponsored by KoreLogic