[gtk+] Optimize gdk_x11_screen_supports_net_wm_hint()
- From: Benjamin Otte <otte src gnome org>
- To: commits-list gnome org
- Cc:
- Subject: [gtk+] Optimize gdk_x11_screen_supports_net_wm_hint()
- Date: Sun, 23 Jun 2013 23:47:35 +0000 (UTC)
commit 6eea6ddcc3a8dc1ac18e83161de2acfa77a356e8
Author: John Lindgren <john lindgren aol com>
Date: Sun Jun 23 21:22:13 2013 +0200
Optimize gdk_x11_screen_supports_net_wm_hint()
Move the call to gdk_x11_atom_to_xatom_for_display() outside of the
search loop in gdk_x11_screen_supports_net_wm_hint(). In my test case
(running Audacious for about a minute), this reduced the total number of
hash table lookups performed from 370,000 to 230,000.
https://bugzilla.gnome.org/show_bug.cgi?id=702913
gdk/x11/gdkscreen-x11.c | 10 +++++-----
1 files changed, 5 insertions(+), 5 deletions(-)
---
diff --git a/gdk/x11/gdkscreen-x11.c b/gdk/x11/gdkscreen-x11.c
index 760da2b..804b18e 100644
--- a/gdk/x11/gdkscreen-x11.c
+++ b/gdk/x11/gdkscreen-x11.c
@@ -1470,6 +1470,7 @@ gdk_x11_screen_supports_net_wm_hint (GdkScreen *screen,
GdkX11Screen *x11_screen;
NetWmSupportedAtoms *supported_atoms;
GdkDisplay *display;
+ Atom atom;
g_return_val_if_fail (GDK_IS_SCREEN (screen), FALSE);
@@ -1521,13 +1522,12 @@ gdk_x11_screen_supports_net_wm_hint (GdkScreen *screen,
if (supported_atoms->atoms == NULL)
return FALSE;
- i = 0;
- while (i < supported_atoms->n_atoms)
+ atom = gdk_x11_atom_to_xatom_for_display (display, property);
+
+ for (i = 0; i < supported_atoms->n_atoms; i++)
{
- if (supported_atoms->atoms[i] == gdk_x11_atom_to_xatom_for_display (display, property))
+ if (supported_atoms->atoms[i] == atom)
return TRUE;
-
- ++i;
}
return FALSE;
[
Date Prev][
Date Next] [
Thread Prev][
Thread Next]
[
Thread Index]
[
Date Index]
[
Author Index]