[geos-commits] [SCM] geos branch master updated. 3fe3c03ae6759611a6122a6e63ace82ca986af29

git at osgeo.org git at osgeo.org
Sat Jan 20 22:28:38 PST 2018


This is an automated email from the git hooks/post-receive script. It was
generated because a ref change was pushed to the repository containing
the project "geos".

The branch, master has been updated
       via  3fe3c03ae6759611a6122a6e63ace82ca986af29 (commit)
       via  667d3b0b649e86bc1de3cfdc574fdc885c20b2cf (commit)
       via  c6320119a03995d7f706fb63e133b9a4965ca17a (commit)
       via  9a06fe132b15bc6d69ae6bad7e2cc97c09997b4a (commit)
       via  79ad4b902708800bf6c9457135857801eddfb727 (commit)
       via  db5e2bc50f636ef47e53dfa9f3d8028ff44ef400 (commit)
       via  b01059bbc03199f3f6518cb5f400515d4802d4de (commit)
       via  e39d8dd2a615b3c552cc3b9ace41fabecf961aae (commit)
       via  17664913c5fd5d34358fa59fc6de4a712bf95342 (commit)
       via  409e612f920702f6e5f99d358e24b596823c6980 (commit)
       via  61583e65112153e8248f1befee76ab4d7afd4ac5 (commit)
       via  c8418c4ac23d260b13a938f5aa473f1ca7519acc (commit)
       via  40d9c6c0fd761cc10b42ccc572e9310f300a8891 (commit)
       via  5ff02b274b93d7f41f8a247d86fefa85ae476286 (commit)
       via  da5f549ac67fb07d26d7625a39cad40e678fcda0 (commit)
       via  eb5aba7bc8383cc006f184132c42375fa97336d3 (commit)
       via  4a13a7fc2485ca7af7ba973cdc3125b615a54bc7 (commit)
       via  2d49b1b891723228d51518ed682dede3c15042cf (commit)
      from  0f722dc002ff8f907078193548b9ce8e028b5da2 (commit)

Those revisions listed above that are new to this repository have
not appeared on any other notification email; so we list those
revisions in full, below.

- Log -----------------------------------------------------------------
commit 3fe3c03ae6759611a6122a6e63ace82ca986af29
Merge: 0f722dc 667d3b0
Author: robe <lr at pcorp.us>
Date:   Sat Jan 20 22:28:38 2018 -0800

    Merge branch 'fixing-warning' of cvvergara/geos into master


commit 667d3b0b649e86bc1de3cfdc574fdc885c20b2cf
Author: cvvergara <vicky at georepublic.de>
Date:   Fri Jan 12 22:39:11 2018 -0600

    Remove Wignored-qualifiers warning from SegmentIntersectionDetector.h

diff --git a/include/geos/noding/SegmentIntersectionDetector.h b/include/geos/noding/SegmentIntersectionDetector.h
index 8aff530..3de7927 100644
--- a/include/geos/noding/SegmentIntersectionDetector.h
+++ b/include/geos/noding/SegmentIntersectionDetector.h
@@ -122,7 +122,7 @@ public:
 	*
 	* @return the coordinate for the intersection location
 	*/
-	const geom::Coordinate * const getIntersection()  const
+	const geom::Coordinate * getIntersection()  const
 	{
 		return intPt;
 	}

commit c6320119a03995d7f706fb63e133b9a4965ca17a
Author: cvvergara <vicky at georepublic.de>
Date:   Fri Jan 12 22:37:21 2018 -0600

    Remove conversion warning from include files
    	modified:   include/geos/geom/BinaryOp.h
    	modified:   include/geos/noding/BasicSegmentString.h

diff --git a/include/geos/geom/BinaryOp.h b/include/geos/geom/BinaryOp.h
index 015d2f4..b876449 100644
--- a/include/geos/geom/BinaryOp.h
+++ b/include/geos/geom/BinaryOp.h
@@ -490,8 +490,8 @@ BinaryOp(const Geometry* g0, const Geometry *g1, BinOp _Op)
 		double maxScale = 1e16;
 
     // Don't use a scale bigger than the input one
-    if ( g0scale && g0scale < maxScale ) maxScale = g0scale;
-    if ( g1scale && g1scale < maxScale ) maxScale = g1scale;
+    if ( g0scale && g0scale < maxScale ) maxScale = static_cast<double>(g0scale);
+    if ( g1scale && g1scale < maxScale ) maxScale = static_cast<double>(g1scale);
 
 
 		for (double scale=maxScale; scale >= 1; scale /= 10)
diff --git a/include/geos/noding/BasicSegmentString.h b/include/geos/noding/BasicSegmentString.h
index e1e08d8..13a934c 100644
--- a/include/geos/noding/BasicSegmentString.h
+++ b/include/geos/noding/BasicSegmentString.h
@@ -70,7 +70,7 @@ public:
 	/// see dox in SegmentString.h
 	unsigned int size() const override
 	{
-		return pts->size();
+		return static_cast<unsigned int>(pts->size());
 	}
 
 	/// see dox in SegmentString.h

commit 9a06fe132b15bc6d69ae6bad7e2cc97c09997b4a
Author: cvvergara <vicky at georepublic.de>
Date:   Fri Jan 12 22:35:30 2018 -0600

    Remove conversion warning from src/simplify and src/triangulate directories
    	modified:   src/simplify/TaggedLineString.cpp
    	modified:   src/triangulate/quadedge/QuadEdgeSubdivision.cpp

diff --git a/src/simplify/TaggedLineString.cpp b/src/simplify/TaggedLineString.cpp
index 91f5d31..0c2bfdc 100644
--- a/src/simplify/TaggedLineString.cpp
+++ b/src/simplify/TaggedLineString.cpp
@@ -88,7 +88,7 @@ TaggedLineString::init()
 			TaggedLineSegment* seg = new TaggedLineSegment(
 					pts->getAt(i),
 					pts->getAt(i+1),
-					parentLine, i);
+					parentLine, static_cast<unsigned int>(i));
 
 			segs.push_back(seg);
 		}
@@ -180,7 +180,7 @@ TaggedLineString::extractCoordinates(
 std::size_t
 TaggedLineString::getResultSize() const
 {
-	unsigned resultSegsSize = resultSegs.size();
+	auto resultSegsSize = resultSegs.size();
 	return resultSegsSize == 0 ? 0 : resultSegsSize + 1;
 }
 
diff --git a/src/triangulate/quadedge/QuadEdgeSubdivision.cpp b/src/triangulate/quadedge/QuadEdgeSubdivision.cpp
index 5291798..d05386e 100644
--- a/src/triangulate/quadedge/QuadEdgeSubdivision.cpp
+++ b/src/triangulate/quadedge/QuadEdgeSubdivision.cpp
@@ -175,7 +175,7 @@ QuadEdgeSubdivision::locateFromEdge(const Vertex &v,
     ::geos::ignore_unused_variable_warning(startEdge);
 
     int iter = 0;
-    int maxIter = quadEdges.size();
+    int maxIter = static_cast<int>(quadEdges.size());
 
     QuadEdge *e = startingEdges[0];
 

commit 79ad4b902708800bf6c9457135857801eddfb727
Author: cvvergara <vicky at georepublic.de>
Date:   Fri Jan 12 22:34:37 2018 -0600

    Remove conversion warning from src/precision directory
    	modified:   src/precision/PrecisionReducerCoordinateOperation.cpp
    	modified:   src/precision/SimpleGeometryPrecisionReducer.cpp

diff --git a/src/precision/PrecisionReducerCoordinateOperation.cpp b/src/precision/PrecisionReducerCoordinateOperation.cpp
index e6e9e85..799f71b 100644
--- a/src/precision/PrecisionReducerCoordinateOperation.cpp
+++ b/src/precision/PrecisionReducerCoordinateOperation.cpp
@@ -37,7 +37,7 @@ CoordinateSequence*
 PrecisionReducerCoordinateOperation::edit(const CoordinateSequence *cs,
                                           const Geometry *geom)
 {
-	unsigned int csSize = cs->getSize();
+	unsigned int csSize = static_cast<unsigned int>(cs->getSize());
 
 	if ( csSize == 0 ) return nullptr;
 
diff --git a/src/precision/SimpleGeometryPrecisionReducer.cpp b/src/precision/SimpleGeometryPrecisionReducer.cpp
index dc2ce56..7112cd5 100644
--- a/src/precision/SimpleGeometryPrecisionReducer.cpp
+++ b/src/precision/SimpleGeometryPrecisionReducer.cpp
@@ -70,7 +70,7 @@ PrecisionReducerCoordinateOperation::edit(const CoordinateSequence *cs,
 {
 	if (cs->getSize()==0) return nullptr;
 
-	unsigned int csSize=cs->getSize();
+	unsigned int csSize=static_cast<unsigned int>(cs->getSize());
 
 	vector<Coordinate> *vc = new vector<Coordinate>(csSize);
 

commit db5e2bc50f636ef47e53dfa9f3d8028ff44ef400
Author: cvvergara <vicky at georepublic.de>
Date:   Fri Jan 12 22:33:34 2018 -0600

    Remove conversion warning from src/operation directory
    	modified:   src/operation/distance/DistanceOp.cpp
    	modified:   src/operation/intersection/RectangleIntersection.cpp
    	modified:   src/operation/intersection/RectangleIntersectionBuilder.cpp
    	modified:   src/operation/linemerge/LineMerger.cpp
    	modified:   src/operation/linemerge/LineSequencer.cpp
    	modified:   src/operation/overlay/OverlayOp.cpp
    	modified:   src/operation/predicate/RectangleContains.cpp
    	modified:   src/operation/valid/IsValidOp.cpp

diff --git a/src/operation/distance/DistanceOp.cpp b/src/operation/distance/DistanceOp.cpp
index 0a62068..f365633 100644
--- a/src/operation/distance/DistanceOp.cpp
+++ b/src/operation/distance/DistanceOp.cpp
@@ -569,9 +569,9 @@ DistanceOp::computeMinDistance(
 				delete closestPt;
 
 				delete locGeom[0];
-				locGeom[0] = new GeometryLocation(line0, i, *c1);
+				locGeom[0] = new GeometryLocation(line0, static_cast<int>(i), *c1);
 				delete locGeom[1];
-				locGeom[1] = new GeometryLocation(line1, j, *c2);
+				locGeom[1] = new GeometryLocation(line1, static_cast<int>(j), *c2);
 			}
 			if (minDistance<=terminateDistance) return;
 		}
@@ -607,7 +607,7 @@ DistanceOp::computeMinDistance(const LineString *line,
 			seg.closestPoint(*coord, segClosestPoint);
 
 			delete locGeom[0];
-			locGeom[0] = new GeometryLocation(line, i, segClosestPoint);
+			locGeom[0] = new GeometryLocation(line, static_cast<int>(i), segClosestPoint);
 			delete locGeom[1];
 			locGeom[1] = new GeometryLocation(pt, 0, *coord);
         	}
diff --git a/src/operation/intersection/RectangleIntersection.cpp b/src/operation/intersection/RectangleIntersection.cpp
index ca6da12..850fb0b 100644
--- a/src/operation/intersection/RectangleIntersection.cpp
+++ b/src/operation/intersection/RectangleIntersection.cpp
@@ -121,7 +121,7 @@ RectangleIntersection::clip_linestring_parts(const geom::LineString * gi,
 {
   using namespace geos::geom;
 
-  int n = gi->getNumPoints();
+  int n = static_cast<int>(gi->getNumPoints());
 
   if(gi == nullptr || n<1)
 	return false;
@@ -418,7 +418,7 @@ RectangleIntersection::clip_polygon_to_linestrings(const geom::Polygon * g,
   // - Clipped ones become linestrings
   // - Intact ones become new polygons without holes
 
-  for(int i=0, n=g->getNumInteriorRing(); i<n; ++i)
+  for(int i=0, n= static_cast<int>(g->getNumInteriorRing()); i<n; ++i)
 	{
 	  if(clip_linestring_parts(g->getInteriorRingN(i), parts, rect))
 		{
@@ -494,7 +494,7 @@ RectangleIntersection::clip_polygon_to_polygons(const geom::Polygon * g,
   // - Intact ones become holes in new polygons formed by exterior parts
 
 
-  for(int i=0, n=g->getNumInteriorRing(); i<n; ++i)
+  for(int i=0, n = static_cast<int>(g->getNumInteriorRing()); i<n; ++i)
 	{
 	  RectangleIntersectionBuilder holeparts(*_gf);
     const LineString *hole = g->getInteriorRingN(i);
@@ -579,7 +579,7 @@ RectangleIntersection::clip_multipoint(const geom::MultiPoint * g,
 {
   if(g == nullptr || g->isEmpty())
 	return;
-  for(int i=0, n=g->getNumGeometries(); i<n; ++i)
+  for(int i=0, n=static_cast<int>(g->getNumGeometries()); i<n; ++i)
 	{
 	  clip_point(dynamic_cast<const geom::Point *>(g->getGeometryN(i)),
 				 parts, rect);
@@ -594,7 +594,7 @@ RectangleIntersection::clip_multilinestring(const geom::MultiLineString * g,
   if(g == nullptr || g->isEmpty())
 	return;
 
-  for(int i=0, n=g->getNumGeometries(); i<n; ++i)
+  for(int i=0, n = static_cast<int>(g->getNumGeometries()); i<n; ++i)
 	{
 	  clip_linestring(dynamic_cast<const geom::LineString *>(g->getGeometryN(i)),
 					  parts, rect);
@@ -610,7 +610,7 @@ RectangleIntersection::clip_multipolygon(const geom::MultiPolygon * g,
   if(g == nullptr || g->isEmpty())
 	return;
 
-  for(int i=0, n=g->getNumGeometries(); i<n; ++i)
+  for(int i=0, n = static_cast<int>(g->getNumGeometries()); i<n; ++i)
 	{
 	  clip_polygon(dynamic_cast<const geom::Polygon *>(g->getGeometryN(i)),
 				   parts, rect, keep_polygons);
@@ -627,7 +627,7 @@ RectangleIntersection::clip_geometrycollection(
   if(g == nullptr || g->isEmpty())
 	return;
 
-  for(int i=0, n=g->getNumGeometries(); i<n; ++i)
+  for(int i=0, n=static_cast<int>(g->getNumGeometries()); i<n; ++i)
 	{
 	  clip_geom(g->getGeometryN(i),
 				parts, rect, keep_polygons);
diff --git a/src/operation/intersection/RectangleIntersectionBuilder.cpp b/src/operation/intersection/RectangleIntersectionBuilder.cpp
index 4084432..ec61493 100644
--- a/src/operation/intersection/RectangleIntersectionBuilder.cpp
+++ b/src/operation/intersection/RectangleIntersectionBuilder.cpp
@@ -54,8 +54,8 @@ RectangleIntersectionBuilder::reconnect()
   geom::LineString * line2 = lines.back();
   const geom::CoordinateSequence &cs2 = *line2->getCoordinatesRO();
 
-  const int n1 = cs1.size();
-  const int n2 = cs2.size();
+  const auto n1 = cs1.size();
+  const auto n2 = cs2.size();
 
   // Safety check against bad input to prevent segfaults
   if(n1==0 || n2==0)
@@ -229,7 +229,7 @@ double distance(const Rectangle & rect,
 				const std::vector<Coordinate> &ring,
 				const geom::LineString * line)
 {
-  double nr = ring.size();
+  auto nr = ring.size();
   const Coordinate &c1 = ring[nr-1];
 
   const CoordinateSequence * linecs = line->getCoordinatesRO();
@@ -241,7 +241,7 @@ double distance(const Rectangle & rect,
 double distance(const Rectangle & rect,
 				const std::vector<Coordinate> &ring)
 {
-  double nr = ring.size();
+  auto nr = ring.size();
   const Coordinate& c1 = ring[nr-1]; // TODO: ring.back() ?
   const Coordinate& c2 = ring[0]; // TODO: ring.front() ?
   return distance(rect, c1.x, c1.y, c2.x, c2.y);
@@ -277,7 +277,7 @@ normalize_ring(std::vector<Coordinate> &ring)
   // Find the "smallest" coordinate
 
   int best_pos = 0;
-  int n = ring.size();
+  int n = static_cast<int>(ring.size());
   for(int pos = 0; pos<n; ++pos)
 	{
     // TODO: use CoordinateLessThan ?
@@ -353,7 +353,7 @@ void
 RectangleIntersectionBuilder::close_ring(const Rectangle & rect,
 				std::vector<Coordinate> * ring)
 {
-  double nr = ring->size();
+  auto nr = ring->size();
   Coordinate &c2 = (*ring)[0];
   Coordinate &c1 = (*ring)[nr-1];
   double x2 = c2.x;
@@ -435,7 +435,7 @@ RectangleIntersectionBuilder::reconnectPolygons(const Rectangle & rect)
 		  else
 			{
 			  LineString * line = *best_pos;
-			  int nr = ring->size();
+			  auto nr = ring->size();
         const CoordinateSequence& cs = *line->getCoordinatesRO();
 			  close_boundary(rect, ring,
 							 (*ring)[nr-1].x,
diff --git a/src/operation/linemerge/LineMerger.cpp b/src/operation/linemerge/LineMerger.cpp
index 42ac1a0..e1fdc88 100644
--- a/src/operation/linemerge/LineMerger.cpp
+++ b/src/operation/linemerge/LineMerger.cpp
@@ -115,7 +115,7 @@ LineMerger::merge()
 	buildEdgeStringsForObviousStartNodes();
 	buildEdgeStringsForIsolatedLoops();
 
-	unsigned numEdgeStrings = edgeStrings.size();
+	auto numEdgeStrings = edgeStrings.size();
 	mergedLineStrings=new vector<LineString*>(numEdgeStrings);
 	for (size_t i=0; i<numEdgeStrings; ++i)
 	{
diff --git a/src/operation/linemerge/LineSequencer.cpp b/src/operation/linemerge/LineSequencer.cpp
index 384679e..69931ee 100644
--- a/src/operation/linemerge/LineSequencer.cpp
+++ b/src/operation/linemerge/LineSequencer.cpp
@@ -74,7 +74,7 @@ LineSequencer::isSequenced(const Geometry* geom)
 
 
 		const Coordinate* startNode = &(line.getCoordinateN(0));
-		const Coordinate* endNode = &(line.getCoordinateN(line.getNumPoints() - 1));
+		const Coordinate* endNode = &(line.getCoordinateN(static_cast<int>(line.getNumPoints() - 1)));
 
 		/**
 		 * If this linestring is connected to a previous subgraph,
diff --git a/src/operation/overlay/OverlayOp.cpp b/src/operation/overlay/OverlayOp.cpp
index 77f8773..92744e9 100644
--- a/src/operation/overlay/OverlayOp.cpp
+++ b/src/operation/overlay/OverlayOp.cpp
@@ -911,9 +911,8 @@ OverlayOp::insertUniqueEdge(Edge *e)
 void
 OverlayOp::computeLabelsFromDepths()
 {
-	for(size_t j=0, s=edgeList.getEdges().size(); j<s; ++j)
+	for(auto &e : edgeList.getEdges())
 	{
-		Edge *e=edgeList.get(j);
 		Label& lbl = e->getLabel();
 		Depth &depth = e->getDepth();
 
diff --git a/src/operation/predicate/RectangleContains.cpp b/src/operation/predicate/RectangleContains.cpp
index c4ce329..530df13 100644
--- a/src/operation/predicate/RectangleContains.cpp
+++ b/src/operation/predicate/RectangleContains.cpp
@@ -55,7 +55,7 @@ RectangleContains::isContainedInBoundary(const Geometry& geom)
 	if (const LineString *l=dynamic_cast<const LineString *>(&geom))
 		return isLineStringContainedInBoundary(*l);
 
-	for (unsigned i=0, n=geom.getNumGeometries(); i<n; ++i)
+	for (unsigned i=0, n=static_cast<unsigned>(geom.getNumGeometries()); i<n; ++i)
 	{
 		const Geometry &comp = *(geom.getGeometryN(i));
 		if ( !isContainedInBoundary(comp) )
@@ -93,7 +93,7 @@ bool
 RectangleContains::isLineStringContainedInBoundary(const LineString& line)
 {
 	const CoordinateSequence &seq = *(line.getCoordinatesRO());
-	for (unsigned int i=0, n=seq.getSize()-1; i<n; ++i) {
+	for (unsigned int i=0, n=static_cast<unsigned int>(seq.getSize()-1); i<n; ++i) {
 		const Coordinate& p0=seq.getAt(i);
 		const Coordinate& p1=seq.getAt(i+1);
 		if (! isLineSegmentContainedInBoundary(p0, p1))
diff --git a/src/operation/valid/IsValidOp.cpp b/src/operation/valid/IsValidOp.cpp
index 88578e2..0ff743b 100644
--- a/src/operation/valid/IsValidOp.cpp
+++ b/src/operation/valid/IsValidOp.cpp
@@ -70,7 +70,7 @@ IsValidOp::findPtNotNode(const CoordinateSequence *testCoords,
 	// find a point in the testCoords which is not a node of the searchRing
 	EdgeIntersectionList &eiList=searchEdge->getEdgeIntersectionList();
 	// somewhat inefficient - is there a better way? (Use a node map, for instance?)
-	unsigned int npts=testCoords->getSize();
+	unsigned int npts = static_cast<int>(testCoords->getSize());
 	for(unsigned int i=0; i<npts; ++i)
 	{
 		const Coordinate& pt=testCoords->getAt(i);
@@ -231,7 +231,7 @@ IsValidOp::checkValid(const Polygon *g)
 void
 IsValidOp::checkValid(const MultiPolygon *g)
 {
-	unsigned int ngeoms = g->getNumGeometries();
+	unsigned int ngeoms = static_cast<unsigned int>(g->getNumGeometries());
 	vector<const Polygon *>polys(ngeoms);
 
 	for (unsigned int i=0; i<ngeoms; ++i)
@@ -284,7 +284,7 @@ IsValidOp::checkValid(const MultiPolygon *g)
 void
 IsValidOp::checkValid(const GeometryCollection *gc)
 {
-	for(unsigned int i=0, ngeoms=gc->getNumGeometries(); i<ngeoms; ++i)
+	for(unsigned int i=0, ngeoms=static_cast<unsigned int>(gc->getNumGeometries()); i<ngeoms; ++i)
 	{
 		const Geometry *g=gc->getGeometryN(i);
 		checkValid(g);
@@ -382,7 +382,7 @@ IsValidOp::checkHolesInShell(const Polygon *p, GeometryGraph *graph)
 	const LinearRing *shell=static_cast<const LinearRing*>(
 			p->getExteriorRing());
 
-	int nholes = p->getNumInteriorRing();
+	int nholes = static_cast<int>(p->getNumInteriorRing());
 
 	if(shell->isEmpty())
 	{
@@ -446,7 +446,7 @@ IsValidOp::checkHolesNotNested(const Polygon *p, GeometryGraph *graph)
 	//QuadtreeNestedRingTester nestedTester(graph);
 	IndexedNestedRingTester nestedTester(graph);
 
-	int nholes=p->getNumInteriorRing();
+	int nholes = static_cast<int>(p->getNumInteriorRing());
 	for(int i=0; i<nholes; ++i)
 	{
 		assert(dynamic_cast<const LinearRing*>(
@@ -474,7 +474,7 @@ IsValidOp::checkHolesNotNested(const Polygon *p, GeometryGraph *graph)
 void
 IsValidOp::checkShellsNotNested(const MultiPolygon *mp, GeometryGraph *graph)
 {
-	for(unsigned int i=0, ngeoms = mp->getNumGeometries(); i<ngeoms; ++i)
+	for(unsigned int i=0, ngeoms = static_cast<int>(mp->getNumGeometries()); i<ngeoms; ++i)
 	{
 		const Polygon *p=dynamic_cast<const Polygon *>(
 				mp->getGeometryN(i));
@@ -524,7 +524,7 @@ IsValidOp::checkShellNotNested(const LinearRing *shell, const Polygon *p,
 	if (!insidePolyShell) return;
 
 	// if no holes, this is an error!
-	int nholes = p->getNumInteriorRing();
+	int nholes = static_cast<int>(p->getNumInteriorRing());
 	if (nholes<=0) {
 		validErr=new TopologyValidationError(
 			TopologyValidationError::eNestedShells,
@@ -604,7 +604,7 @@ IsValidOp::checkConnectedInteriors(GeometryGraph &graph)
 void
 IsValidOp::checkInvalidCoordinates(const CoordinateSequence *cs)
 {
-	unsigned int size=cs->getSize();
+	unsigned int size = static_cast<unsigned int>(cs->getSize());
 	for (unsigned int i=0; i<size; ++i)
 	{
 		if (! isValid(cs->getAt(i)) )
@@ -625,7 +625,7 @@ IsValidOp::checkInvalidCoordinates(const Polygon *poly)
 	checkInvalidCoordinates(poly->getExteriorRing()->getCoordinatesRO());
 	if (validErr != nullptr) return;
 
-	int nholes=poly->getNumInteriorRing();
+	int nholes = static_cast<int>(poly->getNumInteriorRing());
 	for (int i=0; i<nholes; ++i)
 	{
 		checkInvalidCoordinates(
@@ -643,7 +643,7 @@ IsValidOp::checkClosedRings(const Polygon *poly)
 	checkClosedRing(lr);
 	if (validErr) return;
 
-	int nholes=poly->getNumInteriorRing();
+	int nholes = static_cast<int>(poly->getNumInteriorRing());
 	for (int i=0; i<nholes; ++i)
 	{
 		lr=(const LinearRing *)poly->getInteriorRingN(i);

commit b01059bbc03199f3f6518cb5f400515d4802d4de
Author: cvvergara <vicky at georepublic.de>
Date:   Fri Jan 12 22:32:11 2018 -0600

    Remove conversion warning from src/operation/buffer directory
    	modified:   src/operation/buffer/OffsetCurveBuilder.cpp
    	modified:   src/operation/buffer/OffsetCurveSetBuilder.cpp
    	modified:   src/operation/buffer/SubgraphDepthLocater.cpp

diff --git a/src/operation/buffer/OffsetCurveBuilder.cpp b/src/operation/buffer/OffsetCurveBuilder.cpp
index e3d1b8d..c3f1804 100644
--- a/src/operation/buffer/OffsetCurveBuilder.cpp
+++ b/src/operation/buffer/OffsetCurveBuilder.cpp
@@ -128,7 +128,7 @@ OffsetCurveBuilder::getSingleSidedLineCurve(const CoordinateSequence* inputPts,
     const CoordinateSequence& simp1 = *simp1_;
 
 
-    int n1 = simp1.size() - 1;
+    int n1 = static_cast<int>(simp1.size()) - 1;
     if ( ! n1 )
       throw util::IllegalArgumentException("Cannot get offset of single-vertex line");
     segGen->initSideSegments(simp1[0], simp1[1], Position::LEFT);
@@ -147,7 +147,7 @@ OffsetCurveBuilder::getSingleSidedLineCurve(const CoordinateSequence* inputPts,
       BufferInputLineSimplifier::simplify( *inputPts, -distTol );
     const CoordinateSequence& simp2 = *simp2_;
 
-    int n2 = simp2.size() - 1;
+    int n2 = static_cast<int>(simp2.size()) - 1;
     if ( ! n2 )
       throw util::IllegalArgumentException("Cannot get offset of single-vertex line");
     segGen->initSideSegments(simp2[n2], simp2[n2-1], Position::LEFT);
@@ -207,7 +207,7 @@ OffsetCurveBuilder::computeLineBufferCurve(const CoordinateSequence& inputPts,
 	const CoordinateSequence& simp1 = *simp1_;
 
 
-	int n1 = simp1.size() - 1;
+	int n1 = static_cast<int>(simp1.size()) - 1;
 	segGen.initSideSegments(simp1[0], simp1[1], Position::LEFT);
 	for (int i = 2; i <= n1; ++i) {
 		segGen.addNextSegment(simp1[i], true);
@@ -222,7 +222,7 @@ OffsetCurveBuilder::computeLineBufferCurve(const CoordinateSequence& inputPts,
 		BufferInputLineSimplifier::simplify(inputPts, -distTol);
 	const CoordinateSequence& simp2 = *simp2_;
 
-	int n2 = simp2.size() - 1;
+	int n2 = static_cast<int>(simp2.size()) - 1;
 	segGen.initSideSegments(simp2[n2], simp2[n2-1], Position::LEFT);
 	for (int i = n2-2; i >= 0; --i) {
 		segGen.addNextSegment(simp2[i], true);
@@ -248,7 +248,7 @@ OffsetCurveBuilder::computeRingBufferCurve(const CoordinateSequence& inputPts,
 		BufferInputLineSimplifier::simplify(inputPts, distTol);
 	const CoordinateSequence& simp = *simp_;
 
-	int n = simp.size()-1;
+	int n = static_cast<int>(simp.size())-1;
 	segGen.initSideSegments(simp[n-1], simp[0], side);
 	for (int i = 1; i <= n; i++) {
 		bool addStartPoint = i != 1;
@@ -276,7 +276,7 @@ OffsetCurveBuilder::computeSingleSidedBufferCurve(
       BufferInputLineSimplifier::simplify(inputPts, -distTol);
     const CoordinateSequence& simp2 = *simp2_;
 
-    int n2 = simp2.size() - 1;
+    int n2 = static_cast<int>(simp2.size()) - 1;
     segGen.initSideSegments(simp2[n2], simp2[n2-1], Position::LEFT);
     segGen.addFirstSegment();
     for (int i = n2-2; i >= 0; --i) {
@@ -294,7 +294,7 @@ OffsetCurveBuilder::computeSingleSidedBufferCurve(
       BufferInputLineSimplifier::simplify(inputPts, distTol);
     const CoordinateSequence& simp1 = *simp1_;
 
-    int n1 = simp1.size() - 1;
+    int n1 = static_cast<int>(simp1.size()) - 1;
     segGen.initSideSegments(simp1[0], simp1[1], Position::LEFT);
     segGen.addFirstSegment();
     for (int i = 2; i <= n1; ++i) {
diff --git a/src/operation/buffer/OffsetCurveSetBuilder.cpp b/src/operation/buffer/OffsetCurveSetBuilder.cpp
index b32b0b6..6fe3572 100644
--- a/src/operation/buffer/OffsetCurveSetBuilder.cpp
+++ b/src/operation/buffer/OffsetCurveSetBuilder.cpp
@@ -172,7 +172,7 @@ OffsetCurveSetBuilder::add(const Geometry& g)
 void
 OffsetCurveSetBuilder::addCollection(const GeometryCollection *gc)
 {
-	for (int i=0, n=gc->getNumGeometries(); i<n; i++) {
+	for (int i=0, n=static_cast<int>(gc->getNumGeometries()); i<n; i++) {
 		const Geometry *g=gc->getGeometryN(i);
 		add(*g);
 	}
diff --git a/src/operation/buffer/SubgraphDepthLocater.cpp b/src/operation/buffer/SubgraphDepthLocater.cpp
index 647a24a..72a9a25 100644
--- a/src/operation/buffer/SubgraphDepthLocater.cpp
+++ b/src/operation/buffer/SubgraphDepthLocater.cpp
@@ -234,7 +234,7 @@ SubgraphDepthLocater::findStabbedSegments(
 //
 #define SKIP_LS 1
 
-	int n = pts->getSize()-1;
+	int n = static_cast<int>(pts->getSize())-1;
 	for (int i=0; i<n; ++i) {
 #ifndef SKIP_LS
 		seg.p0=pts->getAt(i);
diff --git a/src/operation/polygonize/Polygonizer.cpp b/src/operation/polygonize/Polygonizer.cpp
index 8360d12..ac91286 100644
--- a/src/operation/polygonize/Polygonizer.cpp
+++ b/src/operation/polygonize/Polygonizer.cpp
@@ -96,7 +96,7 @@ Polygonizer::~Polygonizer()
 void
 Polygonizer::add(vector<Geometry*> *geomList)
 {
-	for (auto g : (*geomList)) add(g);
+	for (auto &g : (*geomList)) add(g);
 }
 
 /*
@@ -110,7 +110,7 @@ Polygonizer::add(vector<Geometry*> *geomList)
 void
 Polygonizer::add(vector<const Geometry*> *geomList)
 {
-	for (auto g : (*geomList)) add(g);
+	for (auto &g : (*geomList)) add(g);
 }
 
 /*
@@ -229,7 +229,7 @@ Polygonizer::polygonize()
 
 	assignHolesToShells(holeList, shellList);
 
-	for (const auto er : shellList)
+	for (const auto &er : shellList)
 	{
 		polyList->push_back(er->getPolygon());
 	}
@@ -241,7 +241,7 @@ Polygonizer::findValidRings(const vector<EdgeRing*>& edgeRingList,
 	vector<EdgeRing*>& validEdgeRingList,
 	vector<LineString*>& invalidRingList)
 {
-	for (const auto er : edgeRingList)
+	for (const auto &er : edgeRingList)
 	{
 		if (er->isValid())
 		{
@@ -263,7 +263,7 @@ Polygonizer::findShellsAndHoles(const vector<EdgeRing*>& edgeRingList)
 {
 	holeList.clear();
 	shellList.clear();
-	for (const auto er : edgeRingList) {
+	for (const auto &er : edgeRingList) {
 		if (er->isHole())
 			holeList.push_back(er);
 		else
@@ -277,7 +277,7 @@ Polygonizer::findShellsAndHoles(const vector<EdgeRing*>& edgeRingList)
 void
 Polygonizer::assignHolesToShells(const vector<EdgeRing*>& holeList, vector<EdgeRing*>& shellList)
 {
-	for (const auto holeER : holeList) {
+	for (const auto &holeER : holeList) {
 		assignHoleToShell(holeER, shellList);
 		GEOS_CHECK_FOR_INTERRUPTS();
 	}

commit e39d8dd2a615b3c552cc3b9ace41fabecf961aae
Author: cvvergara <vicky at georepublic.de>
Date:   Fri Jan 12 22:28:21 2018 -0600

    Remove conversion warning from src/noding directory
    	modified:   src/noding/GeometryNoder.cpp
    	modified:   src/noding/IteratedNoder.cpp
    	modified:   src/noding/MCIndexNoder.cpp
    	modified:   src/noding/MCIndexSegmentSetMutualIntersector.cpp
    	modified:   src/noding/NodingValidator.cpp
    	modified:   src/noding/OrientedCoordinateArray.cpp
    	modified:   src/noding/SegmentNodeList.cpp
    	modified:   src/noding/SimpleNoder.cpp
    	modified:   src/noding/snapround/HotPixel.cpp
    	modified:   src/noding/snapround/MCIndexSnapRounder.cpp
    	modified:   src/noding/snapround/SimpleSnapRounder.cpp

diff --git a/src/noding/GeometryNoder.cpp b/src/noding/GeometryNoder.cpp
index 615fe12..333cf11 100644
--- a/src/noding/GeometryNoder.cpp
+++ b/src/noding/GeometryNoder.cpp
@@ -98,10 +98,8 @@ GeometryNoder::toGeometry(SegmentString::NonConstVect& nodedEdges)
   // Create a geometry out of the noded substrings.
   std::vector< geom::Geometry* >* lines = new std::vector< geom::Geometry * >();
   lines->reserve(nodedEdges.size());
-  for ( unsigned int i = 0, n = nodedEdges.size(); i < n; ++i )
+  for (auto &ss :  nodedEdges)
   {
-    SegmentString* ss = nodedEdges [i];
-
     const geom::CoordinateSequence* coords = ss->getCoordinates();
 
     // Check if an equivalent edge is known
@@ -140,12 +138,12 @@ GeometryNoder::getNoded()
 
   std::unique_ptr<geom::Geometry> noded = toGeometry(*nodedEdges);
 
-  for ( unsigned int i = 0, n = nodedEdges->size(); i < n; ++i )
-    delete ( *nodedEdges )[i];
+  for (auto &elem : (*nodedEdges))
+    delete elem;
   delete nodedEdges;
 
-  for (size_t i=0, n=lineList.size(); i<n; ++i)
-    delete lineList[i];
+  for (auto &elem : lineList)
+    delete elem;
 
   return noded;
 }
diff --git a/src/noding/IteratedNoder.cpp b/src/noding/IteratedNoder.cpp
index ca1f60c..4241fae 100644
--- a/src/noding/IteratedNoder.cpp
+++ b/src/noding/IteratedNoder.cpp
@@ -68,8 +68,8 @@ IteratedNoder::computeNodes(SegmentString::NonConstVect* segStrings)
 
 		// Delete noded strings from previous iteration
 		if ( lastStrings ) {
-			for ( unsigned int i = 0, n = lastStrings->size(); i < n; ++i )
-				delete (*lastStrings)[i];
+			for (auto &s : *lastStrings)
+				delete s;
 			delete lastStrings;
 		}
 		lastStrings = nodedSegStrings;
diff --git a/src/noding/MCIndexNoder.cpp b/src/noding/MCIndexNoder.cpp
index aefae13..9bcb2a8 100644
--- a/src/noding/MCIndexNoder.cpp
+++ b/src/noding/MCIndexNoder.cpp
@@ -151,7 +151,7 @@ MCIndexNoder::SegmentOverlapAction::overlap(MonotoneChain& mc1, size_t start1,
 		);
 	assert(ss2);
 
-	si.processIntersections(ss1, start1, ss2, start2);
+	si.processIntersections(ss1, static_cast<int>(start1), ss2, static_cast<int>(start2));
 }
 
 
diff --git a/src/noding/MCIndexSegmentSetMutualIntersector.cpp b/src/noding/MCIndexSegmentSetMutualIntersector.cpp
index c171f0f..b04ba4c 100644
--- a/src/noding/MCIndexSegmentSetMutualIntersector.cpp
+++ b/src/noding/MCIndexSegmentSetMutualIntersector.cpp
@@ -52,6 +52,7 @@ MCIndexSegmentSetMutualIntersector::addToIndex(SegmentString* segStr)
     }
 }
 
+
 /*private*/
 void
 MCIndexSegmentSetMutualIntersector::intersectChains()
@@ -166,7 +167,7 @@ MCIndexSegmentSetMutualIntersector::SegmentOverlapAction::overlap(
     SegmentString * ss1 = (SegmentString *)(mc1.getContext());
     SegmentString * ss2 = (SegmentString *)(mc2.getContext());
 
-    si.processIntersections(ss1, start1, ss2, start2);
+    si.processIntersections(ss1, static_cast<int>(start1), ss2, static_cast<int>(start2));
 }
 
 } // geos::noding
diff --git a/src/noding/NodingValidator.cpp b/src/noding/NodingValidator.cpp
index ddd949c..a230565 100644
--- a/src/noding/NodingValidator.cpp
+++ b/src/noding/NodingValidator.cpp
@@ -62,7 +62,7 @@ void
 NodingValidator::checkCollapses(const SegmentString& ss) const
 {
 	const CoordinateSequence& pts = *(ss.getCoordinates());
-	for (unsigned int i=0, n=pts.getSize()-2; i<n; ++i)
+	for (unsigned int i=0, n = static_cast<unsigned int>(pts.getSize() - 2); i < n; ++i)
 	{
 		checkCollapse(pts[i], pts[i + 1], pts[i + 2]);
 	}
@@ -108,8 +108,8 @@ NodingValidator::checkInteriorIntersections(const SegmentString& ss0,
 {
 	const CoordinateSequence& pts0 = *(ss0.getCoordinates());
 	const CoordinateSequence& pts1 = *(ss1.getCoordinates());
-	for (unsigned int i0=0, n0=pts0.size(); i0<n0-1; i0++) {
-		for (unsigned int i1=0, n1=pts1.size(); i1<n1-1; i1++) {
+	for (unsigned int i0=0, n0 = static_cast<unsigned int>(pts0.size()); i0 < n0 - 1; i0++) {
+		for (unsigned int i1=0, n1 = static_cast<unsigned int>(pts1.size()); i1 < n1 - 1; i1++) {
 			checkInteriorIntersections(ss0, i0, ss1, i1);
 		}
 	}
@@ -171,7 +171,7 @@ NodingValidator::checkEndPtVertexIntersections(const Coordinate& testPt,
 	{
 		const SegmentString* ss0 = *it;
 		const CoordinateSequence& pts = *(ss0->getCoordinates());
-		for (unsigned int j=1, n=pts.size()-1; j<n; ++j)
+		for (unsigned int j=1, n=static_cast<unsigned int>(pts.size()-1); j < n; ++j)
 		{
 			if (pts[j].equals(testPt))
 			{
diff --git a/src/noding/OrientedCoordinateArray.cpp b/src/noding/OrientedCoordinateArray.cpp
index 98fb474..fcfbebf 100644
--- a/src/noding/OrientedCoordinateArray.cpp
+++ b/src/noding/OrientedCoordinateArray.cpp
@@ -64,6 +64,7 @@ OrientedCoordinateArray::compareTo(const OrientedCoordinateArray& oca) const
 	return comp;
 }
 
+
 /* private static */
 int
 OrientedCoordinateArray::compareOriented(const geom::CoordinateSequence& pts1,
@@ -73,11 +74,11 @@ OrientedCoordinateArray::compareOriented(const geom::CoordinateSequence& pts1,
 {
     int dir1 = orientation1 ? 1 : -1;
     int dir2 = orientation2 ? 1 : -1;
-    int limit1 = orientation1 ? pts1.size() : -1;
-    int limit2 = orientation2 ? pts2.size() : -1;
+    auto limit1 = orientation1 ? pts1.size() : -1;
+    auto limit2 = orientation2 ? pts2.size() : -1;
 
-    int i1 = orientation1 ? 0 : pts1.size() - 1;
-    int i2 = orientation2 ? 0 : pts2.size() - 1;
+    auto i1 = orientation1 ? 0 : pts1.size() - 1;
+    auto i2 = orientation2 ? 0 : pts2.size() - 1;
     //int comp = 0; // unused, but is in JTS ...
     while (true) {
       int compPt = pts1[i1].compareTo(pts2[i2]);
diff --git a/src/noding/SegmentNodeList.cpp b/src/noding/SegmentNodeList.cpp
index 79d2954..59a13da 100644
--- a/src/noding/SegmentNodeList.cpp
+++ b/src/noding/SegmentNodeList.cpp
@@ -60,8 +60,8 @@ SegmentNodeList::~SegmentNodeList()
 SegmentNode*
 SegmentNodeList::add(const Coordinate& intPt, size_t segmentIndex)
 {
-	SegmentNode *eiNew=new SegmentNode(edge, intPt, segmentIndex,
-			edge.getSegmentOctant(segmentIndex));
+	SegmentNode *eiNew=new SegmentNode(edge, intPt, static_cast<unsigned int>(segmentIndex),
+			edge.getSegmentOctant(static_cast<unsigned int>(segmentIndex)));
 
 	std::pair<SegmentNodeList::iterator,bool> p = nodeMap.insert(eiNew);
 	if ( p.second ) { // new SegmentNode inserted
@@ -98,7 +98,7 @@ SegmentNodeList::addCollapsedNodes()
 			e=collapsedVertexIndexes.end();
 		i != e; ++i)
 	{
-		size_t vertexIndex = *i;
+		auto vertexIndex = static_cast<unsigned int>(*i);
 		add(edge.getCoordinate(vertexIndex), vertexIndex);
 	}
 }
@@ -113,8 +113,8 @@ SegmentNodeList::findCollapsesFromExistingVertices(
 
 	for (size_t i=0, n=edge.size()-2; i<n; ++i)
 	{
-		const Coordinate& p0 = edge.getCoordinate(i);
-		const Coordinate& p2 = edge.getCoordinate(i + 2);
+		const Coordinate& p0 = edge.getCoordinate(static_cast<unsigned int>(i));
+		const Coordinate& p2 = edge.getCoordinate(static_cast<unsigned int>(i + 2));
 		if (p0.equals2D(p2)) {
 			// add base of collapse as node
 			collapsedVertexIndexes.push_back(i + 1);
@@ -271,7 +271,7 @@ SegmentNodeList::createSplitEdge(SegmentNode *ei0, SegmentNode *ei1)
 	pts->setAt(ei0->coord, ipt++);
 	for (size_t i=ei0->segmentIndex+1; i<=ei1->segmentIndex; i++)
 	{
-		pts->setAt(edge.getCoordinate(i),ipt++);
+		pts->setAt(edge.getCoordinate(static_cast<unsigned int>(i)),ipt++);
 	}
 	if (useIntPt1) 	pts->setAt(ei1->coord, ipt++);
 
diff --git a/src/noding/SimpleNoder.cpp b/src/noding/SimpleNoder.cpp
index 2c938a8..77c501b 100644
--- a/src/noding/SimpleNoder.cpp
+++ b/src/noding/SimpleNoder.cpp
@@ -35,8 +35,8 @@ SimpleNoder::computeIntersects(SegmentString* e0, SegmentString* e1)
 
 	const CoordinateSequence* pts0 = e0->getCoordinates();
 	const CoordinateSequence* pts1 = e1->getCoordinates();
-	for (unsigned int i0=0, n0=pts0->getSize()-1; i0<n0; i0++) {
-		for (unsigned int i1=0, n1=pts1->getSize()-1; i1<n1; i1++) {
+	for (unsigned int i0=0, n0=static_cast<unsigned int>(pts0->getSize()-1); i0<n0; i0++) {
+		for (unsigned int i1=0, n1=static_cast<unsigned int>(pts1->getSize()-1); i1<n1; i1++) {
 			segInt->processIntersections(e0, i0, e1, i1);
 		}
 	}
diff --git a/src/noding/snapround/HotPixel.cpp b/src/noding/snapround/HotPixel.cpp
index bc7156d..a1f75eb 100644
--- a/src/noding/snapround/HotPixel.cpp
+++ b/src/noding/snapround/HotPixel.cpp
@@ -174,13 +174,13 @@ HotPixel::intersectsPixelClosure(const Coordinate& p0,
 bool
 HotPixel::addSnappedNode(NodedSegmentString& segStr, size_t segIndex)
 {
-	const Coordinate& p0 = segStr.getCoordinate(segIndex);
-	const Coordinate& p1 = segStr.getCoordinate(segIndex + 1);
+	const Coordinate& p0 = segStr.getCoordinate(static_cast<unsigned int>(segIndex));
+	const Coordinate& p1 = segStr.getCoordinate(static_cast<unsigned int>(segIndex + 1));
 
 	if (intersects(p0, p1))
 	{
 		//cout << "snapped: " <<  snapPt << endl;
-		segStr.addIntersection(getCoordinate(), segIndex);
+		segStr.addIntersection(getCoordinate(), static_cast<unsigned int>(segIndex));
 		return true;
 	}
 	return false;
diff --git a/src/noding/snapround/MCIndexSnapRounder.cpp b/src/noding/snapround/MCIndexSnapRounder.cpp
index 277e98e..7075f11 100644
--- a/src/noding/snapround/MCIndexSnapRounder.cpp
+++ b/src/noding/snapround/MCIndexSnapRounder.cpp
@@ -69,7 +69,7 @@ void
 MCIndexSnapRounder::computeVertexSnaps(NodedSegmentString* e)
 {
 	CoordinateSequence& pts0 = *(e->getCoordinates());
-	for (unsigned int i=0, n=pts0.size()-1; i<n; ++i)
+	for (unsigned int i=0, n=static_cast<unsigned int>(pts0.size()-1); i<n; ++i)
 	{
 		HotPixel hotPixel(pts0[i], scaleFactor, li);
 		bool isNodeAdded = pointSnapper->snap(hotPixel, e, i);
diff --git a/src/noding/snapround/SimpleSnapRounder.cpp b/src/noding/snapround/SimpleSnapRounder.cpp
index c600775..716bc0b 100644
--- a/src/noding/snapround/SimpleSnapRounder.cpp
+++ b/src/noding/snapround/SimpleSnapRounder.cpp
@@ -149,12 +149,12 @@ SimpleSnapRounder::computeVertexSnaps(NodedSegmentString* e0, NodedSegmentString
 	const CoordinateSequence* pts0 = e0->getCoordinates();
 	const CoordinateSequence* pts1 = e1->getCoordinates();
 
-	for (unsigned int i0=0, n0=pts0->getSize()-1; i0<n0; i0++)
+	for (unsigned int i0=0, n0=static_cast<unsigned int>(pts0->getSize()-1); i0<n0; i0++)
 	{
 		const Coordinate& p0 = pts0->getAt(i0);
 
 		HotPixel hotPixel(p0, scaleFactor, li);
-		for (unsigned int i1=1, n1=pts1->getSize()-1; i1<n1; i1++)
+		for (unsigned int i1=1, n1=static_cast<unsigned int>(pts1->getSize()-1); i1<n1; i1++)
 		{
         		// don't snap a vertex to itself
 			if (i0 == i1 && e0 == e1) {

commit 17664913c5fd5d34358fa59fc6de4a712bf95342
Author: cvvergara <vicky at georepublic.de>
Date:   Fri Jan 12 22:26:16 2018 -0600

    Remove conversion warning from src/linearref directory
    	modified:   src/linearref/ExtractLineByLocation.cpp
    	modified:   src/linearref/LinearIterator.cpp
    	modified:   src/linearref/LinearLocation.cpp
    	modified:   src/linearref/LocationIndexOfLine.cpp

diff --git a/src/linearref/ExtractLineByLocation.cpp b/src/linearref/ExtractLineByLocation.cpp
index f8c968f..0cc960c 100644
--- a/src/linearref/ExtractLineByLocation.cpp
+++ b/src/linearref/ExtractLineByLocation.cpp
@@ -107,7 +107,7 @@ LineString* ExtractLineByLocation::computeLine(const LinearLocation& start, cons
 	if (lastSegmentIndex >= coordinates->size())
     {
         assert(coordinates->size() > 0);
-        lastSegmentIndex = coordinates->size() - indexStep;
+        lastSegmentIndex = static_cast<unsigned int>(coordinates->size() - indexStep);
     }
 
 	if (! start.isVertex())
diff --git a/src/linearref/LinearIterator.cpp b/src/linearref/LinearIterator.cpp
index b652ea5..b7dd762 100644
--- a/src/linearref/LinearIterator.cpp
+++ b/src/linearref/LinearIterator.cpp
@@ -42,7 +42,7 @@ LinearIterator::LinearIterator(const Geometry* linear) :
 		vertexIndex(0),
 		componentIndex(0),
 		linear(linear),
-		numLines(linear->getNumGeometries())
+		numLines(static_cast<unsigned int>(linear->getNumGeometries()))
 {
 	loadCurrentLine();
 }
@@ -52,7 +52,7 @@ LinearIterator::LinearIterator(const Geometry* linear, const LinearLocation& sta
 		vertexIndex(segmentEndVertexIndex(start)),
 		componentIndex(start.getComponentIndex()),
 		linear(linear),
-		numLines(linear->getNumGeometries())
+		numLines(static_cast<unsigned int>(linear->getNumGeometries()))
 {
 	loadCurrentLine();
 }
@@ -61,7 +61,7 @@ LinearIterator::LinearIterator(const Geometry* linear, unsigned int componentInd
 		vertexIndex(vertexIndex),
 		componentIndex(componentIndex),
 		linear(linear),
-		numLines(linear->getNumGeometries())
+		numLines(static_cast<unsigned int>(linear->getNumGeometries()))
 {
 	loadCurrentLine();
 }
diff --git a/src/linearref/LinearLocation.cpp b/src/linearref/LinearLocation.cpp
index 0b8b147..fdcebb2 100644
--- a/src/linearref/LinearLocation.cpp
+++ b/src/linearref/LinearLocation.cpp
@@ -108,7 +108,7 @@ LinearLocation::clamp(const Geometry* linear)
 	if (segmentIndex >= linear->getNumPoints())
 	{
 		const LineString* line = dynamic_cast<const LineString*> (linear->getGeometryN(componentIndex));
-		segmentIndex = line->getNumPoints() - 1;
+		segmentIndex = static_cast<unsigned int>(line->getNumPoints() - 1);
 		segmentFraction = 1.0;
 	}
 }
@@ -141,7 +141,7 @@ LinearLocation::getSegmentLength(const Geometry* linearGeom) const
 	// ensure segment index is valid
 	unsigned int segIndex = segmentIndex;
 	if (segmentIndex >= lineComp->getNumPoints() - 1)
-		segIndex = lineComp->getNumPoints() - 2;
+		segIndex = static_cast<unsigned int>(lineComp->getNumPoints() - 2);
 
 	Coordinate p0 = lineComp->getCoordinateN(segIndex);
 	Coordinate p1 = lineComp->getCoordinateN(segIndex + 1);
@@ -152,9 +152,9 @@ LinearLocation::getSegmentLength(const Geometry* linearGeom) const
 void
 LinearLocation::setToEnd(const Geometry* linear)
 {
-	componentIndex = linear->getNumGeometries() - 1;
+	componentIndex = static_cast<unsigned int>(linear->getNumGeometries() - 1);
 	const LineString* lastLine = dynamic_cast<const LineString*>(linear->getGeometryN(componentIndex));
-	segmentIndex = lastLine->getNumPoints() - 1;
+	segmentIndex = static_cast<unsigned int>(lastLine->getNumPoints() - 1);
 	segmentFraction = 1.0;
 }
 
@@ -210,7 +210,7 @@ LinearLocation::getSegment(const Geometry* linearGeom) const
 	// check for endpoint - return last segment of the line if so
 	if (segmentIndex >= lineComp->getNumPoints() - 1)
 	{
-		Coordinate prev = lineComp->getCoordinateN(lineComp->getNumPoints() - 2);
+		Coordinate prev = lineComp->getCoordinateN(static_cast<int>(lineComp->getNumPoints() - 2));
 		return std::unique_ptr<LineSegment>(new LineSegment(prev, p0));
 	}
 	Coordinate p1 = lineComp->getCoordinateN(segmentIndex + 1);
@@ -315,7 +315,7 @@ LinearLocation::isEndpoint(const Geometry& linearGeom) const
   const LineString& lineComp = dynamic_cast<const LineString&>(
       *(linearGeom.getGeometryN(componentIndex)) );
   // check for endpoint
-  unsigned int nseg = lineComp.getNumPoints() - 1;
+  auto nseg = lineComp.getNumPoints() - 1;
   return segmentIndex >= nseg
         || (segmentIndex == nseg && segmentFraction >= 1.0);
 
diff --git a/src/linearref/LocationIndexOfLine.cpp b/src/linearref/LocationIndexOfLine.cpp
index 7b00513..f2c5240 100644
--- a/src/linearref/LocationIndexOfLine.cpp
+++ b/src/linearref/LocationIndexOfLine.cpp
@@ -50,7 +50,7 @@ LocationIndexOfLine::indicesOf(const Geometry* subLine) const
 {
 	Coordinate startPt = dynamic_cast<const LineString*> (subLine->getGeometryN(0))->getCoordinateN(0);
 	const LineString* lastLine = dynamic_cast<const LineString*> (subLine->getGeometryN(subLine->getNumGeometries() - 1));
-	Coordinate endPt = lastLine->getCoordinateN(lastLine->getNumPoints() - 1);
+	Coordinate endPt = lastLine->getCoordinateN(static_cast<int>(lastLine->getNumPoints() - 1));
 
 	LocationIndexOfPoint locPt(linearGeom);
 	LinearLocation *subLineLoc = new LinearLocation[2];

commit 409e612f920702f6e5f99d358e24b596823c6980
Author: cvvergara <vicky at georepublic.de>
Date:   Fri Jan 12 22:24:13 2018 -0600

    Remove conversion warning from src/io directory
    	modified:   src/io/WKBReader.cpp
    	modified:   src/io/WKBWriter.cpp
    	modified:   src/io/WKTReader.cpp
    	modified:   src/io/WKTWriter.cpp

diff --git a/src/io/WKBReader.cpp b/src/io/WKBReader.cpp
index 655282b..7796c83 100644
--- a/src/io/WKBReader.cpp
+++ b/src/io/WKBReader.cpp
@@ -74,6 +74,7 @@ WKBReader::printHEX(istream &is, ostream &os)
 	return os;
 }
 
+
 Geometry *
 WKBReader::readHEX(istream &is)
 {
@@ -83,10 +84,10 @@ WKBReader::readHEX(istream &is)
 	unsigned char result_high, result_low, value;
 	char high, low;
 
-	while( (high = is.get()) != char_traits<char>::eof() )
+	while( (high = static_cast<char>(is.get())) != char_traits<char>::eof() )
 	{
 		// geth the low part of the byte
-		low = is.get();
+		low = static_cast<char>(is.get());
 		if ( low == char_traits<char>::eof() )
 		  throw ParseException("Premature end of HEX string");
 
@@ -210,7 +211,7 @@ WKBReader::readHEX(istream &is)
 				throw  ParseException("Invalid HEX char");
 		}
 
-		value = (result_high<<4) + result_low;
+		value = static_cast<char>((result_high<<4) + result_low);
 
 #if DEBUG_HEX_READER
 	cout<<"HEX "<<high<<low<<" -> DEC "<<(int)value<<endl;
@@ -480,7 +481,7 @@ CoordinateSequence *
 WKBReader::readCoordinateSequence(int size)
 {
 	CoordinateSequence *seq = factory.getCoordinateSequenceFactory()->create(size, inputDimension);
-	unsigned int targetDim = seq->getDimension();
+	auto targetDim = seq->getDimension();
 	if ( targetDim > inputDimension )
 		targetDim = inputDimension;
 	for (int i=0; i<size; i++) {
diff --git a/src/io/WKBWriter.cpp b/src/io/WKBWriter.cpp
index 42debda..539899b 100644
--- a/src/io/WKBWriter.cpp
+++ b/src/io/WKBWriter.cpp
@@ -52,6 +52,7 @@ WKBWriter::WKBWriter(int dims, int bo, bool srid):
     outputDimension = defaultOutputDimension;
 }
 
+
 /* public */
 void
 WKBWriter::setOutputDimension(int dims)
@@ -170,7 +171,7 @@ WKBWriter::writePolygon(const Polygon &g)
 	}
 
 	std::size_t nholes = g.getNumInteriorRing();
-	writeInt(nholes+1);
+	writeInt(static_cast<int>(nholes + 1));
 
 	const LineString* ls = g.getExteriorRing();
 	assert(ls);
@@ -200,8 +201,8 @@ WKBWriter::writeGeometryCollection(const GeometryCollection &g,
 	writeGeometryType(wkbtype, g.getSRID());
 	writeSRID(g.getSRID());
 
-	std::size_t ngeoms = g.getNumGeometries();
-	writeInt(ngeoms);
+	auto ngeoms = g.getNumGeometries();
+	writeInt(static_cast<int>(ngeoms));
 
 	assert(outStream);
 	for (std::size_t i=0; i<ngeoms; i++)
@@ -281,8 +282,8 @@ WKBWriter::writeCoordinateSequence(const CoordinateSequence &cs,
 	bool is3d=false;
 	if ( outputDimension > 2) is3d = true;
 
-	if (sized) writeInt(size);
-	for (std::size_t i=0; i<size; i++) writeCoordinate(cs, i, is3d);
+	if (sized) writeInt(static_cast<int>(size));
+	for (std::size_t i=0; i<size; i++) writeCoordinate(cs, static_cast<int>(i), is3d);
 }
 
 void
diff --git a/src/io/WKTReader.cpp b/src/io/WKTReader.cpp
index 441b4ed..ec7c9c1 100644
--- a/src/io/WKTReader.cpp
+++ b/src/io/WKTReader.cpp
@@ -99,6 +99,7 @@ WKTReader::getCoordinates(StringTokenizer *tokenizer)
 	return coordinates;
 }
 
+
 void
 WKTReader::getPreciseCoordinate(StringTokenizer *tokenizer,
                                 Coordinate& coord,
@@ -200,7 +201,7 @@ WKTReader::getNextWord(StringTokenizer *tokenizer)
 		case StringTokenizer::TT_WORD:
         {
             string word = tokenizer->getSVal();
-            int i = word.size();
+            int i = static_cast<int>(word.size());
 
             while( --i >= 0 )
             {
diff --git a/src/io/WKTWriter.cpp b/src/io/WKTWriter.cpp
index 2c540b7..ac0917f 100644
--- a/src/io/WKTWriter.cpp
+++ b/src/io/WKTWriter.cpp
@@ -77,7 +77,7 @@ WKTWriter::toLineString(const CoordinateSequence& seq)
 {
 	stringstream buf(ios_base::in|ios_base::out);
     buf << "LINESTRING ";
-	unsigned int npts = seq.getSize();
+	unsigned int npts = static_cast<unsigned int>(seq.getSize());
 	if ( npts == 0 )
 	{
 		buf << "EMPTY";
@@ -360,7 +360,7 @@ WKTWriter::appendLineStringText(const LineString *lineString, int level,
 				writer->write(", ");
 				if (i%10==0) indent(level + 2, writer);
 			}
-			appendCoordinate(&(lineString->getCoordinateN(i)), writer);
+			appendCoordinate(&(lineString->getCoordinateN(static_cast<int>(i))), writer);
 		}
 		writer->write(")");
 	}
@@ -394,7 +394,7 @@ WKTWriter::appendMultiPointText(const MultiPoint *multiPoint,
 		writer->write("EMPTY");
 	} else {
 		writer->write("(");
-		for (unsigned int i=0, n=multiPoint->getNumGeometries();
+		for (unsigned int i=0, n=static_cast<unsigned int>(multiPoint->getNumGeometries());
 				i<n; i++)
 		{
 			if (i > 0)
@@ -417,7 +417,7 @@ void WKTWriter::appendMultiLineStringText(const MultiLineString *multiLineString
 		int level2=level;
 		bool doIndent=indentFirst;
 		writer->write("(");
-		for (unsigned int i=0, n=multiLineString->getNumGeometries();
+		for (unsigned int i=0, n=static_cast<unsigned int>(multiLineString->getNumGeometries());
 				i<n; i++)
 		{
 			if (i>0) {
@@ -441,7 +441,7 @@ void WKTWriter::appendMultiPolygonText(const MultiPolygon *multiPolygon, int lev
 		int level2=level;
 		bool doIndent=false;
 		writer->write("(");
-		for (unsigned int i=0, n=multiPolygon->getNumGeometries();
+		for (unsigned int i=0, n=static_cast<unsigned int>(multiPolygon->getNumGeometries());
 				i < n; i++)
 		{
 			if (i>0) {
@@ -469,7 +469,7 @@ WKTWriter::appendGeometryCollectionText(
 	} else {
 		int level2=level;
 		writer->write("(");
-		for (unsigned int i=0, n=geometryCollection->getNumGeometries();
+		for (unsigned int i=0, n=static_cast<unsigned int>(geometryCollection->getNumGeometries());
 				i < n ; ++i)
 		{
 			if (i>0) {

commit 61583e65112153e8248f1befee76ab4d7afd4ac5
Author: cvvergara <vicky at georepublic.de>
Date:   Fri Jan 12 22:22:24 2018 -0600

    Remove conversion warning from src/index directory
    	modified:   src/index/chain/MonotoneChain.cpp
    	modified:   src/index/quadtree/DoubleBits.cpp
    	modified:   src/index/quadtree/NodeBase.cpp

diff --git a/src/index/chain/MonotoneChain.cpp b/src/index/chain/MonotoneChain.cpp
index 633e74a..ea2232d 100644
--- a/src/index/chain/MonotoneChain.cpp
+++ b/src/index/chain/MonotoneChain.cpp
@@ -92,14 +92,14 @@ MonotoneChain::computeSelect(const Envelope& searchEnv,
     if(end0-start0==1)
     {
         //Debug.println("computeSelect:"+p0+p1);
-        mcs.select(*this,start0);
+        mcs.select(*this, static_cast<unsigned int>(start0));
         return;
     }
     // nothing to do if the envelopes don't overlap
     if (!searchEnv.intersects(mcs.tempEnv1))
         return;
     // the chains overlap,so split each in half and iterate (binary search)
-    unsigned int mid=(start0+end0)/2;
+    unsigned int mid= static_cast<unsigned int>((start0 + end0) / 2);
 
     // Assert: mid != start or end (since we checked above for end-start <= 1)
     // check terminating conditions before recursing
diff --git a/src/index/quadtree/DoubleBits.cpp b/src/index/quadtree/DoubleBits.cpp
index 6e538c1..36e93bb 100644
--- a/src/index/quadtree/DoubleBits.cpp
+++ b/src/index/quadtree/DoubleBits.cpp
@@ -118,7 +118,7 @@ int
 DoubleBits::getExponent() const
 {
 #if ASSUME_IEEE_DOUBLE
-	return biasedExponent()-EXPONENT_BIAS;
+	return static_cast<int>(biasedExponent() - EXPONENT_BIAS);
 #else
 	if ( x <= 0 ) return 0; // EDOM || ERANGE
 	return (int)((log(x)/log(2.0))+(x<1?-0.9:0.00000000001));
diff --git a/src/index/quadtree/NodeBase.cpp b/src/index/quadtree/NodeBase.cpp
index 108bf66..a492046 100644
--- a/src/index/quadtree/NodeBase.cpp
+++ b/src/index/quadtree/NodeBase.cpp
@@ -162,7 +162,7 @@ NodeBase::size() const
 			subSize += subnode[i]->size();
 		}
 	}
-	return subSize + items.size();
+	return subSize + static_cast<unsigned int>(items.size());
 }
 
 unsigned int

commit c8418c4ac23d260b13a938f5aa473f1ca7519acc
Author: cvvergara <vicky at georepublic.de>
Date:   Fri Jan 12 22:21:11 2018 -0600

    Remove conversion warning from src/geomgraph directory
    	modified:   src/geomgraph/Node.cpp
    	modified:   src/geomgraph/index/MonotoneChainEdge.cpp
    	modified:   src/geomgraph/index/SimpleEdgeSetIntersector.cpp
    	modified:   src/geomgraph/index/SimpleMCSweepLineIntersector.cpp
    	modified:   src/geomgraph/index/SimpleSweepLineIntersector.cpp

diff --git a/src/geomgraph/Node.cpp b/src/geomgraph/Node.cpp
index 655272f..f2a42df 100644
--- a/src/geomgraph/Node.cpp
+++ b/src/geomgraph/Node.cpp
@@ -261,7 +261,7 @@ Node::addZ(double z)
 	}
 	zvals.push_back(z);
 	ztot+=z;
-	coord.z=ztot/zvals.size();
+	coord.z = ztot / static_cast<double>(zvals.size());
 #if GEOS_DEBUG
 	cerr<<" added "<<z<<": ["<<ztot<<"/"<<zvals.size()<<"="<<coord.z<<"]"<<endl;
 #endif
diff --git a/src/geomgraph/index/MonotoneChainEdge.cpp b/src/geomgraph/index/MonotoneChainEdge.cpp
index b2c6362..8d28c6d 100644
--- a/src/geomgraph/index/MonotoneChainEdge.cpp
+++ b/src/geomgraph/index/MonotoneChainEdge.cpp
@@ -101,7 +101,7 @@ MonotoneChainEdge::computeIntersects(const MonotoneChainEdge &mce,
 	{
 		for(size_t j=0; j<J; ++j)
 		{
-			computeIntersectsForChain(i,mce,j,si);
+			computeIntersectsForChain(static_cast<int>(i),mce,static_cast<int>(j),si);
 		}
 	}
 }
diff --git a/src/geomgraph/index/SimpleEdgeSetIntersector.cpp b/src/geomgraph/index/SimpleEdgeSetIntersector.cpp
index ee63eff..f15f7d1 100644
--- a/src/geomgraph/index/SimpleEdgeSetIntersector.cpp
+++ b/src/geomgraph/index/SimpleEdgeSetIntersector.cpp
@@ -83,12 +83,12 @@ SimpleEdgeSetIntersector::computeIntersects(Edge *e0, Edge *e1,
 	const CoordinateSequence *pts0=e0->getCoordinates();
 	const CoordinateSequence *pts1=e1->getCoordinates();
 
-	size_t npts0=pts0->getSize();
-	size_t npts1=pts1->getSize();
+	auto npts0 = static_cast<int>(pts0->getSize());
+	auto npts1 = static_cast<int>(pts1->getSize());
 
-	for(size_t i0=0; i0<npts0-1; ++i0)
+	for(int i0=0; i0<npts0-1; ++i0)
 	{
-		for(size_t i1=0; i1<npts1-1; ++i1)
+		for(int i1=0; i1<npts1-1; ++i1)
 		{
 			si->addIntersections(e0, i0, e1, i1);
 		}
diff --git a/src/geomgraph/index/SimpleMCSweepLineIntersector.cpp b/src/geomgraph/index/SimpleMCSweepLineIntersector.cpp
index 4f1e56e..66f1f9b 100644
--- a/src/geomgraph/index/SimpleMCSweepLineIntersector.cpp
+++ b/src/geomgraph/index/SimpleMCSweepLineIntersector.cpp
@@ -95,10 +95,10 @@ SimpleMCSweepLineIntersector::add(Edge *edge, void* edgeSet)
 	for(size_t i=0; i<n; ++i)
 	{
 		GEOS_CHECK_FOR_INTERRUPTS();
-		MonotoneChain *mc=new MonotoneChain(mce,i);
-		SweepLineEvent *insertEvent=new SweepLineEvent(edgeSet,mce->getMinX(i),nullptr,mc);
+		MonotoneChain *mc=new MonotoneChain(mce, static_cast<int>(i));
+		SweepLineEvent *insertEvent=new SweepLineEvent(edgeSet,mce->getMinX(static_cast<int>(i)),nullptr,mc);
 		events.push_back(insertEvent);
-		events.push_back(new SweepLineEvent(edgeSet,mce->getMaxX(i),insertEvent,mc));
+		events.push_back(new SweepLineEvent(edgeSet,mce->getMaxX(static_cast<int>(i)),insertEvent,mc));
 	}
 }
 
@@ -117,7 +117,7 @@ SimpleMCSweepLineIntersector::prepareEvents()
 		SweepLineEvent *ev=events[i];
 		if (ev->isDelete())
 		{
-			ev->getInsertEvent()->setDeleteEventIndex(i);
+			ev->getInsertEvent()->setDeleteEventIndex(static_cast<int>(i));
 		}
 	}
 }
@@ -133,7 +133,7 @@ SimpleMCSweepLineIntersector::computeIntersections(SegmentIntersector *si)
 		SweepLineEvent *ev=events[i];
 		if (ev->isInsert())
 		{
-			processOverlaps(i,ev->getDeleteEventIndex(),ev,si);
+			processOverlaps(static_cast<int>(i),ev->getDeleteEventIndex(),ev,si);
 		}
 		if (si->getIsDone())
 		{
diff --git a/src/geomgraph/index/SimpleSweepLineIntersector.cpp b/src/geomgraph/index/SimpleSweepLineIntersector.cpp
index 0b09710..c785c36 100644
--- a/src/geomgraph/index/SimpleSweepLineIntersector.cpp
+++ b/src/geomgraph/index/SimpleSweepLineIntersector.cpp
@@ -89,7 +89,7 @@ SimpleSweepLineIntersector::add(Edge *edge, void* edgeSet)
 	std::size_t n=pts->getSize()-1;
 	for(std::size_t i=0; i<n; ++i)
 	{
-		SweepLineSegment *ss=new SweepLineSegment(edge, i);
+		SweepLineSegment *ss=new SweepLineSegment(edge, static_cast<int>(i));
 		SweepLineEvent *insertEvent=new SweepLineEvent(edgeSet, ss->getMinX(), nullptr, ss);
 		events.push_back(insertEvent);
 		events.push_back(new SweepLineEvent(edgeSet, ss->getMaxX(), insertEvent, ss));

commit 40d9c6c0fd761cc10b42ccc572e9310f300a8891
Author: cvvergara <vicky at georepublic.de>
Date:   Fri Jan 12 22:19:37 2018 -0600

    Remove conversion warning from src/geom directory
    	modified:   src/geom/LineString.cpp
    	modified:   src/geom/util/GeometryTransformer.cpp

diff --git a/src/geom/LineString.cpp b/src/geom/LineString.cpp
index 2afe34b..df35bd8 100644
--- a/src/geom/LineString.cpp
+++ b/src/geom/LineString.cpp
@@ -198,7 +198,7 @@ LineString::isClosed() const
 	if (isEmpty()) {
 		return false;
 	}
-	return getCoordinateN(0).equals2D(getCoordinateN(getNumPoints()-1));
+	return getCoordinateN(0).equals2D(getCoordinateN(static_cast<int>(getNumPoints()-1)));
 }
 
 bool
diff --git a/src/geom/util/GeometryTransformer.cpp b/src/geom/util/GeometryTransformer.cpp
index 70a1515..87735b2 100644
--- a/src/geom/util/GeometryTransformer.cpp
+++ b/src/geom/util/GeometryTransformer.cpp
@@ -159,7 +159,7 @@ GeometryTransformer::transformMultiPoint(
 
 	vector<Geometry*>* transGeomList = new vector<Geometry*>();
 
-	for (unsigned int i=0, n=geom->getNumGeometries(); i<n; i++)
+	for (unsigned int i=0, n=static_cast<unsigned int>(geom->getNumGeometries()); i<n; i++)
 	{
 		const Point* p = dynamic_cast<const Point*>(geom->getGeometryN(i));
 		assert(p);
@@ -190,7 +190,7 @@ GeometryTransformer::transformLinearRing(
 	CoordinateSequence::Ptr seq(transformCoordinates(
 		geom->getCoordinatesRO(), geom));
 
-	unsigned int seqSize = seq->size();
+	auto seqSize = seq->size();
 
 	// ensure a valid LinearRing
 	if ( seqSize > 0 && seqSize < 4 && ! preserveType )
@@ -232,7 +232,7 @@ GeometryTransformer::transformMultiLineString(
 
 	vector<Geometry*>* transGeomList = new vector<Geometry*>();
 
-	for (unsigned int i=0, n=geom->getNumGeometries(); i<n; i++)
+	for (unsigned int i=0, n=static_cast<unsigned int>(geom->getNumGeometries()); i<n; i++)
 	{
 		const LineString* l = dynamic_cast<const LineString*>(
 				geom->getGeometryN(i));
@@ -276,7 +276,7 @@ GeometryTransformer::transformPolygon(
 	}
 
 	vector<Geometry*>* holes = new vector<Geometry*>();
-	for (unsigned int i=0, n=geom->getNumInteriorRing(); i<n; i++)
+	for (unsigned int i=0, n=static_cast<unsigned int>(geom->getNumInteriorRing()); i<n; i++)
 	{
 		const LinearRing* lr = dynamic_cast<const LinearRing*>(
 			geom->getInteriorRingN(i));

commit 5ff02b274b93d7f41f8a247d86fefa85ae476286
Author: cvvergara <vicky at georepublic.de>
Date:   Fri Jan 12 21:14:25 2018 -0600

    Remove conversion warning from algorithm directory
    	modified:   src/algorithm/distance/DiscreteFrechetDistance.cpp
    	modified:   src/algorithm/distance/DiscreteHausdorffDistance.cpp

diff --git a/src/algorithm/distance/DiscreteFrechetDistance.cpp b/src/algorithm/distance/DiscreteFrechetDistance.cpp
index c65c96a..0399a60 100644
--- a/src/algorithm/distance/DiscreteFrechetDistance.cpp
+++ b/src/algorithm/distance/DiscreteFrechetDistance.cpp
@@ -69,11 +69,11 @@ DiscreteFrechetDistance::getSegementAt(const CoordinateSequence& seq, size_t ind
 		const geom::Coordinate& p0 = seq.getAt(i);
 		const geom::Coordinate& p1 = seq.getAt(i+1);
 
-		double delx = (p1.x - p0.x)/numSubSegs;
-		double dely = (p1.y - p0.y)/numSubSegs;
+		double delx = (p1.x - p0.x)/static_cast<double>(numSubSegs);
+		double dely = (p1.y - p0.y)/static_cast<double>(numSubSegs);
 
-		double x = p0.x + j*delx;
-		double y = p0.y + j*dely;
+		double x = p0.x + static_cast<double>(j)*delx;
+		double y = p0.y + static_cast<double>(j)*dely;
 		Coordinate pt(x, y);
 		return pt;
 	}
diff --git a/src/algorithm/distance/DiscreteHausdorffDistance.cpp b/src/algorithm/distance/DiscreteHausdorffDistance.cpp
index b0c9d15..16ac558 100644
--- a/src/algorithm/distance/DiscreteHausdorffDistance.cpp
+++ b/src/algorithm/distance/DiscreteHausdorffDistance.cpp
@@ -48,12 +48,12 @@ DiscreteHausdorffDistance::MaxDensifiedByFractionDistanceFilter::filter_ro(
     const geom::Coordinate& p0 = seq.getAt(index - 1);
     const geom::Coordinate& p1 = seq.getAt(index);
 
-    double delx = (p1.x - p0.x)/numSubSegs;
-    double dely = (p1.y - p0.y)/numSubSegs;
+    double delx = (p1.x - p0.x) / static_cast<double>(numSubSegs);
+    double dely = (p1.y - p0.y) / static_cast<double>(numSubSegs);
 
     for (size_t i = 0; i < numSubSegs; ++i) {
-      double x = p0.x + i*delx;
-      double y = p0.y + i*dely;
+      double x = p0.x + static_cast<double>(i) * delx;
+      double y = p0.y + static_cast<double>(i) * dely;
       Coordinate pt(x, y);
       minPtDist.initialize();
       DistanceToPoint::computeDistance(geom, pt, minPtDist);

commit da5f549ac67fb07d26d7625a39cad40e678fcda0
Author: cvvergara <vicky at georepublic.de>
Date:   Wed Jan 10 13:24:16 2018 -0600

    Removed warnings from src/operation directory
    
    	modified:   src/operation/overlay/ElevationMatrixCell.cpp
    	modified:   src/operation/overlay/LineBuilder.cpp
    	modified:   src/operation/valid/RepeatedPointTester.cpp
    
    	modified:   src/operation/polygonize/Polygonizer.cpp

diff --git a/src/operation/overlay/ElevationMatrixCell.cpp b/src/operation/overlay/ElevationMatrixCell.cpp
index 90dd56f..d5aee46 100644
--- a/src/operation/overlay/ElevationMatrixCell.cpp
+++ b/src/operation/overlay/ElevationMatrixCell.cpp
@@ -73,8 +73,9 @@ ElevationMatrixCell::getTotal() const
 double
 ElevationMatrixCell::getAvg() const
 {
-	if ( ! zvals.size() ) return DoubleNotANumber;
-	return (ztot/zvals.size());
+	return  zvals.size() ?
+		ztot / static_cast<double>(zvals.size()) :
+		DoubleNotANumber;
 }
 
 string
@@ -82,7 +83,7 @@ ElevationMatrixCell::print() const
 {
 	ostringstream ret;
 	//ret<<"["<<ztot<<"/"<<zvals.size()<<"]";
-	ret<<"["<<ztot/zvals.size()<<"]";
+	ret << "[" << getAvg() << "]";
 	return ret.str();
 }
 
diff --git a/src/operation/overlay/LineBuilder.cpp b/src/operation/overlay/LineBuilder.cpp
index 2490530..9994c0e 100644
--- a/src/operation/overlay/LineBuilder.cpp
+++ b/src/operation/overlay/LineBuilder.cpp
@@ -210,14 +210,13 @@ LineBuilder::buildLines(OverlayOp::OpCode /* opCode */)
 void
 LineBuilder::propagateZ(CoordinateSequence *cs)
 {
-	size_t i;
 #if GEOS_DEBUG
 	cerr<<"LineBuilder::propagateZ() called"<<endl;
 #endif
 
-	vector<int>v3d; // vertex 3d
+	vector<size_t> v3d; // vertex 3d
 	size_t cssize = cs->getSize();
-	for (i=0; i<cssize; i++)
+	for (size_t i = 0; i < cssize; ++i)
 	{
 		if ( !ISNAN(cs->getAt(i).z) ) v3d.push_back(i);
 	}
@@ -240,7 +239,7 @@ LineBuilder::propagateZ(CoordinateSequence *cs)
 	if ( v3d[0] != 0 )
 	{
 		double z = cs->getAt(v3d[0]).z;
-		for (int j=0; j<v3d[0]; j++)
+		for (size_t j = 0; j < v3d[0]; ++j)
 		{
 			buf = cs->getAt(j);
 			buf.z = z;
@@ -250,18 +249,18 @@ LineBuilder::propagateZ(CoordinateSequence *cs)
 
 	// interpolate inbetweens
 	size_t prev=v3d[0];
-	for (i=1; i<v3d.size(); i++)
+	for (size_t i = 1; i < v3d.size(); ++i)
 	{
-		int curr=v3d[i];
-		int dist = curr-prev;
+		auto curr = v3d[i];
+		auto dist = curr - prev;
 		if (dist > 1)
 		{
 			const Coordinate &cto = cs->getAt(curr);
 			const Coordinate &cfrom = cs->getAt(prev);
-			double gap = cto.z-cfrom.z;
-			double zstep = gap/dist;
+			double gap = cto.z - cfrom.z;
+			double zstep = gap / static_cast<double>(dist);
 			double z = cfrom.z;
-			for (int j=prev+1; j<curr; j++)
+			for (size_t j = prev+1; j < curr; ++j)
 			{
 				buf = cs->getAt(j);
 				z+=zstep;
diff --git a/src/operation/polygonize/Polygonizer.cpp b/src/operation/polygonize/Polygonizer.cpp
index 69ce959..8360d12 100644
--- a/src/operation/polygonize/Polygonizer.cpp
+++ b/src/operation/polygonize/Polygonizer.cpp
@@ -76,13 +76,11 @@ Polygonizer::~Polygonizer()
 {
 	delete graph;
 
-	for (unsigned int i=0, n=invalidRingLines.size(); i<n; ++i)
-		delete invalidRingLines[i];
+	for (auto &r : invalidRingLines) delete r;
 
 	if ( polyList )
 	{
-		for (unsigned int i=0, n=polyList->size(); i<n; ++i)
-			delete (*polyList)[i];
+		for (auto &p : (*polyList)) delete p;
 		delete polyList;
 	}
 }
@@ -98,11 +96,7 @@ Polygonizer::~Polygonizer()
 void
 Polygonizer::add(vector<Geometry*> *geomList)
 {
-	for(unsigned int i=0, n=geomList->size(); i<n; ++i)
-	{
-		const Geometry *geometry=(*geomList)[i];
-		add(geometry);
-	}
+	for (auto g : (*geomList)) add(g);
 }
 
 /*
@@ -116,11 +110,7 @@ Polygonizer::add(vector<Geometry*> *geomList)
 void
 Polygonizer::add(vector<const Geometry*> *geomList)
 {
-	for(unsigned int i=0, n=geomList->size(); i<n; ++i)
-	{
-		const Geometry *geometry=(*geomList)[i];
-		add(geometry);
-	}
+	for (auto g : (*geomList)) add(g);
 }
 
 /*
@@ -239,9 +229,8 @@ Polygonizer::polygonize()
 
 	assignHolesToShells(holeList, shellList);
 
-	for (unsigned int i=0, n=shellList.size(); i<n; ++i)
+	for (const auto er : shellList)
 	{
-		EdgeRing *er=shellList[i];
 		polyList->push_back(er->getPolygon());
 	}
 }
@@ -252,11 +241,8 @@ Polygonizer::findValidRings(const vector<EdgeRing*>& edgeRingList,
 	vector<EdgeRing*>& validEdgeRingList,
 	vector<LineString*>& invalidRingList)
 {
-	typedef vector<EdgeRing*> EdgeRingList;
-
-	for (EdgeRingList::size_type i=0, n=edgeRingList.size(); i<n; ++i)
+	for (const auto er : edgeRingList)
 	{
-		EdgeRing *er = edgeRingList[i];
 		if (er->isValid())
 		{
 			validEdgeRingList.push_back(er);
@@ -277,13 +263,12 @@ Polygonizer::findShellsAndHoles(const vector<EdgeRing*>& edgeRingList)
 {
 	holeList.clear();
 	shellList.clear();
-	for (unsigned int i=0, n=edgeRingList.size(); i<n; ++i)
-	{
-		EdgeRing *er=edgeRingList[i];
+	for (const auto er : edgeRingList) {
 		if (er->isHole())
 			holeList.push_back(er);
 		else
 			shellList.push_back(er);
+
 		GEOS_CHECK_FOR_INTERRUPTS();
 	}
 }
@@ -292,9 +277,7 @@ Polygonizer::findShellsAndHoles(const vector<EdgeRing*>& edgeRingList)
 void
 Polygonizer::assignHolesToShells(const vector<EdgeRing*>& holeList, vector<EdgeRing*>& shellList)
 {
-	for (unsigned int i=0, n=holeList.size(); i<n; ++i)
-	{
-		EdgeRing *holeER=holeList[i];
+	for (const auto holeER : holeList) {
 		assignHoleToShell(holeER, shellList);
 		GEOS_CHECK_FOR_INTERRUPTS();
 	}
diff --git a/src/operation/valid/RepeatedPointTester.cpp b/src/operation/valid/RepeatedPointTester.cpp
index 8847a69..d128a54 100644
--- a/src/operation/valid/RepeatedPointTester.cpp
+++ b/src/operation/valid/RepeatedPointTester.cpp
@@ -83,8 +83,8 @@ RepeatedPointTester::hasRepeatedPoint(const Geometry *g)
 bool
 RepeatedPointTester::hasRepeatedPoint(const CoordinateSequence *coord)
 {
-	unsigned int npts=coord->getSize();
-	for(unsigned int i=1; i<npts; ++i)
+	auto npts=coord->getSize();
+	for(size_t i=1; i<npts; ++i)
 	{
 		if (coord->getAt(i - 1)==coord->getAt(i)) {
 			repeatedCoord=coord->getAt(i);
@@ -115,7 +115,7 @@ RepeatedPointTester::hasRepeatedPoint(const Polygon *p)
 bool
 RepeatedPointTester::hasRepeatedPoint(const GeometryCollection *gc)
 {
-	for(unsigned int i=0, n=gc->getNumGeometries(); i<n; ++i)
+	for(size_t i=0, n=gc->getNumGeometries(); i<n; ++i)
 	{
 		const Geometry *g=gc->getGeometryN(i);
 		if (hasRepeatedPoint(g)) return true;
@@ -126,7 +126,7 @@ RepeatedPointTester::hasRepeatedPoint(const GeometryCollection *gc)
 bool
 RepeatedPointTester::hasRepeatedPoint(const MultiPolygon *gc)
 {
-	for(unsigned int i=0, n=gc->getNumGeometries(); i<n; ++i)
+	for(size_t i=0, n=gc->getNumGeometries(); i<n; ++i)
 	{
 		const Geometry *g=gc->getGeometryN(i);
 		if (hasRepeatedPoint(g)) return true;
@@ -137,7 +137,7 @@ RepeatedPointTester::hasRepeatedPoint(const MultiPolygon *gc)
 bool
 RepeatedPointTester::hasRepeatedPoint(const MultiLineString *gc)
 {
-	for(unsigned int i=0, n=gc->getNumGeometries(); i<n; ++i)
+	for(size_t i=0, n=gc->getNumGeometries(); i<n; ++i)
 	{
 		const Geometry *g=gc->getGeometryN(i);
 		if (hasRepeatedPoint(g)) return true;

commit eb5aba7bc8383cc006f184132c42375fa97336d3
Author: cvvergara <vicky at georepublic.de>
Date:   Tue Jan 9 18:54:21 2018 -0600

    fixing conversion warning on "tests" directory

diff --git a/tests/unit/capi/GEOSDistanceTest.cpp b/tests/unit/capi/GEOSDistanceTest.cpp
index ef3307f..b66c668 100644
--- a/tests/unit/capi/GEOSDistanceTest.cpp
+++ b/tests/unit/capi/GEOSDistanceTest.cpp
@@ -99,10 +99,10 @@ namespace tut
 
         std::sort(angle.begin(), angle.end());
 
-        GEOSCoordSequence* seq_1 = GEOSCoordSeq_create(num_points, 2);
-        for (size_t i = 0; i < num_points; i++)
+        GEOSCoordSequence* seq_1 = GEOSCoordSeq_create(static_cast<unsigned int>(num_points), 2);
+        for (unsigned int i = 0; i < num_points; i++)
         {
-            size_t idx = i == (num_points - 1) ? 0 : i;
+            auto idx = i == (num_points - 1) ? 0 : i;
 
             GEOSCoordSeq_setX(seq_1, i, x + radius[idx] * cos(angle[idx]));
             GEOSCoordSeq_setY(seq_1, i, y + radius[idx] * sin(angle[idx]));
diff --git a/tests/unit/geom/GeometryFactoryTest.cpp b/tests/unit/geom/GeometryFactoryTest.cpp
index b69a723..f8877ea 100644
--- a/tests/unit/geom/GeometryFactoryTest.cpp
+++ b/tests/unit/geom/GeometryFactoryTest.cpp
@@ -1122,7 +1122,7 @@ reader_(factory_.get())
 
 		for (std::size_t i = 0; i < size; ++i)
 		{
-			const std::size_t factor = i * i;
+			const double factor = static_cast<double>(i * i);
 			CoordArrayPtr coords = new geos::geom::CoordinateArraySequence(lineSize);
 			ensure( coords != nullptr );
 			coords->setAt(Coordinate(0. + factor, 0. + factor), 0);
@@ -1164,7 +1164,7 @@ reader_(factory_.get())
 
 		for (std::size_t i = 0; i < size; ++i)
 		{
-			const std::size_t factor = i * i;
+			const double factor = static_cast<double>(i * i);
 			CoordArrayPtr coords = new geos::geom::CoordinateArraySequence(lineSize);
 			ensure( coords != nullptr );
 			coords->setAt(Coordinate(0. + factor, 0. + factor), 0);
diff --git a/tests/xmltester/XMLTester.cpp b/tests/xmltester/XMLTester.cpp
index 158d2c5..8ffba8b 100644
--- a/tests/xmltester/XMLTester.cpp
+++ b/tests/xmltester/XMLTester.cpp
@@ -127,7 +127,7 @@ double java_math_round(double val)
 const char * getIndent( unsigned int numIndents )
 {
     static const char * pINDENT = "                                      + ";
-    static const unsigned int LENGTH = strlen( pINDENT );
+    static const unsigned int LENGTH = static_cast<unsigned int>(strlen( pINDENT ));
 
     if ( numIndents > LENGTH ) numIndents = LENGTH;
 

commit 4a13a7fc2485ca7af7ba973cdc3125b615a54bc7
Author: cvvergara <vicky at georepublic.de>
Date:   Tue Jan 9 18:17:54 2018 -0600

    fixed unused parameter

diff --git a/tests/perf/operation/predicate/RectangleIntersectsPerfTest.cpp b/tests/perf/operation/predicate/RectangleIntersectsPerfTest.cpp
index 400f5ac..c09b6ef 100644
--- a/tests/perf/operation/predicate/RectangleIntersectsPerfTest.cpp
+++ b/tests/perf/operation/predicate/RectangleIntersectsPerfTest.cpp
@@ -108,7 +108,7 @@ private:
   }
 
   // Push newly created geoms to rectLit
-  void createRectangles(const Envelope& env, int nRect, double rectSize,
+  void createRectangles(const Envelope& env, int nRect, double,
                         vector<const Geometry*>& rectList)
   {
     int nSide =  1 + (int)sqrt((double) nRect);
diff --git a/tests/unit/capi/GEOSSTRtreeTest.cpp b/tests/unit/capi/GEOSSTRtreeTest.cpp
index 8ecef36..a3f6293 100644
--- a/tests/unit/capi/GEOSSTRtreeTest.cpp
+++ b/tests/unit/capi/GEOSSTRtreeTest.cpp
@@ -23,7 +23,7 @@ static GEOSGeometry* INTPOINT2GEOS(INTPOINT* p) {
 	return GEOSGeom_createPoint(seq);
 }
 
-static int INTPOINT_dist(const void* a, const void* b, double* distance, void* userdata) {
+static int INTPOINT_dist(const void* a, const void* b, double* distance, void*) {
 	INTPOINT* p1 = (INTPOINT*) a;
 	INTPOINT* p2 = (INTPOINT*) b;
 
diff --git a/tests/xmltester/XMLTester.cpp b/tests/xmltester/XMLTester.cpp
index 2307ae1..158d2c5 100644
--- a/tests/xmltester/XMLTester.cpp
+++ b/tests/xmltester/XMLTester.cpp
@@ -1560,7 +1560,7 @@ usage(char *me, int exitcode, std::ostream &os)
 }
 
 void
-request_interrupt(int sig)
+request_interrupt(int)
 {
   geos::util::Interrupt::request();
 }

commit 2d49b1b891723228d51518ed682dede3c15042cf
Author: cvvergara <vicky at georepublic.de>
Date:   Wed Jan 10 13:13:00 2018 -0600

    Fixed profiler warnings

diff --git a/include/geos/profiler.h b/include/geos/profiler.h
index 42b8527..b6f951a 100644
--- a/include/geos/profiler.h
+++ b/include/geos/profiler.h
@@ -80,8 +80,9 @@ public:
 	void stop()
 	{
 		gettimeofday(&stoptime, nullptr);
-		double elapsed = 1000000*(stoptime.tv_sec-starttime.tv_sec)+
-			(stoptime.tv_usec-starttime.tv_usec);
+		double elapsed = static_cast<double>(
+				1000000 * (stoptime.tv_sec - starttime.tv_sec)
+				+ (stoptime.tv_usec - starttime.tv_usec));
 
 		timings.push_back(elapsed);
 		totaltime += elapsed;
@@ -91,7 +92,7 @@ public:
 			if ( elapsed > max ) max = elapsed;
 			if ( elapsed < min ) min = elapsed;
 		}
-		avg = totaltime / timings.size();
+		avg = totaltime / static_cast<double>(timings.size());
 	}
 
 	/** \brief Return Max stored timing */
diff --git a/src/util/Profiler.cpp b/src/util/Profiler.cpp
index 3c79522..9b85f0f 100644
--- a/src/util/Profiler.cpp
+++ b/src/util/Profiler.cpp
@@ -34,32 +34,6 @@ Profile::~Profile()
 {
 }
 
-#if 0
-void
-Profile::start()
-{
-	gettimeofday(&starttime, NULL);
-}
-
-void
-Profile::stop()
-{
-	gettimeofday(&stoptime, NULL);
-	double elapsed = 1000000*(stoptime.tv_sec-starttime.tv_sec)+
-		(stoptime.tv_usec-starttime.tv_usec);
-
-	timings.push_back(elapsed);
-	totaltime += elapsed;
-	if ( timings.size() == 1 ) max = min = elapsed;
-	else
-	{
-		if ( elapsed > max ) max = elapsed;
-		if ( elapsed < min ) min = elapsed;
-	}
-	avg = totaltime / timings.size();
-}
-#endif
-
 double
 Profile::getMax() const
 {

-----------------------------------------------------------------------

Summary of changes:
 include/geos/geom/BinaryOp.h                       |    4 +--
 include/geos/noding/BasicSegmentString.h           |    2 +-
 include/geos/noding/SegmentIntersectionDetector.h  |    2 +-
 include/geos/profiler.h                            |    7 ++--
 src/algorithm/distance/DiscreteFrechetDistance.cpp |    8 ++---
 .../distance/DiscreteHausdorffDistance.cpp         |    8 ++---
 src/geom/LineString.cpp                            |    2 +-
 src/geom/util/GeometryTransformer.cpp              |    8 ++---
 src/geomgraph/Node.cpp                             |    2 +-
 src/geomgraph/index/MonotoneChainEdge.cpp          |    2 +-
 src/geomgraph/index/SimpleEdgeSetIntersector.cpp   |    8 ++---
 .../index/SimpleMCSweepLineIntersector.cpp         |   10 +++---
 src/geomgraph/index/SimpleSweepLineIntersector.cpp |    2 +-
 src/index/chain/MonotoneChain.cpp                  |    4 +--
 src/index/quadtree/DoubleBits.cpp                  |    2 +-
 src/index/quadtree/NodeBase.cpp                    |    2 +-
 src/io/WKBReader.cpp                               |    9 ++---
 src/io/WKBWriter.cpp                               |   11 +++---
 src/io/WKTReader.cpp                               |    3 +-
 src/io/WKTWriter.cpp                               |   12 +++----
 src/linearref/ExtractLineByLocation.cpp            |    2 +-
 src/linearref/LinearIterator.cpp                   |    6 ++--
 src/linearref/LinearLocation.cpp                   |   12 +++----
 src/linearref/LocationIndexOfLine.cpp              |    2 +-
 src/noding/GeometryNoder.cpp                       |   12 +++----
 src/noding/IteratedNoder.cpp                       |    4 +--
 src/noding/MCIndexNoder.cpp                        |    2 +-
 src/noding/MCIndexSegmentSetMutualIntersector.cpp  |    3 +-
 src/noding/NodingValidator.cpp                     |    8 ++---
 src/noding/OrientedCoordinateArray.cpp             |    9 ++---
 src/noding/SegmentNodeList.cpp                     |   12 +++----
 src/noding/SimpleNoder.cpp                         |    4 +--
 src/noding/snapround/HotPixel.cpp                  |    6 ++--
 src/noding/snapround/MCIndexSnapRounder.cpp        |    2 +-
 src/noding/snapround/SimpleSnapRounder.cpp         |    4 +--
 src/operation/buffer/OffsetCurveBuilder.cpp        |   14 ++++----
 src/operation/buffer/OffsetCurveSetBuilder.cpp     |    2 +-
 src/operation/buffer/SubgraphDepthLocater.cpp      |    2 +-
 src/operation/distance/DistanceOp.cpp              |    6 ++--
 .../intersection/RectangleIntersection.cpp         |   14 ++++----
 .../intersection/RectangleIntersectionBuilder.cpp  |   14 ++++----
 src/operation/linemerge/LineMerger.cpp             |    2 +-
 src/operation/linemerge/LineSequencer.cpp          |    2 +-
 src/operation/overlay/ElevationMatrixCell.cpp      |    7 ++--
 src/operation/overlay/LineBuilder.cpp              |   19 +++++------
 src/operation/overlay/OverlayOp.cpp                |    3 +-
 src/operation/polygonize/Polygonizer.cpp           |   35 +++++---------------
 src/operation/predicate/RectangleContains.cpp      |    4 +--
 src/operation/valid/IsValidOp.cpp                  |   20 +++++------
 src/operation/valid/RepeatedPointTester.cpp        |   10 +++---
 .../PrecisionReducerCoordinateOperation.cpp        |    2 +-
 src/precision/SimpleGeometryPrecisionReducer.cpp   |    2 +-
 src/simplify/TaggedLineString.cpp                  |    4 +--
 src/triangulate/quadedge/QuadEdgeSubdivision.cpp   |    2 +-
 src/util/Profiler.cpp                              |   26 ---------------
 .../predicate/RectangleIntersectsPerfTest.cpp      |    2 +-
 tests/unit/capi/GEOSDistanceTest.cpp               |    6 ++--
 tests/unit/capi/GEOSSTRtreeTest.cpp                |    2 +-
 tests/unit/geom/GeometryFactoryTest.cpp            |    4 +--
 tests/xmltester/XMLTester.cpp                      |    4 +--
 60 files changed, 182 insertions(+), 222 deletions(-)


hooks/post-receive
-- 
geos


More information about the geos-commits mailing list