Cleanup: Don't store hash in picture struct in learnHash()

learnHash() is called either on a local picture structure
[DiveListView::loadImageFromURL()] or on a cloned picture structure
[ImageDownloader::saveImage()]. In neither case the picture structure
is passed to the frontend. Therefore, storing the new hash in the
picture struct is not necessary.

Signed-off-by: Berthold Stoeger <bstoeger@mail.tuwien.ac.at>
This commit is contained in:
Berthold Stoeger 2018-02-18 14:07:15 +01:00 committed by Lubomir I. Ivanov
parent 83b2870648
commit b750a48f0f
3 changed files with 5 additions and 8 deletions

View file

@ -1149,15 +1149,12 @@ QByteArray hashFile(const QString filename)
}
}
void learnHash(struct picture *picture, QByteArray hash)
void learnHash(const struct picture *picture, QByteArray hash)
{
if (hash.isNull())
return;
if (picture->hash)
free(picture->hash);
QMutexLocker locker(&hashOfMutex);
hashOf[QString(picture->filename)] = hash;
picture->hash = strdup(hash.toHex());
}
static bool haveHash(const QString &filename)

View file

@ -37,9 +37,10 @@ QByteArray hashFile(const QString filename);
void learnImages(const QDir dir, int max_recursions);
void add_hash(const QString filename, QByteArray hash);
void hashPicture(struct picture *picture);
extern "C" char *hashstring(const char *filename);
QString localFilePath(const QString originalFilename);
QString fileFromHash(const char *hash);
void learnHash(struct picture *picture, QByteArray hash);
void learnHash(const struct picture *picture, QByteArray hash);
weight_t string_to_weight(const char *str);
depth_t string_to_depth(const char *str);
pressure_t string_to_pressure(const char *str);

View file

@ -43,9 +43,8 @@ void TestPicture::addPicture()
QVERIFY(pic2->hash == NULL);
learnHash(pic1, hashFile(localFilePath(pic1->filename)));
learnHash(pic2, hashFile(localFilePath(pic2->filename)));
QCOMPARE(pic1->hash, "929ad9499b7ae7a9e39ef63eb6c239604ac2adfa");
QCOMPARE(pic2->hash, "fa8bd48f8f24017a81e1204f52300bd98b43d4a7");
QCOMPARE(hashstring(pic1->filename), "929ad9499b7ae7a9e39ef63eb6c239604ac2adfa");
QCOMPARE(hashstring(pic2->filename), "fa8bd48f8f24017a81e1204f52300bd98b43d4a7");
}