diff options
| author | Adib Taraben <theadib@gmail.com> | 2009-08-01 23:31:02 +0000 |
|---|---|---|
| committer | theadib <theadib@users.sourceforge.net> | 2009-08-01 23:31:02 +0000 |
| commit | d8d60c60ebeeefb068d9b68bf7d96f1f1f88518a (patch) | |
| tree | 2e7873e7c4a96dec1e3bfa421a15e98592378c01 /src/extension/system.cpp | |
| parent | Cleaning some code again (diff) | |
| download | inkscape-d8d60c60ebeeefb068d9b68bf7d96f1f1f88518a.tar.gz inkscape-d8d60c60ebeeefb068d9b68bf7d96f1f1f88518a.zip | |
FIX 309856 353847: correctly advertise exception leads to error message dialogue
(bzr r8380)
Diffstat (limited to 'src/extension/system.cpp')
| -rw-r--r-- | src/extension/system.cpp | 14 |
1 files changed, 13 insertions, 1 deletions
diff --git a/src/extension/system.cpp b/src/extension/system.cpp index a7828d3fc..33ee544a1 100644 --- a/src/extension/system.cpp +++ b/src/extension/system.cpp @@ -277,7 +277,19 @@ save(Extension *key, SPDocument *doc, gchar const *filename, bool setextension, doc->setModifiedSinceSave(false); } - omod->save(doc, fileName); + try { + omod->save(doc, fileName); + } + catch(...) { + // free used ressources + if ( !official) { + g_free(saved_output_extension); + g_free(saved_dataloss); + } + g_free(fileName); + + throw Inkscape::Extension::Output::save_failed(); + } // If it is an unofficial save, set the modified attributes back to what they were. if ( !official) { |
