Code

put exception catch block around all doEffect calls. (so in SP_LPE_ITEM)
authorjohanengelen <johanengelen@users.sourceforge.net>
Sat, 14 Jun 2008 16:25:16 +0000 (16:25 +0000)
committerjohanengelen <johanengelen@users.sourceforge.net>
Sat, 14 Jun 2008 16:25:16 +0000 (16:25 +0000)
src/live_effects/effect.cpp
src/sp-lpe-item.cpp

index 6103a3d18f6ff2f1e0c9e630ac441d55bc884b77..551b23a1db1fc84931587195f6d8b7b344cecebe 100644 (file)
@@ -21,8 +21,6 @@
 #include <glibmm/i18n.h>
 #include "pen-context.h"
 #include "tools-switch.h"
-#include "message-stack.h"
-#include "desktop.h"
 
 #include "live_effects/lpeobject.h"
 #include "live_effects/parameter/parameter.h"
@@ -279,20 +277,9 @@ Effect::acceptParamPath (SPPath *param_path) {
 void
 Effect::doEffect (SPCurve * curve)
 {
-    NArtBpath const *bpath_in = curve->get_bpath();
-
-    std::vector<Geom::Path> result_pathv;
+    std::vector<Geom::Path> orig_pathv = curve->get_pathvector();
 
-    try {
-        std::vector<Geom::Path> orig_pathv = BPath_to_2GeomPath(bpath_in);
-
-        result_pathv = doEffect_path(orig_pathv);
-    }
-    catch (std::exception & e) {
-        g_warning("Exception during LPE %s execution. \n %s", getName().c_str(), e.what());
-        SP_ACTIVE_DESKTOP->messageStack()->flash( Inkscape::WARNING_MESSAGE,
-            _("An exception occurred during execution of the Path Effect.") );
-    }
+    std::vector<Geom::Path> result_pathv = doEffect_path(orig_pathv);
 
     curve->set_pathv(result_pathv);
 }
index 470e97d1990d643aa9d38bc77d537d2ec5bb6819..abcf00ad2dc7cbdc2b312f7f25db33a96c121c53 100644 (file)
@@ -29,6 +29,9 @@
 #include "sp-lpe-item.h"
 #include "xml/repr.h"
 #include "uri.h"
+#include "message-stack.h"
+#include "inkscape.h"
+#include "desktop.h"
 
 #include <algorithm>
 
@@ -299,7 +302,14 @@ void sp_lpe_item_perform_path_effect(SPLPEItem *lpeitem, SPCurve *curve) {
                     lpe->doBeforeEffect(lpeitem);
                 }
 
-                lpe->doEffect(curve);
+                try {
+                    lpe->doEffect(curve);
+                }
+                catch (std::exception & e) {
+                    g_warning("Exception during LPE %s execution. \n %s", lpe->getName().c_str(), e.what());
+                    SP_ACTIVE_DESKTOP->messageStack()->flash( Inkscape::WARNING_MESSAGE,
+                        _("An exception occurred during execution of the Path Effect.") );
+                }
             }
         }
     }