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

Reply via email to