mirror of https://github.com/GNOME/gimp.git
app: ref/unref layer->fs.drawable in gimp_layer_set_floating_sel_drawable()
It always felt wrong not to ref it, but now it started crashing. Dunno what exactly has changed, but for example the "Weave" script was triggering it.
This commit is contained in:
parent
40030e084b
commit
d1b8a715c2
|
@ -452,6 +452,8 @@ gimp_layer_dispose (GObject *object)
|
||||||
*/
|
*/
|
||||||
if (gimp_drawable_get_floating_sel (fs_drawable) == layer)
|
if (gimp_drawable_get_floating_sel (fs_drawable) == layer)
|
||||||
gimp_drawable_detach_floating_sel (fs_drawable);
|
gimp_drawable_detach_floating_sel (fs_drawable);
|
||||||
|
|
||||||
|
gimp_layer_set_floating_sel_drawable (layer, NULL);
|
||||||
}
|
}
|
||||||
|
|
||||||
G_OBJECT_CLASS (parent_class)->dispose (object);
|
G_OBJECT_CLASS (parent_class)->dispose (object);
|
||||||
|
@ -468,13 +470,6 @@ gimp_layer_finalize (GObject *object)
|
||||||
layer->mask = NULL;
|
layer->mask = NULL;
|
||||||
}
|
}
|
||||||
|
|
||||||
if (layer->fs.segs)
|
|
||||||
{
|
|
||||||
g_free (layer->fs.segs);
|
|
||||||
layer->fs.segs = NULL;
|
|
||||||
layer->fs.num_segs = 0;
|
|
||||||
}
|
|
||||||
|
|
||||||
G_OBJECT_CLASS (parent_class)->finalize (object);
|
G_OBJECT_CLASS (parent_class)->finalize (object);
|
||||||
}
|
}
|
||||||
|
|
||||||
|
@ -1992,8 +1987,14 @@ gimp_layer_set_floating_sel_drawable (GimpLayer *layer,
|
||||||
layer->fs.num_segs = 0;
|
layer->fs.num_segs = 0;
|
||||||
}
|
}
|
||||||
|
|
||||||
|
if (layer->fs.drawable)
|
||||||
|
g_object_unref (layer->fs.drawable);
|
||||||
|
|
||||||
layer->fs.drawable = drawable;
|
layer->fs.drawable = drawable;
|
||||||
|
|
||||||
|
if (layer->fs.drawable)
|
||||||
|
g_object_ref (layer->fs.drawable);
|
||||||
|
|
||||||
g_object_notify (G_OBJECT (layer), "floating-selection");
|
g_object_notify (G_OBJECT (layer), "floating-selection");
|
||||||
}
|
}
|
||||||
}
|
}
|
||||||
|
|
Loading…
Reference in New Issue