From: Michel Dänzer <[email protected]> present_restore_screen_pixmap's work doesn't need to be done several times for the same pending flip.
Fixes a crash if the X server quits while a flip is pending, in which case present_set_abort_flip may be called several times, including when screen->root is already cleared to NULL. Signed-off-by: Michel Dänzer <[email protected]> --- present/present.c | 7 ++++--- 1 file changed, 4 insertions(+), 3 deletions(-) diff --git a/present/present.c b/present/present.c index 5210832..5fde846 100644 --- a/present/present.c +++ b/present/present.c @@ -455,9 +455,10 @@ present_set_abort_flip(ScreenPtr screen) { present_screen_priv_ptr screen_priv = present_screen_priv(screen); - present_restore_screen_pixmap(screen); - - screen_priv->flip_pending->abort_flip = TRUE; + if (!screen_priv->flip_pending->abort_flip) { + present_restore_screen_pixmap(screen); + screen_priv->flip_pending->abort_flip = TRUE; + } } static void -- 2.8.1 _______________________________________________ [email protected]: X.Org development Archives: http://lists.x.org/archives/xorg-devel Info: https://lists.x.org/mailman/listinfo/xorg-devel
