[QGIS Commit] r9508 - trunk/qgis/src/providers/wfs
svn_qgis at osgeo.org
svn_qgis at osgeo.org
Tue Oct 21 04:14:00 EDT 2008
Author: mhugent
Date: 2008-10-21 04:13:59 -0400 (Tue, 21 Oct 2008)
New Revision: 9508
Modified:
trunk/qgis/src/providers/wfs/qgswfsprovider.cpp
Log:
Fix for crash when selecting wfs features
Modified: trunk/qgis/src/providers/wfs/qgswfsprovider.cpp
===================================================================
--- trunk/qgis/src/providers/wfs/qgswfsprovider.cpp 2008-10-20 23:36:38 UTC (rev 9507)
+++ trunk/qgis/src/providers/wfs/qgswfsprovider.cpp 2008-10-21 08:13:59 UTC (rev 9508)
@@ -73,16 +73,14 @@
}
feature.setFeatureId( mFeatures[*mFeatureIterator]->id() );
- if ( mFetchGeom )
- {
- QgsGeometry* geometry = mFeatures[*mFeatureIterator]->geometry();
- unsigned char *geom = geometry->wkbBuffer();
- int geomSize = geometry->wkbSize();
- unsigned char* copiedGeom = new unsigned char[geomSize];
- memcpy( copiedGeom, geom, geomSize );
- feature.setGeometryAndOwnership( copiedGeom, geomSize );
- }
+ //we need geometry anyway, e.g. for intersection tests
+ QgsGeometry* geometry = mFeatures[*mFeatureIterator]->geometry();
+ unsigned char *geom = geometry->wkbBuffer();
+ int geomSize = geometry->wkbSize();
+ unsigned char* copiedGeom = new unsigned char[geomSize];
+ memcpy( copiedGeom, geom, geomSize );
+ feature.setGeometryAndOwnership( copiedGeom, geomSize );
const QgsAttributeMap& attributes = mFeatures[*mFeatureIterator]->attributeMap();
for ( QgsAttributeList::const_iterator it = mAttributesToFetch.begin(); it != mAttributesToFetch.end(); ++it )
@@ -92,7 +90,7 @@
++mFeatureIterator;
if ( mUseIntersect )
{
- if ( feature.geometry()->intersects( mSpatialFilter ) )
+ if ( feature.geometry() && feature.geometry()->intersects( mSpatialFilter ) )
{
return true;
}
More information about the QGIS-commit
mailing list