forked from AuroraMiddleware/gtk
gdk: Unset the DrawingContext <-> cairo_t link on dispose
When disposing a GdkDrawingContext we should unset the association between the instance and the Cairo context; this avoids stale pointers in case a reference that has acquired on the Cairo context survives the lifetime of the GdkDrawingContext.
This commit is contained in:
parent
222bcf1a71
commit
0ca59bf85a
@ -64,6 +64,12 @@ gdk_drawing_context_dispose (GObject *gobject)
|
||||
{
|
||||
GdkDrawingContext *self = GDK_DRAWING_CONTEXT (gobject);
|
||||
|
||||
/* Unset the drawing context, in case somebody is holding
|
||||
* onto the Cairo context
|
||||
*/
|
||||
if (self->cr != NULL)
|
||||
gdk_cairo_set_drawing_context (self->cr, NULL);
|
||||
|
||||
g_clear_object (&self->window);
|
||||
g_clear_pointer (&self->clip, cairo_region_destroy);
|
||||
g_clear_pointer (&self->cr, cairo_destroy);
|
||||
|
Loading…
Reference in New Issue
Block a user