[QGIS Commit] r8156 - trunk/qgis/src/core
svn_qgis at osgeo.org
svn_qgis at osgeo.org
Thu Feb 14 05:34:08 EST 2008
Author: mhugent
Date: 2008-02-14 05:34:08 -0500 (Thu, 14 Feb 2008)
New Revision: 8156
Modified:
trunk/qgis/src/core/qgsgeometry.cpp
Log:
Added some 0 pointer checks for geometry (useful e.g. in cases of NULL geometries in postgis layers)
Modified: trunk/qgis/src/core/qgsgeometry.cpp
===================================================================
--- trunk/qgis/src/core/qgsgeometry.cpp 2008-02-13 18:37:41 UTC (rev 8155)
+++ trunk/qgis/src/core/qgsgeometry.cpp 2008-02-14 10:34:08 UTC (rev 8156)
@@ -5044,7 +5044,13 @@
QgsGeometry* QgsGeometry::buffer(double distance, int segments)
{
if (mGeos == NULL)
- exportWkbToGeos();
+ {
+ exportWkbToGeos();
+ }
+ if(!mGeos)
+ {
+ return 0;
+ }
GEOS_GEOM::Geometry* geos = mGeos->buffer(distance, segments);
QgsGeometry* g = new QgsGeometry;
g->setGeos(geos);
@@ -5054,7 +5060,13 @@
QgsGeometry* QgsGeometry::convexHull()
{
if (mGeos == NULL)
- exportWkbToGeos();
+ {
+ exportWkbToGeos();
+ }
+ if(!mGeos)
+ {
+ return 0;
+ }
GEOS_GEOM::Geometry* geos = mGeos->convexHull();
QgsGeometry* g = new QgsGeometry;
g->setGeos(geos);
@@ -5064,11 +5076,21 @@
QgsGeometry* QgsGeometry::intersection(QgsGeometry* geometry)
{
if (geometry == NULL)
- return NULL;
+ {
+ return NULL;
+ }
if (mGeos == NULL)
- exportWkbToGeos();
+ {
+ exportWkbToGeos();
+ }
if (geometry->mGeos == NULL)
- geometry->exportWkbToGeos();
+ {
+ geometry->exportWkbToGeos();
+ }
+ if(!mGeos || !geometry->mGeos)
+ {
+ return 0;
+ }
GEOS_GEOM::Geometry* geos = mGeos->intersection(geometry->mGeos);
QgsGeometry* g = new QgsGeometry;
g->setGeos(geos);
@@ -5078,11 +5100,21 @@
QgsGeometry* QgsGeometry::Union(QgsGeometry* geometry)
{
if (geometry == NULL)
- return NULL;
+ {
+ return NULL;
+ }
if (mGeos == NULL)
- exportWkbToGeos();
+ {
+ exportWkbToGeos();
+ }
if (geometry->mGeos == NULL)
- geometry->exportWkbToGeos();
+ {
+ geometry->exportWkbToGeos();
+ }
+ if(!mGeos || !geometry->mGeos)
+ {
+ return 0;
+ }
GEOS_GEOM::Geometry* geos = mGeos->Union(geometry->mGeos);
QgsGeometry* g = new QgsGeometry;
g->setGeos(geos);
@@ -5092,11 +5124,21 @@
QgsGeometry* QgsGeometry::difference(QgsGeometry* geometry)
{
if (geometry == NULL)
- return NULL;
+ {
+ return NULL;
+ }
if (mGeos == NULL)
- exportWkbToGeos();
+ {
+ exportWkbToGeos();
+ }
if (geometry->mGeos == NULL)
- geometry->exportWkbToGeos();
+ {
+ geometry->exportWkbToGeos();
+ }
+ if(!mGeos || !geometry->mGeos)
+ {
+ return 0;
+ }
GEOS_GEOM::Geometry* geos = mGeos->difference(geometry->mGeos);
QgsGeometry* g = new QgsGeometry;
g->setGeos(geos);
@@ -5106,11 +5148,21 @@
QgsGeometry* QgsGeometry::symDifference(QgsGeometry* geometry)
{
if (geometry == NULL)
- return NULL;
+ {
+ return NULL;
+ }
if (mGeos == NULL)
- exportWkbToGeos();
+ {
+ exportWkbToGeos();
+ }
if (geometry->mGeos == NULL)
- geometry->exportWkbToGeos();
+ {
+ geometry->exportWkbToGeos();
+ }
+ if(!mGeos || !geometry->mGeos)
+ {
+ return 0;
+ }
GEOS_GEOM::Geometry* geos = mGeos->symDifference(geometry->mGeos);
QgsGeometry* g = new QgsGeometry;
g->setGeos(geos);
More information about the QGIS-commit
mailing list