Re: GTK 2.16 assertion `GTK_IS_TEXT_LAYOUT (layout)' failed



> Is this due to mistake in my code or is it a GTK bug?

Try it with the same GTK+ and GLib versions on Linux, too... (with
builds of GTK+ and GLib that do check assertions).

If you get no warning on Linux, please file a bug.

When clicking the button, gtk_text_layout_set_preedit_string  is first
called once correctly. Stack trace:

#0  gtk_text_layout_set_preedit_string (layout=0x124d060,
preedit_string=0x12c4e18 "",
    preedit_attrs=0x12b6550, cursor_pos=0) at gtktextlayout.c:563
#1  0x023a2e9a in gtk_text_view_preedit_changed_handler
(context=0x11deac8, text_view=0x1252040)
    at gtktextview.c:7319
#2  0x009ea52d in g_cclosure_marshal_VOID__VOID (closure=0x1264d70,
return_value=0x0,
    n_param_values=1, param_values=0x12b7030,
invocation_hint=0x21e250, marshal_data=0x0)
    at gmarshal.c:77
#3  0x009d44a5 in g_closure_invoke (closure=0x1264d70,
return_value=0x0, n_param_values=1,
    param_values=0x12b7030, invocation_hint=0x21e250) at gclosure.c:767
#4  0x009e9bbb in signal_emit_unlocked_R (node=0x1264b20, detail=0,
instance=0x11deac8,
    emission_return=0x0, instance_and_params=0x12b7030) at gsignal.c:3247
#5  0x009e8fe1 in g_signal_emit_valist (instance=0x11deac8,
signal_id=113, detail=0,
    var_args=0x21e420 "") at gsignal.c:2980
#6  0x009e93eb in g_signal_emit_by_name (instance=0x11deac8,
    detailed_signal=0x253d6b0 "preedit-changed") at gsignal.c:3074
#7  0x0229d5f9 in gtk_im_multicontext_set_slave
(multicontext=0x11deac8, slave=0x0, finalizing=0)
    at gtkimmulticontext.c:220
#8  0x0229d707 in gtk_im_multicontext_set_client_window
(context=0x11deac8, window=0x0)
    at gtkimmulticontext.c:267
#9  0x022997c0 in gtk_im_context_set_client_window (context=0x11deac8,
window=0x0)
    at gtkimcontext.c:417
#10 0x023a4774 in text_window_unrealize (win=0x1264df0) at gtktextview.c:7976
#11 0x0239c329 in gtk_text_view_unrealize (widget=0x1252040) at
gtktextview.c:3867
#12 0x009ea52d in g_cclosure_marshal_VOID__VOID (closure=0x123f008,
return_value=0x0,
    n_param_values=1, param_values=0x12b7018,
invocation_hint=0x21e680, marshal_data=0x239c284)
    at gmarshal.c:77
#13 0x009d4767 in g_type_class_meta_marshal (closure=0x123f008,
return_value=0x0,
    n_param_values=1, param_values=0x12b7018,
invocation_hint=0x21e680, marshal_data=0x78)
    at gclosure.c:878
#14 0x009d44a5 in g_closure_invoke (closure=0x123f008,
return_value=0x0, n_param_values=1,
    param_values=0x12b7018, invocation_hint=0x21e680) at gclosure.c:767
#15 0x009e9d99 in signal_emit_unlocked_R (node=0x123f050, detail=0,
instance=0x1252040,
    emission_return=0x0, instance_and_params=0x12b7018) at gsignal.c:3285
#16 0x009e8fe1 in g_signal_emit_valist (instance=0x1252040,
signal_id=13, detail=0,
    var_args=0x21e834 "\001") at gsignal.c:2980
#17 0x009e92b9 in g_signal_emit (instance=0x1252040, signal_id=13,
detail=0) at gsignal.c:3037
#18 0x0240dfdd in gtk_widget_unrealize (widget=0x1252040) at gtkwidget.c:3373
#19 0x0240ce36 in gtk_widget_unparent (widget=0x1252040) at gtkwidget.c:2901
#20 0x021d30b7 in gtk_box_remove (container=0x124d008,
widget=0x1252040) at gtkbox.c:1213
#21 0x009eb023 in g_cclosure_marshal_VOID__OBJECT (closure=0x12434a8,
return_value=0x0,
    n_param_values=2, param_values=0x124be00,
invocation_hint=0x21ea60, marshal_data=0x21d3045)
    at gmarshal.c:636
#22 0x009d4767 in g_type_class_meta_marshal (closure=0x12434a8,
return_value=0x0,
    n_param_values=2, param_values=0x124be00,
invocation_hint=0x21ea60, marshal_data=0x170)
    at gclosure.c:878
#23 0x009d44a5 in g_closure_invoke (closure=0x12434a8,
return_value=0x0, n_param_values=2,
    param_values=0x124be00, invocation_hint=0x21ea60) at gclosure.c:767
#24 0x009e981e in signal_emit_unlocked_R (node=0x12434e8, detail=0,
instance=0x124d008,
    emission_return=0x0, instance_and_params=0x124be00) at gsignal.c:3177
#25 0x009e8fe1 in g_signal_emit_valist (instance=0x124d008,
signal_id=77, detail=0,
    var_args=0x21ec18 "\b╨$\001\001") at gsignal.c:2980
#26 0x009e92b9 in g_signal_emit (instance=0x124d008, signal_id=77,
detail=0) at gsignal.c:3037
#27 0x022111f6 in gtk_container_remove (container=0x124d008, widget=0x1252040)
    at gtkcontainer.c:1233
#28 0x01517457 in init_gtk () from
c:\opt\python\lib\site-packages\gtk-2.0\gtk\_gtk.pyd
#29 0x1e08e14b in python25!PyCFunction_Call () from
C:\WINDOWS\system32\python25.dll

However, it is then later called again, with a NULL layout:

#0  gtk_text_layout_set_preedit_string (layout=0x0, preedit_string=0x12be718 "",
    preedit_attrs=0x12b6520, cursor_pos=0) at gtktextlayout.c:563
#1  0x023a2e9a in gtk_text_view_preedit_changed_handler
(context=0x11deac8, text_view=0x1252040)
    at gtktextview.c:7319
#2  0x009ea52d in g_cclosure_marshal_VOID__VOID (closure=0x1264d70,
return_value=0x0,
    n_param_values=1, param_values=0x12b7078,
invocation_hint=0x21e4c0, marshal_data=0x0)
    at gmarshal.c:77
#3  0x009d44a5 in g_closure_invoke (closure=0x1264d70,
return_value=0x0, n_param_values=1,
    param_values=0x12b7078, invocation_hint=0x21e4c0) at gclosure.c:767
#4  0x009e9bbb in signal_emit_unlocked_R (node=0x1264b20, detail=0,
instance=0x11deac8,
    emission_return=0x0, instance_and_params=0x12b7078) at gsignal.c:3247
#5  0x009e8fe1 in g_signal_emit_valist (instance=0x11deac8,
signal_id=113, detail=0,
    var_args=0x21e690 "") at gsignal.c:2980
#6  0x009e93eb in g_signal_emit_by_name (instance=0x11deac8,
    detailed_signal=0x253d6b0 "preedit-changed") at gsignal.c:3074
#7  0x0229d5f9 in gtk_im_multicontext_set_slave
(multicontext=0x11deac8, slave=0x0, finalizing=0)
    at gtkimmulticontext.c:220
#8  0x0229d707 in gtk_im_multicontext_set_client_window
(context=0x11deac8, window=0x11da138)
    at gtkimmulticontext.c:267
#9  0x022997c0 in gtk_im_context_set_client_window (context=0x11deac8,
window=0x11da138)
    at gtkimcontext.c:417
#10 0x023a4645 in text_window_realize (win=0x1264df0,
widget=0x1252040) at gtktextview.c:7949
#11 0x0239c15c in gtk_text_view_realize (widget=0x1252040) at gtktextview.c:3808
#12 0x009ea52d in g_cclosure_marshal_VOID__VOID (closure=0x123ef58,
return_value=0x0,
    n_param_values=1, param_values=0x12b7060,
invocation_hint=0x21e9b0, marshal_data=0x239c01d)
    at gmarshal.c:77
#13 0x009d4767 in g_type_class_meta_marshal (closure=0x123ef58,
return_value=0x0,
    n_param_values=1, param_values=0x12b7060,
invocation_hint=0x21e9b0, marshal_data=0x74)
    at gclosure.c:878
#14 0x009d44a5 in g_closure_invoke (closure=0x123ef58,
return_value=0x0, n_param_values=1,
    param_values=0x12b7060, invocation_hint=0x21e9b0) at gclosure.c:767
#15 0x009e981e in signal_emit_unlocked_R (node=0x123ef98, detail=0,
instance=0x1252040,
    emission_return=0x0, instance_and_params=0x12b7060) at gsignal.c:3177
#16 0x009e8fe1 in g_signal_emit_valist (instance=0x1252040,
signal_id=12, detail=0,
    var_args=0x21eb64 "\001") at gsignal.c:2980
#17 0x009e92b9 in g_signal_emit (instance=0x1252040, signal_id=12,
detail=0) at gsignal.c:3037
#18 0x0240dd4a in gtk_widget_realize (widget=0x1252040) at gtkwidget.c:3322
#19 0x02412698 in gtk_widget_set_parent (widget=0x1252040,
parent=0x124d008) at gtkwidget.c:5624
#20 0x021d23ba in gtk_box_pack (box=0x124d008, child=0x1252040,
expand=1, fill=1, padding=0,
    pack_type=GTK_PACK_START) at gtkbox.c:755
#21 0x021d24b2 in gtk_box_pack_start (box=0x124d008, child=0x1252040,
expand=1, fill=1, padding=0)
    at gtkbox.c:818
#22 0x015325fd in init_gtk () from
c:\opt\python\lib\site-packages\gtk-2.0\gtk\_gtk.pyd
#23 0x1e08e14b in python25!PyCFunction_Call () from
C:\WINDOWS\system32\python25.dll
#24 0x00000000 in ?? ()

If you file a bug, please include these stack traces.

--tml


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