From f73e7680ed1a29be2f13350b29d180ea9cfbcbec Mon Sep 17 00:00:00 2001 From: Paolo Borelli Date: Sat, 27 Feb 2016 10:46:59 +0100 Subject: [PATCH] gdk: factor out utility shared among backends Removes duplicated code and makes sure we use the version which is safe against infinite loops --- gdk/broadway/gdkvisual-broadway.c | 32 ------------------------------- gdk/gdkvisual.c | 27 ++++++++++++++++++++++++++ gdk/gdkvisualprivate.h | 4 ++++ gdk/quartz/gdkvisual-quartz.c | 21 -------------------- gdk/win32/gdkvisual-win32.c | 25 ------------------------ gdk/x11/gdkvisual-x11.c | 30 ----------------------------- 6 files changed, 31 insertions(+), 108 deletions(-) diff --git a/gdk/broadway/gdkvisual-broadway.c b/gdk/broadway/gdkvisual-broadway.c index bad78d573a..6ea2fab057 100644 --- a/gdk/broadway/gdkvisual-broadway.c +++ b/gdk/broadway/gdkvisual-broadway.c @@ -40,11 +40,6 @@ struct _GdkBroadwayVisualClass GObjectClass parent_class; }; -static void gdk_visual_decompose_mask (gulong mask, - gint *shift, - gint *prec); - - G_DEFINE_TYPE (GdkBroadwayVisual, gdk_broadway_visual, GDK_TYPE_VISUAL) static void @@ -259,30 +254,3 @@ _gdk_broadway_screen_list_visuals (GdkScreen *screen) return list; } - -static void -gdk_visual_decompose_mask (gulong mask, - gint *shift, - gint *prec) -{ - *shift = 0; - *prec = 0; - - if (mask == 0) - { - g_warning ("Mask is 0 in visual. Server bug ?"); - return; - } - - while (!(mask & 0x1)) - { - (*shift)++; - mask >>= 1; - } - - while (mask & 0x1) - { - (*prec)++; - mask >>= 1; - } -} diff --git a/gdk/gdkvisual.c b/gdk/gdkvisual.c index 64d1ce09e9..3539e407c7 100644 --- a/gdk/gdkvisual.c +++ b/gdk/gdkvisual.c @@ -467,3 +467,30 @@ gdk_visual_get_screen (GdkVisual *visual) return visual->screen; } + +void +gdk_visual_decompose_mask (gulong mask, + gint *shift, + gint *prec) +{ + *shift = 0; + *prec = 0; + + if (mask == 0) + { + g_warning ("Mask is 0 in visual. Server bug ?"); + return; + } + + while (!(mask & 0x1)) + { + (*shift)++; + mask >>= 1; + } + + while (mask & 0x1) + { + (*prec)++; + mask >>= 1; + } +} diff --git a/gdk/gdkvisualprivate.h b/gdk/gdkvisualprivate.h index e970f550a0..3375f234de 100644 --- a/gdk/gdkvisualprivate.h +++ b/gdk/gdkvisualprivate.h @@ -59,6 +59,10 @@ struct _GdkVisualClass GObjectClass parent_class; }; +void gdk_visual_decompose_mask (gulong mask, + gint *shift, + gint *prec); + G_END_DECLS #endif diff --git a/gdk/quartz/gdkvisual-quartz.c b/gdk/quartz/gdkvisual-quartz.c index ff0032b103..9f52e6ec54 100644 --- a/gdk/quartz/gdkvisual-quartz.c +++ b/gdk/quartz/gdkvisual-quartz.c @@ -38,27 +38,6 @@ static GdkVisual *system_visual; static GdkVisual *rgba_visual; static GdkVisual *gray_visual; -static void -gdk_visual_decompose_mask (gulong mask, - gint *shift, - gint *prec) -{ - *shift = 0; - *prec = 0; - - while (!(mask & 0x1)) - { - (*shift)++; - mask >>= 1; - } - - while (mask & 0x1) - { - (*prec)++; - mask >>= 1; - } -} - static GdkVisual * create_standard_visual (GdkScreen *screen, gint depth) diff --git a/gdk/win32/gdkvisual-win32.c b/gdk/win32/gdkvisual-win32.c index a2dce0537c..fd2a7f9455 100644 --- a/gdk/win32/gdkvisual-win32.c +++ b/gdk/win32/gdkvisual-win32.c @@ -31,10 +31,6 @@ #include "gdkprivate-win32.h" #include "gdkvisualprivate.h" -static void gdk_visual_decompose_mask (gulong mask, - gint *shift, - gint *prec); - static GdkVisual *system_visual = NULL; static GdkVisual *rgba_visual = NULL; @@ -353,24 +349,3 @@ _gdk_win32_screen_list_visuals (GdkScreen *screen) return result; } - -static void -gdk_visual_decompose_mask (gulong mask, - gint *shift, - gint *prec) -{ - *shift = 0; - *prec = 0; - - while (!(mask & 0x1)) - { - (*shift)++; - mask >>= 1; - } - - while (mask & 0x1) - { - (*prec)++; - mask >>= 1; - } -} diff --git a/gdk/x11/gdkvisual-x11.c b/gdk/x11/gdkvisual-x11.c index e22c4c6679..0614fc016e 100644 --- a/gdk/x11/gdkvisual-x11.c +++ b/gdk/x11/gdkvisual-x11.c @@ -45,9 +45,6 @@ struct _GdkX11VisualClass }; static void gdk_visual_add (GdkVisual *visual); -static void gdk_visual_decompose_mask (gulong mask, - gint *shift, - gint *prec); static guint gdk_visual_hash (Visual *key); static gboolean gdk_visual_equal (Visual *a, Visual *b); @@ -501,33 +498,6 @@ gdk_visual_add (GdkVisual *visual) g_hash_table_insert (x11_screen->visual_hash, GDK_X11_VISUAL (visual)->xvisual, visual); } -static void -gdk_visual_decompose_mask (gulong mask, - gint *shift, - gint *prec) -{ - *shift = 0; - *prec = 0; - - if (mask == 0) - { - g_warning ("Mask is 0 in visual. Server bug ?"); - return; - } - - while (!(mask & 0x1)) - { - (*shift)++; - mask >>= 1; - } - - while (mask & 0x1) - { - (*prec)++; - mask >>= 1; - } -} - static guint gdk_visual_hash (Visual *key) {