1
0
mirror of https://bitbucket.org/librepilot/librepilot.git synced 2025-01-22 07:52:12 +01:00
LibrePilot/make/3rdparty/osgearth/osgearth-geos-3_6_1-support.patch
Philippe Renon ad84e51a04 LP-491 upgrade 3rdparty build to osg 3.5.5 and osgearth 2.8
from osg 3.5.3 and osgearth 2.7

the osg upgrade allows removal of the Qt dependency
this means that we don't need to recompile osg and
osgearth for all OSes each time we upgrade Qt :)
2017-03-28 21:44:21 +02:00

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