Re: XIM application crashes on gtk+1.3.*
- From: Owen Taylor <otaylor redhat com>
- To: gtk-i18n-list gnome org
- Subject: Re: XIM application crashes on gtk+1.3.*
- Date: 30 Nov 2000 23:07:23 -0500
tajima <hidetoshi tajima eng sun com> writes:
> I'm seeing yet another problem described below when I input Japanese text
> via XIM input module on another sample program, examples/entry/entry.c
> distrubuted with gtk+.
>
> Note that I modified the C program to call gtk_set_locale() just before
> gtk_init(), and compiled it with gtk-config-2.0 as follows:
>
> gcc `gtk-config-2.0 --cflags` entry.c -o entry `gtk-config-2.0 --libs`
>
> This happens on both 1.3.2 tarball and the latest out of cvs.
Ah, the handling of reverse video is triggering a bug in copying
GC's.
Patch attached (just applied to CVS) should fix.
[..]
> (gdb) where 10
> #0 0xff0ad5c0 in gdk_region_copy () from /opt/gnome2/lib//libgdk-x11-1.3.so.2
> #1 0xff0c54c4 in gdk_gc_copy () from /opt/gnome2/lib//libgdk-x11-1.3.so.2
> #2 0xff0a3cac in gdk_pango_get_gc () from /opt/gnome2/lib//libgdk-x11-1.3.so.2
> #3 0xff0a3ffc in gdk_draw_layout_line ()
> from /opt/gnome2/lib//libgdk-x11-1.3.so.2
Index: ChangeLog
===================================================================
RCS file: /cvs/gnome/gtk+/ChangeLog,v
retrieving revision 1.1573
diff -u -r1.1573 ChangeLog
--- ChangeLog 2000/11/30 23:39:46 1.1573
+++ ChangeLog 2000/12/01 04:05:14
@@ -1,3 +1,8 @@
+Thu Nov 30 23:03:04 2000 Owen Taylor <otaylor redhat com>
+
+ * gdk/x11/gdkgc-x11.c (gdk_gc_copy): Properly handle
+ gc->clip_region == NULL>
+
2000-11-30 Tor Lillqvist <tml iki fi>
Changes by Hans Breuer:
Index: gdk/x11/gdkgc-x11.c
===================================================================
RCS file: /cvs/gnome/gtk+/gdk/x11/gdkgc-x11.c,v
retrieving revision 1.13
diff -u -r1.13 gdkgc-x11.c
--- gdk/x11/gdkgc-x11.c 2000/11/02 17:18:52 1.13
+++ gdk/x11/gdkgc-x11.c 2000/12/01 04:05:14
@@ -711,7 +711,10 @@
if (x11_dst_gc->clip_region)
gdk_region_destroy (x11_dst_gc->clip_region);
- x11_dst_gc->clip_region = gdk_region_copy (x11_src_gc->clip_region);
+ if (x11_src_gc->clip_region)
+ x11_dst_gc->clip_region = gdk_region_copy (x11_src_gc->clip_region);
+ else
+ x11_dst_gc->clip_region = NULL;
x11_dst_gc->dirty_mask = x11_src_gc->dirty_mask;
}
[
Date Prev][
Date Next] [
Thread Prev][
Thread Next]
[
Thread Index]
[
Date Index]
[
Author Index]