Mercurial > hg > forks > geeqie
changeset 2030:fb287a0612fe
make sure fd is referenced
file_data_disconnect_sidecar_file may free a fd with zero references
we have to ref it if we want to use it later
author | Vladimir Nadvornik <nadvornik@suse.cz> |
---|---|
date | Fri, 10 Aug 2012 21:20:07 +0200 |
parents | d11d79da26cf |
children | 391e0ca035ca |
files | src/filedata.c |
diffstat | 1 files changed, 7 insertions(+), 0 deletions(-) [+] |
line wrap: on
line diff
--- a/src/filedata.c Thu Aug 09 17:32:36 2012 +0200 +++ b/src/filedata.c Fri Aug 10 21:20:07 2012 +0200 @@ -185,8 +185,12 @@ { fd->size = 0; fd->date = 0; + file_data_ref(sfd); file_data_disconnect_sidecar_file(fd, sfd); ret = TRUE; + file_data_increment_version(sfd); + file_data_send_notification(sfd, NOTIFY_REREAD); + file_data_unref(sfd); continue; } @@ -217,6 +221,7 @@ /* file_data_disconnect_sidecar_file might delete the file, we have to keep the reference to prevent this */ sidecars = filelist_copy(fd->sidecar_files); + file_data_ref(fd); work = sidecars; while (work) { @@ -228,7 +233,9 @@ file_data_check_sidecars(sidecars); /* this will group the sidecars back together */ /* now we can release the sidecars */ filelist_free(sidecars); + file_data_increment_version(fd); file_data_send_notification(fd, NOTIFY_REREAD); + file_data_unref(fd); } else {