Comment 1 for bug 456503

Revision history for this message
Alexandre Prokoudine (alexandre-prokoudine) wrote :

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=@0x7fff88841da0, sb=@0x7fff888421c8, sz=<value optimized out>) at ./2geom/sbasis.h:75
#1 0x0000000000a8ab4d in Geom::sbasis_to_bezier (bz=@0x7fff88841ff0, sb=@0x7fff888421b0, sz=4)
    at 2geom/sbasis-to-bezier.cpp:164
#2 0x0000000000a8ae0a in Geom::build_from_sbasis (pb=@0x7fff88842140, B=@0x7fff888421b0, tol=0.01,
    only_cubicbeziers=<value optimized out>) at 2geom/sbasis-to-bezier.cpp:351
#3 0x0000000000a8ba05 in Geom::path_from_piecewise (B=@0x7fff888424c0, tol=0.01, only_cubicbeziers=200)
    at 2geom/sbasis-to-bezier.cpp:406
#4 0x000000000064b16a in Inkscape::LivePathEffect::Effect::doEffect_path (this=0xbe95a20, path_in=@0x7fff888425f0)
    at live_effects/effect.cpp:399
#5 0x000000000064a463 in Inkscape::LivePathEffect::Effect::doEffect (this=0xbe95a20, curve=0xa89a580)
    at live_effects/effect.cpp:371
#6 0x00000000004cce6a in sp_lpe_item_perform_path_effect (lpeitem=0x9d61dc0, curve=0xa89a580) at sp-lpe-item.cpp:342
#7 0x00000000004c4224 in sp_group_perform_patheffect (group=<value optimized out>, topgroup=0x9d61dc0, write=true)
    at sp-item-group.cpp:880
#8 0x00000000004cd313 in sp_lpe_item_update_patheffect (lpeitem=0xbe005a0, wholetree=true, write=false) at sp-lpe-item.cpp:405
#9 0x00000000004db336 in sp_path_set_original_curve (path=0xbe005a0, curve=0x0, owner=1, write=200) at sp-path.cpp:468
#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_repr_attr_changed (key=0x2d95c40 "inkscape:original-d", is_interactive=false,
    data=<value optimized out>) at sp-object.cpp:1084
#12 0x000000000096dca8 in Inkscape::XML::CompositeNodeObserver::notifyAttributeChanged (this=0x957b150, node=@0x957b1d0,
    name=3040, old_value=<value optimized out>, new_value=<value optimized out>) at xml/composite-node-observer.cpp:94
#13 0x000000000071d2ab in Inkscape::XML::SimpleNode::setAttribute (this=0x957b100, name=<value optimized out>,
    value=<value optimized out>) at xml/simple-node.cpp:356
#14 0x000000000071dba4 in Inkscape::XML::undo_log_to_observer (log=<value optimized out>, observer=@0xfd6190)
    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-undo.cpp:267
#17 0x000000000080424f in Inkscape::UI::Dialog::UndoHistory::_onListSelectionChange (this=0xbe1b3e0)
    at ui/dialog/undo-history.cpp:251
#18 0x00007fdb7f290202 in Glib::SignalProxyNormal::slot0_void_callback () from /usr/lib/libglibmm-2.4.so.1
#19 0x00007fdb7c77225d in g_closure_invoke () from /usr/lib/libgobject-2.0.so.0
#20 0x00007fdb7c78846e in ?? () from /usr/lib/libgobject-2.0.so.0
#21 0x00007fdb7c789608 in g_signal_emit_valist () from /usr/lib/libgobject-2.0.so.0
#22 0x00007fdb7c789b33 in g_signal_emit () from /usr/lib/libgobject-2.0.so.0
#23 0x00007fdb7e4e66f1 in ?? () from /usr/lib/libgtk-x11-2.0.so.0
#24 0x00007fdb7e4ef65f in ?? () from /usr/lib/libgtk-x11-2.0.so.0
#25 0x00007fdb7e3fd908 in ?? () from /usr/lib/libgtk-x11-2.0.so.0
#26 0x00007fdb7c77225d in g_closure_invoke () from /usr/lib/libgobject-2.0.so.0
#27 0x00007fdb7c787c3b in ?? () from /usr/lib/libgobject-2.0.so.0
#28 0x00007fdb7c78948a in g_signal_emit_valist () from /usr/lib/libgobject-2.0.so.0
#29 0x00007fdb7c789b33 in g_signal_emit () from /usr/lib/libgobject-2.0.so.0
#30 0x00007fdb7e50074e in ?? () from /usr/lib/libgtk-x11-2.0.so.0
#31 0x00007fdb7e3f6273 in gtk_propagate_event () from /usr/lib/libgtk-x11-2.0.so.0
#32 0x00007fdb7e3f7393 in gtk_main_do_event () from /usr/lib/libgtk-x11-2.0.so.0
#33 0x00007fdb7e07a06c in ?? () from /usr/lib/libgdk-x11-2.0.so.0
#34 0x00007fdb7bec7d3b in g_main_context_dispatch () from /usr/lib/libglib-2.0.so.0
#35 0x00007fdb7becb50d in ?? () from /usr/lib/libglib-2.0.so.0
#36 0x00007fdb7becba3d in g_main_loop_run () from /usr/lib/libglib-2.0.so.0
#37 0x00007fdb7e3f77a7 in gtk_main () from /usr/lib/libgtk-x11-2.0.so.0
#38 0x0000000000453cf9 in sp_main_gui (argc=1, argv=0x7fff88843d08) at main.cpp:949
#39 0x000000000045327e in main (argc=1, argv=0x7fff88843d08) at main.cpp:685