}
static void
+free_surface_buffers (ClutterWaylandSurface *self)
+{
+ ClutterWaylandSurfacePrivate *priv = self->priv;
+
+ if (priv->buffer)
+ {
+ cogl_object_unref (priv->buffer);
+ priv->buffer = NULL;
+ free_pipeline (self);
+ }
+}
+
+static void
clutter_wayland_surface_dispose (GObject *object)
{
ClutterWaylandSurface *self = CLUTTER_WAYLAND_SURFACE (object);
ClutterWaylandSurfacePrivate *priv = self->priv;
+ free_pipeline (self);
+ free_surface_buffers (self);
+ priv->surface = NULL;
+
G_OBJECT_CLASS (clutter_wayland_surface_parent_class)->dispose (object);
}
return actor;
}
-static void
-free_surface_buffers (ClutterWaylandSurface *self)
-{
- ClutterWaylandSurfacePrivate *priv = self->priv;
-
- if (priv->buffer)
- {
- cogl_object_unref (priv->buffer);
- priv->buffer = NULL;
- free_pipeline (self);
- }
-}
-
/**
* clutter_wayland_surface_attach_buffer:
* @self: A #ClutterWaylandSurface actor