Skip to content

Commit 5fa4a71

Browse files
author
mhugent
committed
Fix for crash when selecting wfs features
git-svn-id: http://svn.osgeo.org/qgis/trunk@9508 c8812cc2-4d05-0410-92ff-de0c093fc19c
1 parent ac56ca9 commit 5fa4a71

File tree

1 file changed

+8
-10
lines changed

1 file changed

+8
-10
lines changed

src/providers/wfs/qgswfsprovider.cpp

+8-10
Original file line numberDiff line numberDiff line change
@@ -73,16 +73,14 @@ bool QgsWFSProvider::nextFeature( QgsFeature& feature )
7373
}
7474

7575
feature.setFeatureId( mFeatures[*mFeatureIterator]->id() );
76-
if ( mFetchGeom )
77-
{
78-
QgsGeometry* geometry = mFeatures[*mFeatureIterator]->geometry();
79-
unsigned char *geom = geometry->wkbBuffer();
80-
int geomSize = geometry->wkbSize();
8176

82-
unsigned char* copiedGeom = new unsigned char[geomSize];
83-
memcpy( copiedGeom, geom, geomSize );
84-
feature.setGeometryAndOwnership( copiedGeom, geomSize );
85-
}
77+
//we need geometry anyway, e.g. for intersection tests
78+
QgsGeometry* geometry = mFeatures[*mFeatureIterator]->geometry();
79+
unsigned char *geom = geometry->wkbBuffer();
80+
int geomSize = geometry->wkbSize();
81+
unsigned char* copiedGeom = new unsigned char[geomSize];
82+
memcpy( copiedGeom, geom, geomSize );
83+
feature.setGeometryAndOwnership( copiedGeom, geomSize );
8684

8785
const QgsAttributeMap& attributes = mFeatures[*mFeatureIterator]->attributeMap();
8886
for ( QgsAttributeList::const_iterator it = mAttributesToFetch.begin(); it != mAttributesToFetch.end(); ++it )
@@ -92,7 +90,7 @@ bool QgsWFSProvider::nextFeature( QgsFeature& feature )
9290
++mFeatureIterator;
9391
if ( mUseIntersect )
9492
{
95-
if ( feature.geometry()->intersects( mSpatialFilter ) )
93+
if ( feature.geometry() && feature.geometry()->intersects( mSpatialFilter ) )
9694
{
9795
return true;
9896
}

0 commit comments

Comments
 (0)