From 1d119938c761248a61227e39f62d13597bde2256 Mon Sep 17 00:00:00 2001 From: Matthias Clasen Date: Thu, 3 Apr 2008 05:08:05 +0000 Subject: [PATCH] Don't call XFreeColormap on foreign colormaps svn path=/trunk/; revision=19969 --- ChangeLog | 5 +++++ gdk/x11/gdkcolor-x11.c | 5 +++-- 2 files changed, 8 insertions(+), 2 deletions(-) diff --git a/ChangeLog b/ChangeLog index 032c4851a..aaccb2c6f 100644 --- a/ChangeLog +++ b/ChangeLog @@ -1,3 +1,8 @@ +2008-04-02 Matthias Clasen + + * gdk/x11/gdkcolor-x11.c: Don't call XFreeColormap on foreign + colormaps. Found by Daniel Berrange. + 2008-04-02 Björn Lindqvist * tests/autotestfilechooser.c: Cover diff --git a/gdk/x11/gdkcolor-x11.c b/gdk/x11/gdkcolor-x11.c index 359489265..4531c99a2 100644 --- a/gdk/x11/gdkcolor-x11.c +++ b/gdk/x11/gdkcolor-x11.c @@ -46,7 +46,7 @@ struct _GdkColormapPrivateX11 GdkColorInfo *info; time_t last_sync_time; - guint foreign : 1; + gboolean foreign; }; #define GDK_COLORMAP_PRIVATE_DATA(cmap) ((GdkColormapPrivateX11 *) GDK_COLORMAP (cmap)->windowing_data) @@ -107,7 +107,7 @@ gdk_colormap_finalize (GObject *object) gdk_colormap_remove (colormap); - if (!private->screen->closed) + if (!private->screen->closed && !private->foreign) XFreeColormap (GDK_SCREEN_XDISPLAY (private->screen), private->xcolormap); if (private->hash) @@ -1292,6 +1292,7 @@ gdk_x11_colormap_foreign_new (GdkVisual *visual, private->screen = screen; private->xcolormap = xcolormap; private->private_val = FALSE; + private->foreign = TRUE; colormap->size = visual->colormap_size;