Undo crash after applying roughen LPE to clone
Summary:
Inkscape crashes when undoing after applying a roughen LPE to a clone.
Steps to reproduce:
- Create an ellipse
- Clone it
- Add a roughen LPE to the clone
- Undo
- Undo
What happened?
Crash on step 5 due to an assertion failure, with backtrace
6# g_assertion_message_expr
7# Inkscape::XML::SimpleNode::removeChild(Inkscape::XML::Node*)
8# 0x00007F1A73830919
9# Inkscape::XML::EventAdd::_undoOne(Inkscape::XML::NodeObserver&) const
10# Inkscape::XML::undo_log_to_observer(Inkscape::XML::Event const*, Inkscape::XML::NodeObserver&)
11# sp_repr_undo_log(Inkscape::XML::Event*)
12# Inkscape::DocumentUndo::undo(SPDocument*)
13# undo(SPDocument*)
This isn't very revealing; whatever went wrong probably happened earlier.
Version info
Custom build based on inkscape@294db481 (with extra commits, but these shouldn't make a difference), on Arch Linux.
Notes
- Found while testing inkscape#4284 (closed).
- A similar-looking bug is inkscape#1408, but I couldn't reproduce that, and the backtraces differ.
- Doesn't seem to depend on dialogs state.
- This crash is an assertion failure, and assertions are disabled in non-debug builds, so be sure to test with a debug build. Or else the crash will probably be non-deterministic, occur later, and have a different backtrace.