Skip to content

Commit 2daca28

Browse files
committed
check if feature has geometry in memory provider iterator, fixes #9309
1 parent 8215183 commit 2daca28

File tree

1 file changed

+3
-3
lines changed

1 file changed

+3
-3
lines changed

src/providers/memory/qgsmemoryfeatureiterator.cpp

+3-3
Original file line numberDiff line numberDiff line change
@@ -86,7 +86,7 @@ bool QgsMemoryFeatureIterator::nextFeatureUsingList( QgsFeature& feature )
8686
if ( mRequest.filterType() == QgsFeatureRequest::FilterRect && mRequest.flags() & QgsFeatureRequest::ExactIntersect )
8787
{
8888
// do exact check in case we're doing intersection
89-
if ( P->mFeatures[*mFeatureIdListIterator].geometry()->intersects( mSelectRectGeom ) )
89+
if ( P->mFeatures[*mFeatureIdListIterator].geometry() && P->mFeatures[*mFeatureIdListIterator].geometry()->intersects( mSelectRectGeom ) )
9090
hasFeature = true;
9191
}
9292
else
@@ -131,13 +131,13 @@ bool QgsMemoryFeatureIterator::nextFeatureTraverseAll( QgsFeature& feature )
131131
if ( mRequest.flags() & QgsFeatureRequest::ExactIntersect )
132132
{
133133
// using exact test when checking for intersection
134-
if ( mSelectIterator->geometry()->intersects( mSelectRectGeom ) )
134+
if ( mSelectIterator->geometry() && mSelectIterator->geometry()->intersects( mSelectRectGeom ) )
135135
hasFeature = true;
136136
}
137137
else
138138
{
139139
// check just bounding box against rect when not using intersection
140-
if ( mSelectIterator->geometry()->boundingBox().intersects( mRequest.filterRect() ) )
140+
if ( mSelectIterator->geometry() && mSelectIterator->geometry()->boundingBox().intersects( mRequest.filterRect() ) )
141141
hasFeature = true;
142142
}
143143
}

0 commit comments

Comments
 (0)