Undo LPE editing in node tool crashes
Affects | Status | Importance | Assigned to | Milestone | |
---|---|---|---|---|---|
Inkscape |
Fix Released
|
High
|
Jabiertxof |
Bug Description
1. Start Inkscape
2. Open history dialog (ctrl+shift+L), open LPE dialog (ctrl+shift+&)
3. Draw freehand shape (without spiro, shape: none)
4. Add LPE Bend
5. Click "edit on-canvas" button for the bend path
6. Change the bend path a bit by dragging it
7. In the history dialog, click "draw path" (2 steps back) ==> a knot appears at the top-left of the document page. Shouldn't be there!
8. In the history dialog, click "drag curve" (2 steps forward again) ==> crash
Backtrace in GDB:
(inkscape.
Program received signal SIGSEGV, Segmentation fault.
0x009f2a93 in Inkscape:
(gdb) bt
#0 0x009f2a93 in Inkscape:
#1 0x009f33d8 in Inkscape:
#2 0x009aedac in Inkscape:
#3 0x00615bb6 in Inkscape:
#4 0x00629ecd in Inkscape:
#5 0x0062a55c in Inkscape:
#6 0x0062ad7f in sp_repr_replay_log ()
#7 0x0051f9d8 in sp_document_redo ()
#8 0x007ad97a in Inkscape:
#9 0x664d7412 in Glib::SignalPro
#10 0x63a44124 in g_closure_invoke () from D:\inkscape\
#11 0x63a57c7a in signal_
Inkscape version 0.47+dev r9199. Windows XP
Related branches
Changed in inkscape: | |
assignee: | nobody → Krzysztof Kosinski (tweenk) |
status: | New → In Progress |
tags: | added: undo |
Changed in inkscape: | |
assignee: | Krzysztof Kosinski (tweenk) → Jabiertxof (jabiertxof) |
milestone: | none → 0.92 |
status: | Triaged → In Progress |
Changed in inkscape: | |
status: | Fix Committed → Fix Released |
The fundamental cause of this crash is a design error: there is no common superclass for SPPath and LivePathEffectO bject, and it's not possible to access the LPEObject from the SP tree.
During undo, the selection modification signal doesn't get called, and neither does the LivePathEffectO bject deletion signal. At the moment I have no idea how to fix this short of rewriting a significant portion of the SP tree related to LPEs, but maybe I'll find some way.