This is an automated email from the git hooks/post-receive script. sebastic-guest pushed a commit to branch master in repository qgis.
commit c046654a84fda1c1295246b827c9e3b712b32e02 Author: Bas Couwenberg <sebas...@xs4all.nl> Date: Thu Mar 13 21:36:10 2014 +0100 Add patch from upstream release_2.2 branch: 0001-9655-fix-invalid-simplified-geometries.patch --- ...01-9655-fix-invalid-simplified-geometries.patch | 59 ++++++++++++++++++++++ 1 file changed, 59 insertions(+) diff --git a/debian/patches/0001-9655-fix-invalid-simplified-geometries.patch b/debian/patches/0001-9655-fix-invalid-simplified-geometries.patch new file mode 100644 index 0000000..f1d8b3c --- /dev/null +++ b/debian/patches/0001-9655-fix-invalid-simplified-geometries.patch @@ -0,0 +1,59 @@ +From 1f21273accba005fa651b3bff027929e9fcacabb Mon Sep 17 00:00:00 2001 +From: ahuarte47 <ahuart...@yahoo.es> +Date: Thu, 27 Feb 2014 00:18:00 +0100 +Subject: #9655: fix invalid simplified geometries +Origin: https://github.com/qgis/QGIS/commit/1f21273accba005fa651b3bff027929e9fcacabb +Bug: http://hub.qgis.org/issues/9655 + +--- + src/core/qgsmaptopixelgeometrysimplifier.cpp | 21 +++++++++++++++++++++ + 1 file changed, 21 insertions(+) + +--- a/src/core/qgsmaptopixelgeometrysimplifier.cpp ++++ b/src/core/qgsmaptopixelgeometrysimplifier.cpp +@@ -147,6 +147,11 @@ bool QgsMapToPixelSimplifier::simplifyWk + bool hasZValue = QGis::wkbDimensions( wkbType ) == 3; + bool result = false; + ++ // Save initial WKB settings to use when the simplification creates invalid geometries ++ unsigned char* sourcePrevWkb = sourceWkb; ++ unsigned char* targetPrevWkb = targetWkb; ++ size_t targetWkbPrevSize = targetWkbSize; ++ + // Can replace the geometry by its BBOX ? + if (( simplifyFlags & QgsMapToPixelSimplifier::SimplifyEnvelope ) && ( envelope.xMaximum() - envelope.xMinimum() ) < map2pixelTol && ( envelope.yMaximum() - envelope.yMinimum() ) < map2pixelTol ) + { +@@ -181,6 +186,11 @@ bool QgsMapToPixelSimplifier::simplifyWk + { + double x, y, lastX = 0, lastY = 0; + ++ double xmin = std::numeric_limits<double>::max(); ++ double ymin = std::numeric_limits<double>::max(); ++ double xmax = -std::numeric_limits<double>::max(); ++ double ymax = -std::numeric_limits<double>::max(); ++ + int sizeOfDoubleX = sizeof( double ); + int sizeOfDoubleY = QGis::wkbDimensions( wkbType ) == 3 /*hasZValue*/ ? 2 * sizeof( double ) : sizeof( double ); + +@@ -209,10 +219,21 @@ bool QgsMapToPixelSimplifier::simplifyWk + memcpy( ptr, &y, sizeof( double ) ); lastY = y; ptr++; + numTargetPoints++; + } ++ if ( xmin > x ) xmin = x; ++ if ( ymin > y ) ymin = y; ++ if ( xmax < x ) xmax = x; ++ if ( ymax < y ) ymax = y; + } + targetWkb = wkb2 + 4; + + // Fix the topology of the geometry ++ if ( numTargetPoints <= ( isaLinearRing ? 2 : 1 ) ) ++ { ++ sourceWkb = sourcePrevWkb; ++ targetWkb = targetPrevWkb; ++ targetWkbSize = targetWkbPrevSize; ++ return generalizeWkbGeometry( wkbType, sourceWkb, sourceWkbSize, targetWkb, targetWkbSize, QgsRectangle( xmin, ymin, xmax, ymax ), writeHeader ); ++ } + if ( isaLinearRing ) + { + memcpy( &x, targetWkb + 0, sizeof( double ) ); -- Alioth's /usr/local/bin/git-commit-notice on /srv/git.debian.org/git/pkg-grass/qgis.git _______________________________________________ Pkg-grass-devel mailing list Pkg-grass-devel@lists.alioth.debian.org http://lists.alioth.debian.org/cgi-bin/mailman/listinfo/pkg-grass-devel