mirror of
https://bitbucket.org/librepilot/librepilot.git
synced 2025-01-22 07:52:12 +01:00
81 lines
2.4 KiB
Diff
81 lines
2.4 KiB
Diff
|
From 2a0f721b58a3280f151df095ef6cb8a9f063ba25 Mon Sep 17 00:00:00 2001
|
||
|
From: Philippe Renon <philippe_renon@yahoo.fr>
|
||
|
Date: Fri, 13 Jan 2017 15:13:54 +0100
|
||
|
Subject: [PATCH] support geos 3.6.1
|
||
|
|
||
|
---
|
||
|
src/osgEarthSymbology/GEOS | 3 ++-
|
||
|
src/osgEarthSymbology/GEOS.cpp | 13 ++-----------
|
||
|
2 files changed, 4 insertions(+), 12 deletions(-)
|
||
|
|
||
|
diff --git a/src/osgEarthSymbology/GEOS b/src/osgEarthSymbology/GEOS
|
||
|
index b695bb7de..0184f6422 100644
|
||
|
--- a/src/osgEarthSymbology/GEOS
|
||
|
+++ b/src/osgEarthSymbology/GEOS
|
||
|
@@ -26,6 +26,7 @@
|
||
|
#include <osgEarthSymbology/Style>
|
||
|
#include <osgEarthSymbology/Geometry>
|
||
|
#include <geos/geom/Geometry.h>
|
||
|
+#include <geos/geom/GeometryFactory.h>
|
||
|
|
||
|
namespace osgEarth { namespace Symbology
|
||
|
{
|
||
|
@@ -45,7 +46,7 @@ namespace osgEarth { namespace Symbology
|
||
|
void disposeGeometry(geos::geom::Geometry* input);
|
||
|
|
||
|
protected:
|
||
|
- geos::geom::GeometryFactory* _factory;
|
||
|
+ geos::geom::GeometryFactory::unique_ptr _factory;
|
||
|
};
|
||
|
|
||
|
} } // namespace osgEarth::Features
|
||
|
diff --git a/src/osgEarthSymbology/GEOS.cpp b/src/osgEarthSymbology/GEOS.cpp
|
||
|
index cf04e3309..d87bf461f 100644
|
||
|
--- a/src/osgEarthSymbology/GEOS.cpp
|
||
|
+++ b/src/osgEarthSymbology/GEOS.cpp
|
||
|
@@ -212,7 +212,7 @@ GEOSContext::GEOSContext()
|
||
|
geos::geom::PrecisionModel* pm = new geos::geom::PrecisionModel(geom::PrecisionModel::FLOATING);
|
||
|
|
||
|
// Factory will clone the PM
|
||
|
- _factory = new geos::geom::GeometryFactory( pm );
|
||
|
+ _factory = geos::geom::GeometryFactory::create( pm );
|
||
|
|
||
|
// Delete the template.
|
||
|
delete pm;
|
||
|
@@ -220,7 +220,6 @@ GEOSContext::GEOSContext()
|
||
|
|
||
|
GEOSContext::~GEOSContext()
|
||
|
{
|
||
|
- delete _factory;
|
||
|
}
|
||
|
|
||
|
geom::Geometry*
|
||
|
@@ -229,12 +228,7 @@ GEOSContext::importGeometry(const Symbology::Geometry* input)
|
||
|
geom::Geometry* output = 0L;
|
||
|
if ( input && input->isValid() )
|
||
|
{
|
||
|
- output = import( input, _factory );
|
||
|
-
|
||
|
- // if output is ok, it will have a pointer to f. this is probably a leak.
|
||
|
- // TODO: Check whether this is a leak!! -gw
|
||
|
- //if ( !output )
|
||
|
- // delete f;
|
||
|
+ output = import( input, _factory.get() );
|
||
|
}
|
||
|
return output;
|
||
|
}
|
||
|
@@ -327,10 +321,7 @@ GEOSContext::disposeGeometry(geom::Geometry* input)
|
||
|
{
|
||
|
if (input)
|
||
|
{
|
||
|
- geom::GeometryFactory* f = const_cast<geom::GeometryFactory*>(input->getFactory());
|
||
|
_factory->destroyGeometry(input);
|
||
|
- if ( f != _factory )
|
||
|
- delete f;
|
||
|
}
|
||
|
}
|
||
|
|
||
|
--
|
||
|
2.12.0
|
||
|
|