app: let the tag popup own its tag objects
This should fix crashes in which tag objects got accessed after they were disposed, because they still were stored with the popup object.
This commit is contained in:
@ -257,6 +257,8 @@ gimp_tag_popup_constructed (GObject *object)
|
||||
tag_data->tag = tag_iterator->data;
|
||||
tag_data->state = GTK_STATE_NORMAL;
|
||||
|
||||
g_object_ref (tag_data->tag);
|
||||
|
||||
for (j = 0; j < current_count; j++)
|
||||
{
|
||||
if (! gimp_tag_compare_with_string (tag_data->tag, current_tags[j]))
|
||||
@ -386,6 +388,13 @@ gimp_tag_popup_dispose (GObject *object)
|
||||
|
||||
if (popup->tag_data)
|
||||
{
|
||||
gint i;
|
||||
|
||||
for (i = 0; i < popup->tag_count; i++)
|
||||
{
|
||||
g_object_unref (popup->tag_data[i].tag);
|
||||
}
|
||||
|
||||
g_free (popup->tag_data);
|
||||
popup->tag_data = NULL;
|
||||
}
|
||||
|
||||
Reference in New Issue
Block a user