Le ven 10/05/2002 � 18:07, Xavier Bestel a �crit :
> Le ven 10/05/2002 � 16:16, Owen Taylor a �crit :
> > The first step would be to try to get a backtrace while running the
> > programs with the --sync command line option, since it's possible
> > that it's not the XQueryPointer that is causing the hang but some
> > earlier request.
> > 
> > Unfortunately, I'm not sure if either evolution or Galeon will really pass
> > that option through to the main part of the application ... they are both
> > somewhat complicated. But it's worth trying. And it should definitely work
> > for simpler apps. (You can tell if you are running the apps synchronized,
> > because it will be darn slow.)
> 
> Right. I did it, here is the bt:
> 
> #0  0x411207ce in select () from /lib/libc.so.6
> #1  0x40f7ffdc in _XlcPublicMethods () from /usr/X11R6/lib/libX11.so.6
> #2  0x40edb3ba in _XRead () from /usr/X11R6/lib/libX11.so.6
> #3  0x40edbdc3 in _XReply () from /usr/X11R6/lib/libX11.so.6
> #4  0x40ed7a77 in XSync () from /usr/X11R6/lib/libX11.so.6
> #5  0x40ed7b00 in _XSyncFunction () from /usr/X11R6/lib/libX11.so.6
> #6  0x40ed8068 in XDrawString16 () from /usr/X11R6/lib/libX11.so.6
> #7  0x40e73d9c in gdk_draw_text () from /usr/lib/libgdk-1.2.so.0
> #8  0x4032553c in e_font_draw_utf8_text () from /usr/lib/libgal.so.19
> #9  0x4033e7ed in e_cell_text_set_value () from /usr/lib/libgal.so.19
> #10 0x40339a68 in e_cell_draw () from /usr/lib/libgal.so.19
> #11 0x403603d3 in e_table_item_redraw_range () from /usr/lib/libgal.so.19
> #12 0x40973abf in gnome_canvas_group_get_type () from /usr/lib/libgnomeui.so.32
> #13 0x40976594 in gnome_canvas_new_aa () from /usr/lib/libgnomeui.so.32
> #14 0x40976738 in gnome_canvas_new_aa () from /usr/lib/libgnomeui.so.32
> #15 0x40976799 in gnome_canvas_new_aa () from /usr/lib/libgnomeui.so.32
> #16 0x4102f4fa in g_timeout_add () from /usr/lib/libglib-1.2.so.0
> #17 0x4102e4d8 in g_get_current_time () from /usr/lib/libglib-1.2.so.0
> #18 0x4102eae3 in g_get_current_time () from /usr/lib/libglib-1.2.so.0
> #19 0x4102ec7c in g_main_run () from /usr/lib/libglib-1.2.so.0
> #20 0x40dc67e7 in gtk_main () from /usr/lib/libgtk-1.2.so.0
> #21 0x40468ebd in bonobo_main () from /usr/lib/libbonobo.so.2
> #22 0x0809e473 in main ()
> #23 0x4106f14f in __libc_start_main () from /lib/libc.so.6
> 
> What's really interesting is that evolution mail just spew this before:
> 
> [xav@bip:~]$ evolution-mail --sync
> 
> GnomeVFS-WARNING **: Unable to convert MIME info from UTF-8 to the current locale 
>fr_FR@euro. MIME info will probably display wrong.
> 
> ** CRITICAL **: file gutf8.c: line 922 (g_utf8_validate): assertion `str != NULL' 
>failed.
> 
> ** CRITICAL **: file gutf8.c: line 922 (g_utf8_validate): assertion `str != NULL' 
>failed.
> 
> ** CRITICAL **: file gutf8.c: line 922 (g_utf8_validate): assertion `str != NULL' 
>failed.
> 
> ** CRITICAL **: file gutf8.c: line 922 (g_utf8_validate): assertion `str != NULL' 
>failed.
> 
> 
> ... a problem with UTF-8 in Xinerama ?


#0  0x40fad7ce in select () from /lib/libc.so.6
#1  0x4029efdc in _XlcPublicMethods () from /usr/X11R6/lib/libX11.so.6
#2  0x401fa3ba in _XRead () from /usr/X11R6/lib/libX11.so.6
#3  0x401fadc3 in _XReply () from /usr/X11R6/lib/libX11.so.6
#4  0x401f6a77 in XSync () from /usr/X11R6/lib/libX11.so.6
#5  0x401f6b00 in _XSyncFunction () from /usr/X11R6/lib/libX11.so.6
#6  0x401f7068 in XDrawString16 () from /usr/X11R6/lib/libX11.so.6
#7  0x40e53d9c in gdk_draw_text () from /usr/lib/libgdk-1.2.so.0
#8  0x41467c35 in NSGetModule () from /usr/lib/mozilla/components/libgfx_gtk.so
#9  0x4144cdae in NSGetModule () from /usr/lib/mozilla/components/libgfx_gtk.so
#10 0x41458634 in NSGetModule () from /usr/lib/mozilla/components/libgfx_gtk.so


... seems we have a winner here. This one was from galeon.
I tried to look through gdk_draw_text, but don't know sufficiently gdk
not X to be helpful here. Perhaps I could put some meaningful printf and
retest ? What do you suggest ?
For info, here is gdk_draw_text:

/* gdk_draw_text
 *
 * Modified by Li-Da Lho to draw 16 bits and Multibyte strings
 *
 * Interface changed: add "GdkFont *font" to specify font or fontset explicitely
 */
void
gdk_draw_text (GdkDrawable *drawable,
               GdkFont     *font,
               GdkGC       *gc,
               gint         x,
               gint         y,
               const gchar *text,
               gint         text_length)
{
  GdkWindowPrivate *drawable_private;
  GdkFontPrivate *font_private;
  GdkGCPrivate *gc_private;

  g_return_if_fail (drawable != NULL);
  g_return_if_fail (font != NULL);
  g_return_if_fail (gc != NULL);
  g_return_if_fail (text != NULL);

  drawable_private = (GdkWindowPrivate*) drawable;
  if (drawable_private->destroyed)
    return;
  gc_private = (GdkGCPrivate*) gc;
  font_private = (GdkFontPrivate*) font;

  if (font->type == GDK_FONT_FONT)
    {
      XFontStruct *xfont = (XFontStruct *) font_private->xfont;
      XSetFont(drawable_private->xdisplay, gc_private->xgc, xfont->fid);
      if ((xfont->min_byte1 == 0) && (xfont->max_byte1 == 0))
        {
          XDrawString (drawable_private->xdisplay, drawable_private->xwindow,
                       gc_private->xgc, x, y, text, text_length);
        }
      else
        {
          XDrawString16 (drawable_private->xdisplay, drawable_private->xwindow,
                         gc_private->xgc, x, y, (XChar2b *) text, text_length / 2);
        }
    }
  else if (font->type == GDK_FONT_FONTSET)
    {
      XFontSet fontset = (XFontSet) font_private->xfont;
      XmbDrawString (drawable_private->xdisplay, drawable_private->xwindow,
                     fontset, gc_private->xgc, x, y, text, text_length);
    }
  else
    g_error("undefined font type\n");
}


        Xav

_______________________________________________
Xpert mailing list
[EMAIL PROTECTED]
http://XFree86.Org/mailman/listinfo/xpert

Reply via email to