The following simple script generates an assertion error at line 1721 of
gtktextiter.c (the environment is Mandrake 8.0, Python 2.1.1a1, Gtk 1.3.5,
and a slightly modifed version of the 20010408 PyGtk snapshot - not modified
in any of the TextView/TextBuffer areas I don't think):
import gtk
def focusin(*args):
buf = tview.get_buffer()
start = buf.get_iter_at_offset(buf.get_char_count())
buf.insert(start, "focus_in")
end = buf.get_iter_at_offset(buf.get_char_count())
tag = buf.create_tag("help")
buf.apply_tag(tag, start, end)
window = gtk.GtkWindow()
tview = gtk.GtkTextView()
tview.connect("focus_in_event", focusin)
window.add(tview)
window.show_all()
gtk.mainloop()
If I examine the relevant values in frame 4 where the assertion fails, I
find that new_line is NULL and that real->line_char_offset and
real->line_byte_offset are both 1. If I comment out the last two lines of
focusin, I get no errors, but the string "focus_in" isn't visible through
the TextView widget either. In a version of this script that was supposed
to be a more-or-less actual script, new_line had the value 0xffffff (even
though the if test that landed execution at line 1711 failed), which led
Havoc to suggest that the stack was getting trashed.
Before I file a Gtk bug report, can someone tell if I'm doing something
obviously wrong or reproduce the error I'm seeing?
For completeness, the gdb backtrace on my Linux machine is
#0 0x400932d1 in kill () from /lib/libc.so.6
#1 0x4002e13b in raise (sig=5) at signals.c:65
#2 0x40207b08 in g_logv (log_domain=0x404fee49 "Gtk",
log_level=G_LOG_LEVEL_ERROR,
format=0x404ff0e0 "file %s: line %d (%s): assertion failed: (%s)",
args1=0xbfffd32c) at gmessages.c:432
#3 0x40207bc6 in g_log (log_domain=0x404fee49 "Gtk",
log_level=G_LOG_LEVEL_ERROR,
format=0x404ff0e0 "file %s: line %d (%s): assertion failed: (%s)")
at gmessages.c:462
#4 0x4045124b in forward_line_leaving_caches_unmodified (real=0xbfffd450)
at gtktextiter.c:1711
#5 0x4045188b in _gtk_text_iter_forward_indexable_segment (iter=0xbfffd450)
at gtktextiter.c:1903
#6 0x404541fd in gtk_text_iter_forward_to_tag_toggle (iter=0xbfffd450,
tag=0x81ff6f0) at gtktextiter.c:3661
#7 0x4043c57f in _gtk_text_btree_tag (start_orig=0x81ff6b0,
end_orig=0x82514c8, tag=0x81ff6f0, add=1) at gtktextbtree.c:1617
#8 0x40448fb3 in gtk_text_buffer_real_apply_tag (buffer=0x82073a8,
tag=0x81ff6f0, start=0x81ff6b0, end=0x82514c8) at gtktextbuffer.c:1939
#9 0x4040f1cb in gtk_marshal_VOID__OBJECT_BOXED_BOXED (closure=0x820dac8,
return_value=0x0, n_param_values=4, param_values=0xbfffd800,
invocation_hint=0xbfffd700, marshal_data=0x40448f90) at gtkmarshal.c:1147
#10 0x401ba7fa in g_type_class_meta_marshal (closure=0x820dac8,
return_value=0x0, n_param_values=4, param_values=0xbfffd800,
invocation_hint=0xbfffd700, marshal_data=0x50) at gclosure.c:513
#11 0x401ba3a3 in g_closure_invoke (closure=0x820dac8, return_value=0x0,
n_param_values=4, param_values=0xbfffd800, invocation_hint=0xbfffd700)
at gclosure.c:436
#12 0x401cc91b in signal_emit_R (node=0x820db10, detail=0, instance=0x82073a8,
emission_return=0x0, instance_and_params=0xbfffd800) at gsignal.c:2049
#13 0x401cad42 in g_signal_emit_valist (instance=0x82073a8, signal_id=94,
detail=0, var_args=0xbfffda98) at gsignal.c:1783
#14 0x401cb076 in g_signal_emit (instance=0x82073a8, signal_id=94, detail=0)
at gsignal.c:1824
#15 0x404490d9 in gtk_text_buffer_emit_tag (buffer=0x82073a8, tag=0x81ff6f0,
apply=1, start=0x824d9f8, end=0x824d960) at gtktextbuffer.c:1972
#16 0x40449286 in gtk_text_buffer_apply_tag (buffer=0x82073a8, tag=0x81ff6f0,
start=0x824d9f8, end=0x824d960) at gtktextbuffer.c:2005
#17 0x40276aa7 in _wrap_gtk_text_buffer_apply_tag (self=0x824dce8,
args=0x8176734, kwargs=0x0) at gtk.c:6116
#18 0x40197954 in call_cmethod (self=0x820c690, inst=0x824dce8,
args=0x8176734, kw=0x0) at ExtensionClass.c:457
#19 0x40197b7d in CMethod_call (self=0x820c690, args=0x8176734, kw=0x0)
at ExtensionClass.c:521
#20 0x0805c518 in call_object (func=0x820c690, arg=0x8176734, kw=0x0)
at ../Python/ceval.c:2807
#21 0x0805d021 in do_call (func=0x820c690, pp_stack=0xbfffdd14, na=3, nk=0)
at ../Python/ceval.c:3116
#22 0x0805a773 in eval_code2 (co=0x8155eb8, globals=0x80efaf4, locals=0x0,
args=0x824dcd8, argcount=2, kws=0x0, kwcount=0, defs=0x0, defcount=0,
closure=0x0) at ../Python/ceval.c:1969
#23 0x0805ca9b in call_eval_code2 (func=0x8155b3c, arg=0x824dccc, kw=0x0)
at ../Python/ceval.c:2959
#24 0x0805c45d in call_object (func=0x8155b3c, arg=0x824dccc, kw=0x0)
at ../Python/ceval.c:2799
#25 0x0805c281 in PyEval_CallObjectWithKeywords (func=0x8155b3c,
arg=0x824dccc, kw=0x0) at ../Python/ceval.c:2734
#26 0x0808e611 in PyObject_CallObject (o=0x8155b3c, a=0x824dccc)
at ../Objects/abstract.c:1529
#27 0x4001a16c in pyg_closure_marshal (closure=0x820c6b8,
return_value=0xbfffdf80, n_param_values=2, param_values=0xbfffe0b0,
invocation_hint=0xbfffdfb0, marshal_data=0x0) at gobjectmodule.c:612
#28 0x401ba3a3 in g_closure_invoke (closure=0x820c6b8,
return_value=0xbfffdf80, n_param_values=2, param_values=0xbfffe0b0,
invocation_hint=0xbfffdfb0) at gclosure.c:436
#29 0x401cc511 in signal_emit_R (node=0x81f8f38, detail=0, instance=0x820bca8,
emission_return=0xbfffe040, instance_and_params=0xbfffe0b0)
at gsignal.c:2012
#30 0x401cada2 in g_signal_emit_valist (instance=0x820bca8, signal_id=34,
detail=0, var_args=0xbfffe33c) at gsignal.c:1790
#31 0x40410cd6 in gtk_signal_emit (object=0x820bca8, signal_id=34)
at gtksignal.c:444
#32 0x404b707a in gtk_widget_event_internal (widget=0x820bca8,
event=0xbfffe3a0) at gtkwidget.c:2705
#33 0x404b6b80 in gtk_widget_event (widget=0x820bca8, event=0xbfffe3a0)
at gtkwidget.c:2560
#34 0x404c6ffd in gtk_window_real_set_focus (window=0x81fc8b8, focus=0x820bca8)
at gtkwindow.c:2492
#35 0x401cdea9 in g_cclosure_marshal_VOID__OBJECT (closure=0x81fbe18,
return_value=0x0, n_param_values=2, param_values=0xbfffe6d0,
invocation_hint=0xbfffe5d0, marshal_data=0x404c6ce0) at gmarshal.c:591
#36 0x401ba7fa in g_type_class_meta_marshal (closure=0x81fbe18,
return_value=0x0, n_param_values=2, param_values=0xbfffe6d0,
invocation_hint=0xbfffe5d0, marshal_data=0x170) at gclosure.c:513
#37 0x401ba3a3 in g_closure_invoke (closure=0x81fbe18, return_value=0x0,
n_param_values=2, param_values=0xbfffe6d0, invocation_hint=0xbfffe5d0)
at gclosure.c:436
#38 0x401cc91b in signal_emit_R (node=0x81fbfd0, detail=0, instance=0x81fc8b8,
emission_return=0x0, instance_and_params=0xbfffe6d0) at gsignal.c:2049
#39 0x401cad42 in g_signal_emit_valist (instance=0x81fc8b8, signal_id=64,
detail=0, var_args=0xbfffe95c) at gsignal.c:1783
#40 0x40410cd6 in gtk_signal_emit (object=0x81fc8b8, signal_id=64)
at gtksignal.c:444
#41 0x404c19d2 in gtk_window_set_focus (window=0x81fc8b8, focus=0x820bca8)
at gtkwindow.c:835
#42 0x404b80a0 in gtk_widget_real_grab_focus (focus_widget=0x820bca8)
at gtkwidget.c:3037
#43 0x401cd2c1 in g_cclosure_marshal_VOID__VOID (closure=0x81f8260,
return_value=0x0, n_param_values=1, param_values=0xbfffecb0,
invocation_hint=0xbfffebb0, marshal_data=0x404b7da0) at gmarshal.c:32
#44 0x401ba7fa in g_type_class_meta_marshal (closure=0x81f8260,
return_value=0x0, n_param_values=1, param_values=0xbfffecb0,
invocation_hint=0xbfffebb0, marshal_data=0x8c) at gclosure.c:513
#45 0x401ba3a3 in g_closure_invoke (closure=0x81f8260, return_value=0x0,
n_param_values=1, param_values=0xbfffecb0, invocation_hint=0xbfffebb0)
at gclosure.c:436
#46 0x401cc91b in signal_emit_R (node=0x81f83c8, detail=0, instance=0x820bca8,
emission_return=0x0, instance_and_params=0xbfffecb0) at gsignal.c:2049
#47 0x401cad42 in g_signal_emit_valist (instance=0x820bca8, signal_id=20,
detail=0, var_args=0xbfffef38) at gsignal.c:1783
#48 0x40410cd6 in gtk_signal_emit (object=0x820bca8, signal_id=20)
at gtksignal.c:444
#49 0x404b7cbe in gtk_widget_grab_focus (widget=0x820bca8) at gtkwidget.c:2953
#50 0x4046a312 in gtk_text_view_button_press_event (widget=0x820bca8,
event=0x824c498) at gtktextview.c:3006
#51 0x4040d164 in gtk_marshal_BOOLEAN__BOXED (closure=0x81f8390,
return_value=0xbffff210, n_param_values=2, param_values=0xbffff340,
invocation_hint=0xbffff240, marshal_data=0x4046a2d0) at gtkmarshal.c:35
#52 0x401ba7fa in g_type_class_meta_marshal (closure=0x81f8390,
return_value=0xbffff210, n_param_values=2, param_values=0xbffff340,
invocation_hint=0xbffff240, marshal_data=0x94) at gclosure.c:513
#53 0x401ba3a3 in g_closure_invoke (closure=0x81f8390,
return_value=0xbffff210, n_param_values=2, param_values=0xbffff340,
invocation_hint=0xbffff240) at gclosure.c:436
#54 0x401cc91b in signal_emit_R (node=0x81f84f8, detail=0, instance=0x820bca8,
emission_return=0xbffff2d0, instance_and_params=0xbffff340)
at gsignal.c:2049
#55 0x401cada2 in g_signal_emit_valist (instance=0x820bca8, signal_id=22,
detail=0, var_args=0xbffff5cc) at gsignal.c:1790
#56 0x40410cd6 in gtk_signal_emit (object=0x820bca8, signal_id=22)
at gtksignal.c:444
#57 0x404b707a in gtk_widget_event_internal (widget=0x820bca8, event=0x824c450)
at gtkwidget.c:2705
#58 0x404b6b80 in gtk_widget_event (widget=0x820bca8, event=0x824c450)
at gtkwidget.c:2560
#59 0x403c19d3 in gtk_propagate_event (widget=0x820bca8, event=0x824c450)
at gtkmain.c:1562
#60 0x403c0544 in gtk_main_do_event (event=0x824c450) at gtkmain.c:900
#61 0x4055c4fa in gdk_event_dispatch (source=0x8170d20, callback=0,
user_data=0x0) at gdkevents-x11.c:1625
#62 0x40201745 in g_main_dispatch (context=0x8170d80) at gmain.c:1578
#63 0x40201ef9 in g_main_context_dispatch (context=0x8170d80) at gmain.c:1938
#64 0x402020b4 in g_main_context_iterate (context=0x8170d80, block=1,
dispatch=1) at gmain.c:2000
#65 0x402025ab in g_main_loop_run (loop=0x824d440) at gmain.c:2203
#66 0x403bfd01 in gtk_main () at gtkmain.c:644
#67 0x402a0a74 in _wrap_gtk_main (self=0x0, args=0x80ef79c) at gtk.c:30797
#68 0x0805c63e in call_cfunction (func=0x8194ff8, arg=0x80ef79c, kw=0x0)
at ../Python/ceval.c:2838
#69 0x0805c48d in call_object (func=0x8194ff8, arg=0x80ef79c, kw=0x0)
at ../Python/ceval.c:2801
#70 0x0805d021 in do_call (func=0x8194ff8, pp_stack=0xbffff944, na=0, nk=0)
at ../Python/ceval.c:3116
#71 0x0805a6b8 in eval_code2 (co=0x8155fc8, globals=0x80efaf4,
locals=0x80efaf4, args=0x0, argcount=0, kws=0x0, kwcount=0, defs=0x0,
defcount=0, closure=0x0) at ../Python/ceval.c:1948
#72 0x080564f5 in PyEval_EvalCode (co=0x8155fc8, globals=0x80efaf4,
locals=0x80efaf4) at ../Python/ceval.c:346
#73 0x08078561 in run_node (n=0x80f9920, filename=0xbffffcc6 "Text_Editor.py",
globals=0x80efaf4, locals=0x80efaf4, flags=0xbffffa94)
at ../Python/pythonrun.c:1045
#74 0x080784fa in run_err_node (n=0x80f9920,
filename=0xbffffcc6 "Text_Editor.py", globals=0x80efaf4, locals=0x80efaf4,
flags=0xbffffa94) at ../Python/pythonrun.c:1032
#75 0x080784ba in PyRun_FileExFlags (fp=0x80eb088,
filename=0xbffffcc6 "Text_Editor.py", start=257, globals=0x80efaf4,
locals=0x80efaf4, closeit=1, flags=0xbffffa94)
at ../Python/pythonrun.c:1023
#76 0x080775c5 in PyRun_SimpleFileExFlags (fp=0x80eb088,
filename=0xbffffcc6 "Text_Editor.py", closeit=1, flags=0xbffffa94)
at ../Python/pythonrun.c:665
#77 0x08076f81 in PyRun_AnyFileExFlags (fp=0x80eb088,
filename=0xbffffcc6 "Text_Editor.py", closeit=1, flags=0xbffffa94)
at ../Python/pythonrun.c:479
#78 0x080521b1 in Py_Main (argc=2, argv=0xbffffb5c) at ../Modules/main.c:320
#79 0x08051b14 in main (argc=2, argv=0xbffffb5c) at ../Modules/python.c:10
#80 0x400821f0 in __libc_start_main () from /lib/libc.so.6
Thanks,
--
Skip Montanaro ([EMAIL PROTECTED])
(847)971-7098
_______________________________________________
pygtk mailing list [EMAIL PROTECTED]
http://www.daa.com.au/mailman/listinfo/pygtk