diff options
| author | Krzysztof Kosi??ski <tweenk.pl@gmail.com> | 2015-08-13 15:48:12 +0000 |
|---|---|---|
| committer | Krzysztof KosiĆski <tweenk.pl@gmail.com> | 2015-08-13 15:48:12 +0000 |
| commit | 9616befcd379cc7173356998ff4c7b055b21e361 (patch) | |
| tree | ec1fe99e0fc5ee450c99b08bf28c778f85fcfce1 /src/2geom/d2-sbasis.cpp | |
| parent | Fix bug in Maithili .po file. (diff) | |
| download | inkscape-9616befcd379cc7173356998ff4c7b055b21e361.tar.gz inkscape-9616befcd379cc7173356998ff4c7b055b21e361.zip | |
2Geom: update to r2422.
Fixes LP #1482806: crash on Pattern along Path with horizontal segments.
This was caused by empty SBasis objects. After the changes in 2Geom,
empty SBasis objects should no longer be created.
Fixed bugs:
- https://launchpad.net/bugs/1482806
(bzr r14299)
Diffstat (limited to 'src/2geom/d2-sbasis.cpp')
| -rw-r--r-- | src/2geom/d2-sbasis.cpp | 20 |
1 files changed, 6 insertions, 14 deletions
diff --git a/src/2geom/d2-sbasis.cpp b/src/2geom/d2-sbasis.cpp index ebec16fdd..4f00ff6a5 100644 --- a/src/2geom/d2-sbasis.cpp +++ b/src/2geom/d2-sbasis.cpp @@ -147,12 +147,12 @@ Piecewise<D2<SBasis> > force_continuity(Piecewise<D2<SBasis> > const &f, double SBasis &prev_sb=result.segs[prev][dim]; SBasis &cur_sb =result.segs[cur][dim]; Coord const c=pt0[dim]; - if (prev_sb.empty()) { + if (prev_sb.isZero(0)) { prev_sb = SBasis(Linear(0.0, c)); } else { prev_sb[0][1] = c; } - if (cur_sb.empty()) { + if (cur_sb.isZero(0)) { cur_sb = SBasis(Linear(c, 0.0)); } else { cur_sb[0][0] = c; @@ -198,30 +198,22 @@ Point unitTangentAt(D2<SBasis> const & a, Coord t, unsigned n) return Point (0,0); } -static void set_first_point(Piecewise<D2<SBasis> > &f, Point a){ +static void set_first_point(Piecewise<D2<SBasis> > &f, Point const &a){ if ( f.empty() ){ f.concat(Piecewise<D2<SBasis> >(D2<SBasis>(SBasis(Linear(a[X])), SBasis(Linear(a[Y]))))); return; } for (unsigned dim=0; dim<2; dim++){ - if (f.segs.front()[dim].size() == 0){ - f.segs.front()[dim] = SBasis(Linear(a[dim],0)); - }else{ - f.segs.front()[dim][0][0] = a[dim]; - } + f.segs.front()[dim][0][0] = a[dim]; } } -static void set_last_point(Piecewise<D2<SBasis> > &f, Point a){ +static void set_last_point(Piecewise<D2<SBasis> > &f, Point const &a){ if ( f.empty() ){ f.concat(Piecewise<D2<SBasis> >(D2<SBasis>(SBasis(Linear(a[X])), SBasis(Linear(a[Y]))))); return; } for (unsigned dim=0; dim<2; dim++){ - if (f.segs.back()[dim].size() == 0){ - f.segs.back()[dim] = SBasis(Linear(0,a[dim])); - }else{ - f.segs.back()[dim][0][1] = a[dim]; - } + f.segs.back()[dim][0][1] = a[dim]; } } |
