Code

optimization: don't copy SPCurve when transforming it, do this in place
authorbuliabyak <buliabyak@users.sourceforge.net>
Thu, 5 Jun 2008 18:10:40 +0000 (18:10 +0000)
committerbuliabyak <buliabyak@users.sourceforge.net>
Thu, 5 Jun 2008 18:10:40 +0000 (18:10 +0000)
src/sp-path.cpp

index b2e26efa03a91e7b36fad69b85acb3643d195b8f..511e1efc5584ed6cb346592c744b88d4f6f49290 100644 (file)
@@ -378,17 +378,11 @@ sp_path_set_transform(SPItem *item, NR::Matrix const &xform)
     }
 
     // Transform the original-d path or the (ordinary) path
-    bool original_path = (bool)path->original_curve;
-    SPCurve *srccurve = original_path ? path->original_curve : shape->curve;
-    SPCurve *dstcurve = srccurve->copy();
-    if (dstcurve) {
-        dstcurve->transform(xform);
-        if (original_path) {
-            sp_path_set_original_curve(path, dstcurve, TRUE, true);
-        } else {
-            sp_shape_set_curve(shape, dstcurve, TRUE);
-        }
-        dstcurve->unref();
+    if (path->original_curve) {
+        path->original_curve->transform(xform);
+        sp_lpe_item_update_patheffect(path, true, true);
+    } else {
+        shape->curve->transform(xform);
     }
 
     // Adjust stroke