From fa0a376bf392098ae41131357fd17d80b6887845 Mon Sep 17 00:00:00 2001 From: "Robert C. Helling" Date: Fri, 2 Dec 2016 23:43:30 +0100 Subject: [PATCH] Empty image hashes are not valid To: subsurface@subsurface-divelog.org I don't know how those arose in the first place, but an empty QByteArray is never a valid hash value for an image. So we should not store those in our translation tables and also get rid of them when loading the tables from disk. Signed-off-by: Robert C. Helling --- core/qthelper.cpp | 16 ++++++++++++++++ 1 file changed, 16 insertions(+) diff --git a/core/qthelper.cpp b/core/qthelper.cpp index 0628dd2..ad17801 100644 --- a/core/qthelper.cpp +++ b/core/qthelper.cpp @@ -1026,6 +1026,20 @@ void read_hashes() stream >> thumbnailCache; hashfile.close(); } + localFilenameOf.remove(""); + QMutableHashIterator iter(hashOf); + while (iter.hasNext()) { + iter.next(); + if (iter.value().isEmpty()) + iter.remove(); + } + qDebug() << "localFilenameOf empty" << localFilenameOf[""]; + + QHash::const_iterator i = thumbnailCache.constBegin(); + while (i != thumbnailCache.constEnd()) { + qDebug() << i.key() << *i; + ++i; + } } void write_hashes() @@ -1046,6 +1060,8 @@ void write_hashes() void add_hash(const QString filename, QByteArray hash) { + if (hash.isEmpty()) + return; QMutexLocker locker(&hashOfMutex); hashOf[filename] = hash; localFilenameOf[hash] = filename; -- 2.9.3 (Apple Git-75)