Skip to content

Commit d8f9d2e

Browse files
committedNov 23, 2016
Speed up inserting features into memory layers by ~65%
By avoiding an unnecessary map lookup (cherry-picked from b679cbe)
1 parent cfeeb3f commit d8f9d2e

File tree

1 file changed

+4
-5
lines changed

1 file changed

+4
-5
lines changed
 

‎src/providers/memory/qgsmemoryprovider.cpp

Lines changed: 4 additions & 5 deletions
Original file line numberDiff line numberDiff line change
@@ -331,15 +331,14 @@ bool QgsMemoryProvider::addFeatures( QgsFeatureList & flist )
331331
// TODO: sanity checks of fields and geometries
332332
for ( QgsFeatureList::iterator it = flist.begin(); it != flist.end(); ++it )
333333
{
334-
mFeatures[mNextFeatureId] = *it;
335-
QgsFeature& newfeat = mFeatures[mNextFeatureId];
336-
newfeat.setFeatureId( mNextFeatureId );
337-
newfeat.setValid( true );
338334
it->setFeatureId( mNextFeatureId );
335+
it->setValid( true );
336+
337+
mFeatures.insert( mNextFeatureId, *it );
339338

340339
// update spatial index
341340
if ( mSpatialIndex )
342-
mSpatialIndex->insertFeature( newfeat );
341+
mSpatialIndex->insertFeature( *it );
343342

344343
mNextFeatureId++;
345344
}

0 commit comments

Comments
 (0)
Please sign in to comment.