MetaSurfaceActorWayland: Unset the MetaWaylandSurface pointer when it goes away

We may access it during painting even if it has been freed. For now,
manually unset it during the MetaWaylandSurface cleanup; in the future
make MetaWaylandSurface a GObject and make the surface pointer a weak
reference.

https://bugzilla.gnome.org/show_bug.cgi?id=744453
This commit is contained in:
Jonas Ådahl
2015-07-03 12:27:41 +08:00
parent dc99af40f3
commit ba7c524a18
4 changed files with 20 additions and 2 deletions

View File

@ -802,6 +802,9 @@ wl_surface_destructor (struct wl_resource *resource)
if (surface->input_region)
cairo_region_destroy (surface->input_region);
meta_surface_actor_wayland_surface_destroyed (
META_SURFACE_ACTOR_WAYLAND (surface->surface_actor));
g_object_unref (surface->surface_actor);
meta_wayland_compositor_destroy_frame_callbacks (compositor, surface);