Undo crash and von Koch LPE
Affects | Status | Importance | Assigned to | Milestone | |
---|---|---|---|---|---|
Inkscape |
Fix Released
|
High
|
Jabiertxof |
Bug Description
When I try to undo changing fill for a color stop of a gradient that is applied to an object with von Koch LPE, Inkscape crashes. Here is the backtrace from gdb:
** (inkscape:1318): CRITICAL **: virtual void Inkscape:
** (inkscape:1318): CRITICAL **: virtual void Inkscape:
** (inkscape:1318): CRITICAL **: virtual void Inkscape:
**
gtkmm:ERROR:
Program received signal SIGABRT, Aborted.
[Switching to Thread 0x7f0a868297c0 (LWP 1318)]
0x00007f0a7e358fd5 in raise () from /lib/libc.so.6
(gdb) bt
#0 0x00007f0a7e358fd5 in raise () from /lib/libc.so.6
#1 0x00007f0a7e35ab43 in abort () from /lib/libc.so.6
#2 0x00007f0a81f1bd43 in g_assertion_message () from /usr/lib/
#3 0x00007f0a81f1c1e2 in g_assertion_
#4 0x00007f0a86326c2e in Gtk::TreeRow:
#5 0x00000000008043b7 in Inkscape:
#6 0x00007f0a852be202 in Glib::SignalPro
#7 0x00007f0a827a025d in g_closure_invoke () from /usr/lib/
#8 0x00007f0a827b646e in ?? () from /usr/lib/
#9 0x00007f0a827b7608 in g_signal_
#10 0x00007f0a827b7b33 in g_signal_emit () from /usr/lib/
#11 0x00007f0a845146f1 in ?? () from /usr/lib/
#12 0x00007f0a8451d65f in ?? () from /usr/lib/
#13 0x00007f0a8442b908 in ?? () from /usr/lib/
#14 0x00007f0a827a025d in g_closure_invoke () from /usr/lib/
#15 0x00007f0a827b5c3b in ?? () from /usr/lib/
#16 0x00007f0a827b748a in g_signal_
#17 0x00007f0a827b7b33 in g_signal_emit () from /usr/lib/
#18 0x00007f0a8452e74e in ?? () from /usr/lib/
#19 0x00007f0a84424273 in gtk_propagate_event () from /usr/lib/
#20 0x00007f0a84425393 in gtk_main_do_event () from /usr/lib/
#21 0x00007f0a840a806c in ?? () from /usr/lib/
#22 0x00007f0a81ef5d3b in g_main_
#23 0x00007f0a81ef950d in ?? () from /usr/lib/
#24 0x00007f0a81ef9a3d in g_main_loop_run () from /usr/lib/
#25 0x00007f0a844257a7 in gtk_main () from /usr/lib/
#26 0x0000000000453cf9 in sp_main_gui (argc=1, argv=0x7fff8e87
#27 0x000000000045327e in main (argc=1, argv=0x7fff8e87
The bug is 100% reproducible on Ubuntu 8.10 with SVN checkout from 19th of October 2009.
Related branches
tags: | added: livepatheffects undo |
Changed in inkscape: | |
assignee: | nobody → Jabiertxof (jabiertxof) |
milestone: | none → 0.92 |
Changed in inkscape: | |
status: | Fix Committed → Fix Released |
I do have a suspicion that it is a general undo bug for LPEs. Here is a backtrace from gdb for a crash when you try to undo an envelope deformation LPE:
#0 Geom::sbasis_ to_bezier (bz=@0x7fff8884 1da0, sb=@0x7fff888421c8, sz=<value optimized out>) at ./2geom/sbasis.h:75 to_bezier (bz=@0x7fff8884 1ff0, sb=@0x7fff888421b0, sz=4) to-bezier. cpp:164 from_sbasis (pb=@0x7fff8884 2140, B=@0x7fff888421b0, tol=0.01, cubicbeziers= <value optimized out>) at 2geom/sbasis- to-bezier. cpp:351 from_piecewise (B=@0x7fff888424c0, tol=0.01, only_cubicbezie rs=200) to-bezier. cpp:406 :LivePathEffect ::Effect: :doEffect_ path (this=0xbe95a20, path_in= @0x7fff888425f0 ) effect. cpp:399 :LivePathEffect ::Effect: :doEffect (this=0xbe95a20, curve=0xa89a580) effect. cpp:371 item_perform_ path_effect (lpeitem=0x9d61dc0, curve=0xa89a580) at sp-lpe-item.cpp:342 perform_ patheffect (group=<value optimized out>, topgroup=0x9d61dc0, write=true) group.cpp: 880 item_update_ patheffect (lpeitem=0xbe005a0, wholetree=true, write=false) at sp-lpe-item.cpp:405 set_original_ curve (path=0xbe005a0, curve=0x0, owner=1, write=200) at sp-path.cpp:468 repr_attr_ changed (key=0x2d95c40 "inkscape: original- d", is_interactive= false, :XML::Composite NodeObserver: :notifyAttribut eChanged (this=0x957b150, node=@0x957b1d0, node-observer. cpp:94 :XML::SimpleNod e::setAttribute (this=0x957b100, name=<value optimized out>, node.cpp: 356 :XML::undo_ log_to_ observer (log=<value optimized out>, observer=@0xfd6190) undo.cpp: 267 :UI::Dialog: :UndoHistory: :_onListSelecti onChange (this=0xbe1b3e0) undo-history. cpp:251 xyNormal: :slot0_ void_callback () from /usr/lib/ libglibmm- 2.4.so. 1 libgobject- 2.0.so. 0 libgobject- 2.0.so. 0 emit_valist () from /usr/lib/ libgobject- 2.0.so. 0 libgobject- 2.0.so. 0
#1 0x0000000000a8ab4d in Geom::sbasis_
at 2geom/sbasis-
#2 0x0000000000a8ae0a in Geom::build_
only_
#3 0x0000000000a8ba05 in Geom::path_
at 2geom/sbasis-
#4 0x000000000064b16a in Inkscape:
at live_effects/
#5 0x000000000064a463 in Inkscape:
at live_effects/
#6 0x00000000004cce6a in sp_lpe_
#7 0x00000000004c4224 in sp_group_
at sp-item-
#8 0x00000000004cd313 in sp_lpe_
#9 0x00000000004db336 in sp_path_
#10 0x00000000004dc64e in sp_path_set (object=0xbe005a0, key=<value optimized out>, value=<value optimized out>)
at sp-path.cpp:273
#11 0x00000000004d425a in sp_object_
data=<value optimized out>) at sp-object.cpp:1084
#12 0x000000000096dca8 in Inkscape:
name=3040, old_value=<value optimized out>, new_value=<value optimized out>) at xml/composite-
#13 0x000000000071d2ab in Inkscape:
value=<value optimized out>) at xml/simple-
#14 0x000000000071dba4 in Inkscape:
at xml/event.h:105
---Type <return> to continue, or q <return> to quit---
#15 0x000000000071ea60 in sp_repr_undo_log (log=0x9592700) at xml/event.cpp:148
#16 0x000000000045d8dd in sp_document_undo (doc=0x1bbdf00) at document-
#17 0x000000000080424f in Inkscape:
at ui/dialog/
#18 0x00007fdb7f290202 in Glib::SignalPro
#19 0x00007fdb7c77225d in g_closure_invoke () from /usr/lib/
#20 0x00007fdb7c78846e in ?? () from /usr/lib/
#21 0x00007fdb7c789608 in g_signal_
#22 0x00007fdb7c789b33 in g_signal_emit () from /usr/lib/
#23 0x00007fdb7e4e66f1 in ?? () from /usr/lib/lib...