Copy and Paste with connectors leads to crash (Debug build)
Steps to reproduce:
- Open this file: COPY-GIT-AND-PASTE.svg
- Select the shape under GIT.
- Copy with Ctrl+C and paste Ctrl+V
What happened?
Both 1.3.x and master can replicate the crash. 1.2.x cannot.
Branch->Master Backtrace
Inkscape 1.4-dev (8d2052df67, 2023-08-29)Compile (Run) GLib version: 2.74.6 GTK version: 3.24.37 (3.24.37) glibmm version: 2.66.5 gtkmm version: 3.24.7 libxml2 version: 2.9.14 libxslt version: 1.1.35 Cairo version: 1.16.0 (1.16.0) Pango version: 1.50.12 (1.50.12) HarfBuzz version: 6.0.0 (6.0.0) OS version: Debian GNU/Linux 12 (bookworm)
0# Inkscape::Application::crash_handler(int) at /home/datalot/git-clones/inkscape-auto/src/inkscape.cpp:554 1# 0x00007F80F085AFD0 in /lib/x86_64-linux-gnu/libc.so.6 2# 0x00007F80F08A9D3C in /lib/x86_64-linux-gnu/libc.so.6 3# raise in /lib/x86_64-linux-gnu/libc.so.6 4# abort in /lib/x86_64-linux-gnu/libc.so.6 5# 0x00007F80F0845395 in /lib/x86_64-linux-gnu/libc.so.6 6# 0x00007F80F0853E32 in /lib/x86_64-linux-gnu/libc.so.6 7# Avoid::Router::assignId(unsigned int) at /home/datalot/git-clones/inkscape-auto/src/3rdparty/adaptagrams/libavoid/router.cpp:817 8# Avoid::Obstacle::Obstacle(Avoid::Router*, Avoid::Polygon, unsigned int) at /home/datalot/git-clones/inkscape-auto/src/3rdparty/adaptagrams/libavoid/obstacle.cpp:42 9# Avoid::ShapeRef::ShapeRef(Avoid::Router*, Avoid::Polygon&, unsigned int) at /home/datalot/git-clones/inkscape-auto/src/3rdparty/adaptagrams/libavoid/shape.cpp:40 10# SPAvoidRef::handleSettingChange() at /home/datalot/git-clones/inkscape-auto/src/conn-avoid-ref.cpp:121 11# SPItem::update(SPCtx*, unsigned int) at /home/datalot/git-clones/inkscape-auto/src/object/sp-item.cpp:762 12# SPLPEItem::update(SPCtx*, unsigned int) at /home/datalot/git-clones/inkscape-auto/src/object/sp-lpe-item.cpp:180 13# SPShape::update(SPCtx*, unsigned int) at /home/datalot/git-clones/inkscape-auto/src/object/sp-shape.cpp:130 14# SPRect::update(SPCtx*, unsigned int) at /home/datalot/git-clones/inkscape-auto/src/object/sp-rect.cpp:173 15# SPObject::updateDisplay(SPCtx*, unsigned int) at /home/datalot/git-clones/inkscape-auto/src/object/sp-object.cpp:1479 16# SPGroup::update(SPCtx*, unsigned int) at /home/datalot/git-clones/inkscape-auto/src/object/sp-item-group.cpp:158 17# SPObject::updateDisplay(SPCtx*, unsigned int) at /home/datalot/git-clones/inkscape-auto/src/object/sp-object.cpp:1479 18# SPGroup::update(SPCtx*, unsigned int) at /home/datalot/git-clones/inkscape-auto/src/object/sp-item-group.cpp:158 19# SPRoot::update(SPCtx*, unsigned int) at /home/datalot/git-clones/inkscape-auto/src/object/sp-root.cpp:289 20# SPObject::updateDisplay(SPCtx*, unsigned int) at /home/datalot/git-clones/inkscape-auto/src/object/sp-object.cpp:1479 21# SPDocument::_updateDocument(int) at /home/datalot/git-clones/inkscape-auto/src/document.cpp:1446 22# SPDocument::ensureUpToDate() at /home/datalot/git-clones/inkscape-auto/src/document.cpp:1470 23# Inkscape::DocumentUndo::maybeDone(SPDocument*, char const*, Glib::ustring const&, Glib::ustring const&) at /home/datalot/git-clones/inkscape-auto/src/document-undo.cpp:162 24# Inkscape::DocumentUndo::done(SPDocument*, Glib::ustring const&, Glib::ustring const&) at /home/datalot/git-clones/inkscape-auto/src/document-undo.cpp:101 25# sp_selection_paste(SPDesktop*, bool, bool) at /home/datalot/git-clones/inkscape-auto/src/selection-chemistry.cpp:1334 26# paste(InkscapeWindow*) at /home/datalot/git-clones/inkscape-auto/src/actions/actions-edit-window.cpp:31 27# sigc::internal::slot_call0<sigc::bind_functor<-1, sigc::pointer_functor1<InkscapeWindow*, void>, InkscapeWindow*, sigc::nil, sigc::nil, sigc::nil, sigc::nil, sigc::nil, sigc::nil>, void>::call_it(sigc::internal::slot_rep*) at /usr/include/sigc++-2.0/sigc++/functors/slot.h:137 28# 0x00007F80F0E22A00 in /lib/x86_64-linux-gnu/libgiomm-2.4.so.1 29# g_closure_invoke in /lib/x86_64-linux-gnu/libgobject-2.0.so.0 30# 0x00007F80F030B344 in /lib/x86_64-linux-gnu/libgobject-2.0.so.0 31# g_signal_emit_valist in /lib/x86_64-linux-gnu/libgobject-2.0.so.0 32# g_signal_emit in /lib/x86_64-linux-gnu/libgobject-2.0.so.0 33# 0x00007F80EFE6A2BD in /lib/x86_64-linux-gnu/libgio-2.0.so.0 34# Gio::ActionGroup_Class::activate_action_vfunc_callback(_GActionGroup*, char const*, _GVariant*) in /lib/x86_64-linux-gnu/libgiomm-2.4.so.1 35# Inkscape::Shortcuts::invoke_action(Gtk::AccelKey const&) at /home/datalot/git-clones/inkscape-auto/src/ui/shortcuts.cpp:169 36# Inkscape::Shortcuts::invoke_action(_GdkEventKey const*) at /home/datalot/git-clones/inkscape-auto/src/ui/shortcuts.cpp:178 37# InkscapeWindow::on_key_press_event(_GdkEventKey*) at /home/datalot/git-clones/inkscape-auto/src/inkscape-window.cpp:253 38# Gtk::Widget_Class::key_press_event_callback(_GtkWidget*, _GdkEventKey*) in /lib/x86_64-linux-gnu/libgtkmm-3.0.so.1 39# 0x00007F80EE690CB4 in /lib/x86_64-linux-gnu/libgtk-3.so.0 40# 0x00007F80F02F85A9 in /lib/x86_64-linux-gnu/libgobject-2.0.so.0 41# g_signal_emit_valist in /lib/x86_64-linux-gnu/libgobject-2.0.so.0 42# g_signal_emit in /lib/x86_64-linux-gnu/libgobject-2.0.so.0 43# 0x00007F80EE9697D4 in /lib/x86_64-linux-gnu/libgtk-3.so.0 44# 0x00007F80EE80788F in /lib/x86_64-linux-gnu/libgtk-3.so.0 45# gtk_main_do_event in /lib/x86_64-linux-gnu/libgtk-3.so.0 46# 0x00007F80EEEA1815 in /lib/x86_64-linux-gnu/libgdk-3.so.0 47# 0x00007F80EEEFB702 in /lib/x86_64-linux-gnu/libgdk-3.so.0 48# g_main_context_dispatch in /lib/x86_64-linux-gnu/libglib-2.0.so.0 49# 0x00007F80F0F1CA38 in /lib/x86_64-linux-gnu/libglib-2.0.so.0 50# g_main_context_iteration in /lib/x86_64-linux-gnu/libglib-2.0.so.0 51# g_application_run in /lib/x86_64-linux-gnu/libgio-2.0.so.0 52# main at /home/datalot/git-clones/inkscape-auto/src/inkscape-main.cpp:207 53# 0x00007F80F08461CA in /lib/x86_64-linux-gnu/libc.so.6 54# __libc_start_main in /lib/x86_64-linux-gnu/libc.so.6 55# _start in /home/datalot/git-clones/inkscape-builds/master/install_dir/bin/inkscape