there was a bug in reference count on writting unsaved metadata
before starting an external editor
FileData *fd = work->data;
work = work->next;
- if (fd->change) return FALSE; /* another op. in progress, let the caller handle it */
+ if (fd->change)
+ {
+ filelist_free(unsaved);
+ return FALSE; /* another op. in progress, let the caller handle it */
+ }
if (fd->modified_xmp) /* has unsaved metadata */
{
- unsaved = g_list_prepend(unsaved, fd);
+ unsaved = g_list_prepend(unsaved, file_data_ref(fd));
}
}