Crash in Spellchecker dialog when no aspell dictionaries available
Migrated from: https://bugs.launchpad.net/inkscape/+bug/935823
Steps to reproduce:
- Ensure aspell-en is not installed (default when installed in Arch)
- Open Inkscape
- Go to Preferences > Spellcheck
- Make sure all language options read None
- Open the Spellcheck dialog (Shift+Ctrl+K)
- Click the only option (Stop)
What happened?
Crash (with an error). The segfault occurs in aspell, but should be handled in Inkscape.
suv in the comments (in 2012) mentioned
In Inkscape, the error needs to be caught and a warning printed to console instead of crashing the application.
Full backtrace 0.48+devel 935823-bt-full-r11008-64bit-osx-1.txt
Partial backtrace 1.0alpha2 (87395266, 2019-07-31) debug build, Arch
#0 0x00007ffff336bc82 in aspell_speller_save_all_word_lists () at /usr/lib/libaspell.so.15
#1 0x00007ffff74d59ef in Inkscape::UI::Dialog::SpellCheck::finished() (this=0x555559e77800) at ../src/ui/dialog/spellcheck.cpp:379
#2 0x00007ffff74d5c05 in Inkscape::UI::Dialog::SpellCheck::onStop() (this=<optimized out>) at ../src/ui/dialog/spellcheck.cpp:807
#3 0x00007ffff74dd130 in sigc::bound_mem_functor0<void, Inkscape::UI::Dialog::SpellCheck>::operator()() const (this=<optimized out>) at /usr/include/sigc++-2.0/sigc++/limit_reference.h:93
#4 0x00007ffff74dd130 in sigc::adaptor_functor<sigc::bound_mem_functor0<void, Inkscape::UI::Dialog::SpellCheck> >::operator()() const (this=<optimized out>) at /usr/include/sigc++-2.0/sigc++/adaptors/adaptor_trait.h:256
#5 0x00007ffff74dd142 in sigc::internal::slot_call0<sigc::bound_mem_functor0<void, Inkscape::UI::Dialog::SpellCheck>, void>::call_it(sigc::internal::slot_rep*) (rep=<optimized out>) at /usr/include/sigc++-2.0/sigc++/functors/slot.h:132
#6 0x00007ffff40b2ba9 in Glib::SignalProxyNormal::slot0_void_callback(_GObject*, void*) () at /usr/lib/libglibmm-2.4.so.1
Signals and stuff in gtk3, a lot of ()
#38 0x00007ffff561eb51 in g_main_context_iteration () at /usr/lib/libglib-2.0.so.0
#39 0x00007ffff57ce5ce in g_application_run () at /usr/lib/libgio-2.0.so.0
#40 0x0000555555556a7c in main(int, char**) (argc=1, argv=0x7fffffffeb08) at ../src/inkscape-main.cpp:68
Note: In 2012, suv mentioned that when installing aspells via macports, there was a warning message about it requiring at least one language pack.
Inkscape Version and Operating System:
- 1.0alpha2 (87395266, 2019-07-31) debug build, Arch
- Inkscape 0.92.4 5da689c313, 2019-01-14 repository, Arch
- 0.48.3 r9882 Arch, KDE (written in 2012)
- Inkscape 0.48.2 and 0.48.3.1, OS X 10.7.2 (64bit) (tested in 2012)
- Inkscape 0.48+devel r11005 (old spellcheck dialog) OS X 10.7.2 (64bit) (tested in 2012)
- Inkscape 0.48+devel r11008 (new spellcheck dialog) OS X 10.7.2 (64bit) (tested in 2012)