summaryrefslogtreecommitdiffstats
path: root/src/live_effects/lpe-bendpath.cpp
diff options
context:
space:
mode:
authorJohan B. C. Engelen <jbc.engelen@swissonline.ch>2013-07-01 21:05:45 +0000
committerJohan B. C. Engelen <j.b.c.engelen@alumnus.utwente.nl>2013-07-01 21:05:45 +0000
commit4847a7f261731ebbd9396d56c12244f721b006d7 (patch)
tree256794e214d6e9f2d30f6be40ea55e1c006fac4a /src/live_effects/lpe-bendpath.cpp
parentTransform dialog. do not use singular transforms. (Bug 1189446) (diff)
downloadinkscape-4847a7f261731ebbd9396d56c12244f721b006d7.tar.gz
inkscape-4847a7f261731ebbd9396d56c12244f721b006d7.zip
LPE bend path: fix crash on "uskeleton.cuts.back()" because of empty uskeleton.
Fixed bugs: - https://launchpad.net/bugs/616198 (bzr r12398)
Diffstat (limited to 'src/live_effects/lpe-bendpath.cpp')
-rw-r--r--src/live_effects/lpe-bendpath.cpp9
1 files changed, 6 insertions, 3 deletions
diff --git a/src/live_effects/lpe-bendpath.cpp b/src/live_effects/lpe-bendpath.cpp
index 49660c91b..eaf9fe4a6 100644
--- a/src/live_effects/lpe-bendpath.cpp
+++ b/src/live_effects/lpe-bendpath.cpp
@@ -94,6 +94,10 @@ LPEBendPath::doEffect_pwd2 (Geom::Piecewise<Geom::D2<Geom::SBasis> > const & pwd
bend_path.changed = false;
}
+ if (uskeleton.empty()) {
+ return pwd2_in; /// \todo or throw an exception instead? might be better to throw an exception so that the UI can display an error message or smth
+ }
+
D2<Piecewise<SBasis> > patternd2 = make_cuts_independent(pwd2_in);
Piecewise<SBasis> x = vertical_pattern.get_value() ? Piecewise<SBasis>(patternd2[1]) : Piecewise<SBasis>(patternd2[0]);
Piecewise<SBasis> y = vertical_pattern.get_value() ? Piecewise<SBasis>(patternd2[0]) : Piecewise<SBasis>(patternd2[1]);
@@ -105,9 +109,9 @@ LPEBendPath::doEffect_pwd2 (Geom::Piecewise<Geom::D2<Geom::SBasis> > const & pwd
x-= bboxHorizontal.min();
y-= bboxVertical.middle();
- double scaling = uskeleton.cuts.back()/bboxHorizontal.extent();
+ double scaling = uskeleton.cuts.back()/bboxHorizontal.extent();
- if (scaling != 1.0) {
+ if (scaling != 1.0) {
x*=scaling;
}
@@ -117,7 +121,6 @@ LPEBendPath::doEffect_pwd2 (Geom::Piecewise<Geom::D2<Geom::SBasis> > const & pwd
if (prop_scale != 1.0) y *= prop_scale;
}
-
Piecewise<D2<SBasis> > output = compose(uskeleton,x) + y*compose(n,x);
return output;
}