[gtk+/gtk-2-16] Add diagnostics for XID collisions
- From: Matthias Clasen <matthiasc src gnome org>
- To: svn-commits-list gnome org
- Subject: [gtk+/gtk-2-16] Add diagnostics for XID collisions
- Date: Tue, 5 May 2009 19:32:09 -0400 (EDT)
commit 339298b638ae76c546717f2136970b93438295a9
Author: Matthias Clasen <mclasen redhat com>
Date: Tue May 5 19:29:05 2009 -0400
Add diagnostics for XID collisions
This should help with diagnosing crashes caused by over-eager XID
reuse in Xlib, see bug 581526.
---
gdk/x11/gdkxid.c | 13 ++++++++-----
1 files changed, 8 insertions(+), 5 deletions(-)
diff --git a/gdk/x11/gdkxid.c b/gdk/x11/gdkxid.c
index 1d18b55..b4b46fe 100644
--- a/gdk/x11/gdkxid.c
+++ b/gdk/x11/gdkxid.c
@@ -47,16 +47,19 @@ _gdk_xid_table_insert (GdkDisplay *display,
gpointer data)
{
GdkDisplayX11 *display_x11;
-
+
g_return_if_fail (xid != NULL);
g_return_if_fail (GDK_IS_DISPLAY (display));
-
+
display_x11 = GDK_DISPLAY_X11 (display);
if (!display_x11->xid_ht)
display_x11->xid_ht = g_hash_table_new ((GHashFunc) gdk_xid_hash,
(GEqualFunc) gdk_xid_equal);
+ if (g_hash_table_lookup (display_x11->xid_ht, xid))
+ g_warning ("XID collision, trouble ahead");
+
g_hash_table_insert (display_x11->xid_ht, xid, data);
}
@@ -65,11 +68,11 @@ _gdk_xid_table_remove (GdkDisplay *display,
XID xid)
{
GdkDisplayX11 *display_x11;
-
+
g_return_if_fail (GDK_IS_DISPLAY (display));
-
+
display_x11 = GDK_DISPLAY_X11 (display);
-
+
if (display_x11->xid_ht)
g_hash_table_remove (display_x11->xid_ht, &xid);
}
[
Date Prev][
Date Next] [
Thread Prev][
Thread Next]
[
Thread Index]
[
Date Index]
[
Author Index]