diff options
author | Alexander Larsson <alexl@redhat.com> | 2013-06-12 11:10:28 +0200 |
---|---|---|
committer | Alexander Larsson <alexl@redhat.com> | 2013-06-12 11:10:28 +0200 |
commit | 1685c6a7a0937b82ead2a3e2d7c71facb8a0107e (patch) | |
tree | e2db0aad4b14e91cdf3b6d6f58fb23035e10715c /src/contacts-contact.vala | |
parent | bcd4d0e66ac4997711c72a0eaa116a70c7f055c5 (diff) | |
download | gnome-contacts-1685c6a7a0937b82ead2a3e2d7c71facb8a0107e.tar.gz |
Contact: Make keep_widget_uptodate callback owned
Without this the callback data will not get reffed when this is called
so it may later point to uninitialized memory. This happened to me
when deleting a contact and then undoing that, since ContactSheet.update()
had exited so the closure was freed but the keep_uptodate stuff
still referenced it.
Diffstat (limited to 'src/contacts-contact.vala')
-rw-r--r-- | src/contacts-contact.vala | 2 |
1 files changed, 1 insertions, 1 deletions
diff --git a/src/contacts-contact.vala b/src/contacts-contact.vala index f7f48ad..48c5197 100644 --- a/src/contacts-contact.vala +++ b/src/contacts-contact.vala @@ -1432,7 +1432,7 @@ public class Contacts.Contact : GLib.Object { } } - public void keep_widget_uptodate (Widget w, Gtk.Callback callback) { + public void keep_widget_uptodate (Widget w, owned Gtk.Callback callback) { callback(w); ulong id = this.changed.connect ( () => { callback(w); }); w.destroy.connect (() => { this.disconnect (id); }); |