Skip to content

Commit 59d4b85

Browse files
committedMar 29, 2016
Avoid some unnecessary detachments in memory provider
Should speed up the provider slightly and also refs #14559 (I can no longer reproduce that crash with this change)
1 parent f7c28f6 commit 59d4b85

File tree

1 file changed

+3
-3
lines changed

1 file changed

+3
-3
lines changed
 

‎src/providers/memory/qgsmemoryfeatureiterator.cpp

Lines changed: 3 additions & 3 deletions
Original file line numberDiff line numberDiff line change
@@ -93,15 +93,15 @@ bool QgsMemoryFeatureIterator::nextFeatureUsingList( QgsFeature& feature )
9393
if ( !mRequest.filterRect().isNull() && mRequest.flags() & QgsFeatureRequest::ExactIntersect )
9494
{
9595
// do exact check in case we're doing intersection
96-
if ( mSource->mFeatures[*mFeatureIdListIterator].geometry() && mSource->mFeatures[*mFeatureIdListIterator].geometry()->intersects( mSelectRectGeom ) )
96+
if ( mSource->mFeatures.value( *mFeatureIdListIterator ).constGeometry() && mSource->mFeatures.value( *mFeatureIdListIterator ).constGeometry()->intersects( mSelectRectGeom ) )
9797
hasFeature = true;
9898
}
9999
else
100100
hasFeature = true;
101101

102102
if ( mSubsetExpression )
103103
{
104-
mSource->mExpressionContext.setFeature( mSource->mFeatures[*mFeatureIdListIterator] );
104+
mSource->mExpressionContext.setFeature( mSource->mFeatures.value( *mFeatureIdListIterator ) );
105105
if ( !mSubsetExpression->evaluate( &mSource->mExpressionContext ).toBool() )
106106
hasFeature = false;
107107
}
@@ -115,7 +115,7 @@ bool QgsMemoryFeatureIterator::nextFeatureUsingList( QgsFeature& feature )
115115
// copy feature
116116
if ( hasFeature )
117117
{
118-
feature = mSource->mFeatures[*mFeatureIdListIterator];
118+
feature = mSource->mFeatures.value( *mFeatureIdListIterator );
119119
++mFeatureIdListIterator;
120120
}
121121
else

0 commit comments

Comments
 (0)
Please sign in to comment.