60a998bdbc
Destroying the EGLSurface frees the underlying container structs. When we call gbm_surface_release_buffer() with a gbm_surface the EGLSurface was created from, doing that after the EGLSurface was destroyed results in attempts to access freed memory. Fix this by releasing any buffer first, followed by destroying the EGLSurface, and lastly, the gbm_surface. This was not a problem prior to CoglOnscreen turning into a GObject, as in that case, the dispose-chain was not setup correctly, and the EGLSurface destruction was done in the native backend implementation. This also changes a g_return_if_fail() to a g_warn_if_fail(), as if we hit the unexpected case, we still need to call up to the parent dispose vfunc to not cause critical issues. Part-of: <https://gitlab.gnome.org/GNOME/mutter/-/merge_requests/1803> |
||
---|---|---|
.. | ||
backends | ||
compositor | ||
core | ||
meta | ||
tests | ||
ui | ||
wayland | ||
x11 | ||
libmutter.pc.in | ||
meson.build | ||
meta-private-enum-types.c.in | ||
meta-private-enum-types.h.in | ||
org.freedesktop.login1.xml | ||
org.gnome.Mutter.DisplayConfig.xml | ||
org.gnome.Mutter.IdleMonitor.xml | ||
org.gnome.Mutter.RemoteDesktop.xml | ||
org.gnome.Mutter.ScreenCast.xml |