Cleanup: Remove hash field from picture-structure

The hash field in the picture-structure was in principle non-operational.
It was set on loading, but never actually changed. The authoritative
hash comes from the filename->hash map.

Therefore, make this explicit by removing the hash field from the
picture structure.

Instead of filling the picture structure on loading, add the
hash directly to the filename->hash map. This is done in the
register_hash() function, which does not overwrite old entries.
I.e. the local hash has priority over the save-file. This
policy might be refined in the future.

Signed-off-by: Berthold Stoeger <bstoeger@mail.tuwien.ac.at>
This commit is contained in:
Berthold Stoeger 2018-02-18 16:22:34 +01:00 committed by Lubomir I. Ivanov
parent e5dcd9fc16
commit bdc470a80e
8 changed files with 61 additions and 46 deletions

View file

@ -455,7 +455,6 @@ static void copy_pl(struct picture *sp, struct picture *dp)
{
*dp = *sp;
dp->filename = copy_string(sp->filename);
dp->hash = copy_string(sp->hash);
}
/* copy an element in a list of tags */
@ -3804,7 +3803,6 @@ void picture_free(struct picture *picture)
if (!picture)
return;
free(picture->filename);
free(picture->hash);
free(picture);
}