pango fmr ...



After much tweaking with -lefence I got:

Program received signal SIGSEGV, Segmentation fault.
[Switching to Thread 1024 (LWP 30431)]
0x408b29a0 in __strcasecmp (s1=0x4e432ff8 <Address 0x4e432ff8 out of
bounds>, s2=0x4e41cff8 "Sans") at ../sysdeps/generic/strcasecmp.c:64
64	../sysdeps/generic/strcasecmp.c: No such file or directory.
	in ../sysdeps/generic/strcasecmp.c
(gdb) bt
#0  0x408b29a0 in __strcasecmp (s1=0x4e432ff8 <Address 0x4e432ff8 out of
bounds>, s2=0x4e41cff8 "Sans") at ../sysdeps/generic/strcasecmp.c:64
#1  0x407653b6 in g_strcasecmp (s1=0x4e432ff8 <Address 0x4e432ff8 out of
bounds>, s2=0x4e41cff8 "Sans") at gstrfuncs.c:1300
#2  0x40512ff6 in pango_font_description_equal (desc1=0xbfffbc90,
desc2=0xbfffbbe0) at fonts.c:92
#3  0x40517aaa in add_engines (context=0x4e410fe4, text=0x4e422ffc "Ga",
start_index=0, length=2, attrs=0x4cf94ff4, cached_iter=0x4e424ff0, 
    n_chars=2, analyses=0x4e42efd0) at pango-context.c:946
#4  0x40517184 in pango_itemize (context=0x4e410fe4, text=0x4e422ffc "Ga",
start_index=0, length=2, attrs=0x4cf94ff4, cached_iter=0x4e424ff0)
    at pango-context.c:566
#5  0x4051c692 in pango_layout_check_lines (layout=0x4e420fb8) at
pango-layout.c:2847
#6  0x4051b213 in pango_layout_get_extents_internal (layout=0x4e420fb8,
ink_rect=0x0, logical_rect=0xbfffbea0, line_extents=0x0)
    at pango-layout.c:1897
#7  0x4051b466 in pango_layout_get_extents (layout=0x4e420fb8,
ink_rect=0x0, logical_rect=0xbfffbea0) at pango-layout.c:2021
#8  0x401d10ac in gtk_label_ensure_layout (label=0x4cf66f7c,
widthp=0xbfffbee4, heightp=0xbfffbee8) at gtklabel.c:1269
#9  0x401d11cd in gtk_label_size_request (widget=0x4cf66f7c,
requisition=0x4cf66f98) at gtklabel.c:1294
#10 0x40160108 in gtk_accel_label_size_request (widget=0x4cf66f7c,
requisition=0x4cf66f98) at gtkaccellabel.c:272
#11 0x40616c8d in g_cclosure_marshal_VOID__BOXED (closure=0x41f37ff0,
return_value=0x0, n_param_values=2, param_values=0xbfffc240, 
    invocation_hint=0xbfffc140, marshal_data=0x40160020) at gmarshal.c:521
#12 0x406033bf in g_type_class_meta_marshal (closure=0x41f37ff0,
return_value=0x0, n_param_values=2, param_values=0xbfffc240, 
    invocation_hint=0xbfffc140, marshal_data=0x5c) at gclosure.c:513
#13 0x40602fc2 in g_closure_invoke (closure=0x41f37ff0, return_value=0x0,
n_param_values=2, param_values=0xbfffc240, invocation_hint=0xbfffc140)
    at gclosure.c:436
#14 0x40614fa4 in signal_emit_unlocked_R (node=0x41f41fd8, detail=0,
instance=0x4cf66f7c, emission_return=0x0, instance_and_params=0xbfffc240)
    at gsignal.c:2051


	It looks to me as if as we do pango-context.c (add_engines)

	      !pango_font_description_equal (&current_desc, &next_desc))
	    {
	      current_desc = next_desc;

	      font_set_load (&current_fonts, context, language,&current_desc);
	    }

	That the current_desc->font_family is setup to point to the result
of a call to pango_font_describe on a font that is released by
font_set_load via: font_set_free, resulting in an invalid pointer being
carried around in current_desc.

	Quite how to fix is beyond me; perhaps carrying a reference to the
master font around in a PangoFontDescription ? perhaps copying the family.

	What do you think ?

		Michael.

-- 
 mmeeks gnu org  <><, Pseudo Engineer, itinerant idiot





[Date Prev][Date Next]   [Thread Prev][Thread Next]   [Thread Index] [Date Index] [Author Index]