GNOME Bugzilla – Bug 693482
Crash on starting fullscreen GL application
Last modified: 2013-02-09 19:56:20 UTC
When starting 0.A.D mutter crashes with that NRE INT_cairo_region_get_extents (region=0x0, extents=extents@entry=0x7fffffffd7d0) at /build/buildd/cairo-1.12.12/src/cairo-region.c:500 500 /build/buildd/cairo-1.12.12/src/cairo-region.c: Datei oder Verzeichnis n (gdb) bt
+ Trace 231501
Created attachment 235590 [details] [review] meta-window-actor: Make sure that we have a shape region in get_paint_volume Frozen or unredirected windows may not have a shape region if we they frozen or unredirected directly after getting mapped or while unmapped.
Review of attachment 235590 [details] [review]: Fixed the crash here.
Review of attachment 235590 [details] [review]: The invariant I want to maintain here is that shape_region is always valid, or at the very least, not NULL. Thus, we should never have to do if (!priv->shape_region).
Created attachment 235598 [details] [review] meta-window-actor: Make sure that the shape_region is always set Start off with an empty region to make sure that the shape_region is always set even for unredirected and frozen windows.
Review of attachment 235598 [details] [review]: I can't see any issues with this. needs_reshape is going to be TRUE due to the sync_actor_position in meta_window_actor_new, and get_paint_volume calls the pre-paint funcs. Owen, if you have any issues with it, please re-open the bug and comment. This is some messy code, and I think you're the only one who has everything in your head.
Attachment 235598 [details] pushed as 1c680be - meta-window-actor: Make sure that the shape_region is always set