[mutter] compositor: Prevent an error in application code from keeping unredirect on permanently
- From: Adel Gadllah <agadllah src gnome org>
- To: commits-list gnome org
- Cc:
- Subject: [mutter] compositor: Prevent an error in application code from keeping unredirect on permanently
- Date: Tue, 18 Jun 2013 20:18:56 +0000 (UTC)
commit 2a5b0688630f6c9175df8b41635b05079f9be389
Author: Adel Gadllah <adel gadllah gmail com>
Date: Tue Jun 18 21:36:20 2013 +0200
compositor: Prevent an error in application code from keeping unredirect on permanently
We substract one from the unredirect counter when enable_unredirect_for_screen
gets called. It is an unsigned integer so substracting one from zero (which means enable) would overflow
and thus keep it peramently enabled.
This should never happen because it means there is an unmatched
enable / disable pair somewhere. So in addition to fixing it add a
warning when this case gets triggered.
https://bugzilla.gnome.org/show_bug.cgi?id=701224
src/compositor/compositor.c | 6 ++++--
1 files changed, 4 insertions(+), 2 deletions(-)
---
diff --git a/src/compositor/compositor.c b/src/compositor/compositor.c
index 459ddf2..4195a29 100644
--- a/src/compositor/compositor.c
+++ b/src/compositor/compositor.c
@@ -1566,8 +1566,10 @@ void
meta_enable_unredirect_for_screen (MetaScreen *screen)
{
MetaCompScreen *info = meta_screen_get_compositor_data (screen);
- if (info != NULL)
- info->disable_unredirect_count = MAX(0, info->disable_unredirect_count - 1);
+ if (info != NULL && info->disable_unredirect_count == 0)
+ g_warning ("Called enable_unredirect_for_screen while unredirection is enabled.");
+ if (info != NULL && info->disable_unredirect_count > 0)
+ info->disable_unredirect_count = info->disable_unredirect_count - 1;
}
#define FLASH_TIME_MS 50
[
Date Prev][
Date Next] [
Thread Prev][
Thread Next]
[
Thread Index]
[
Date Index]
[
Author Index]