From 1ab5db3726fcbb5c05216e2f5b5ff59b2d95f3c2 Mon Sep 17 00:00:00 2001
From: "Robert C. Helling" <helling@atdotde.de>
Date: Fri, 2 Dec 2016 23:43:30 +0100
Subject: [PATCH] Empty image hashes are not valid

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 <helling@atdotde.de>
Signed-off-by: Dirk Hohndel <dirk@hohndel.org>
---
 core/qthelper.cpp | 16 ++++++++++++++++
 1 file changed, 16 insertions(+)

diff --git a/core/qthelper.cpp b/core/qthelper.cpp
index 0628dd2e3..ad1780144 100644
--- a/core/qthelper.cpp
+++ b/core/qthelper.cpp
@@ -1026,6 +1026,20 @@ void read_hashes()
 		stream >> thumbnailCache;
 		hashfile.close();
 	}
+	localFilenameOf.remove("");
+	QMutableHashIterator<QString, QByteArray> iter(hashOf);
+	while (iter.hasNext()) {
+		iter.next();
+		if (iter.value().isEmpty())
+			iter.remove();
+	}
+	qDebug() << "localFilenameOf empty" << localFilenameOf[""];
+
+	QHash<QString, QImage>::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;