summaryrefslogtreecommitdiffstats
path: root/src/extension/implementation/script.cpp
diff options
context:
space:
mode:
authorEduard Braun <eduard.braun2@gmx.de>2017-11-30 21:04:34 +0000
committerEduard Braun <eduard.braun2@gmx.de>2017-11-30 21:04:34 +0000
commitf0be34d40fdb5840cb2ad4539db4f6dd3978cb3f (patch)
tree78baabf9a26f1035c8ad6d946887ef90f211e3b8 /src/extension/implementation/script.cpp
parentPackaging/MSYS2: remove unneeded libraries (diff)
downloadinkscape-f0be34d40fdb5840cb2ad4539db4f6dd3978cb3f.tar.gz
inkscape-f0be34d40fdb5840cb2ad4539db4f6dd3978cb3f.zip
Extensions: Don't crash on invalid effect extension output
Diffstat (limited to '')
-rw-r--r--src/extension/implementation/script.cpp11
1 files changed, 8 insertions, 3 deletions
diff --git a/src/extension/implementation/script.cpp b/src/extension/implementation/script.cpp
index eb98711bc..23c97c3b0 100644
--- a/src/extension/implementation/script.cpp
+++ b/src/extension/implementation/script.cpp
@@ -732,9 +732,14 @@ void Script::effect(Inkscape::Extension::Effect *module,
SPDocument * mydoc = NULL;
if (data_read > 10) {
- mydoc = Inkscape::Extension::open(
- Inkscape::Extension::db.get(SP_MODULE_KEY_INPUT_SVG),
- tempfilename_out.c_str());
+ try {
+ mydoc = Inkscape::Extension::open(
+ Inkscape::Extension::db.get(SP_MODULE_KEY_INPUT_SVG),
+ tempfilename_out.c_str());
+ } catch (const Inkscape::Extension::Input::open_failed &e) {
+ /// \todo Popup dialog here
+ g_warning("Extension returned output that could not be parsed: %s", e.what());
+ }
} // data_read
pump_events();