Skip to content

Commit d77c74a

Browse files
committedDec 17, 2018
More implicit sharing of geometries
Because massive cloning preemptively only makes sense when you want to fight the universe like in star wars.
1 parent bebc34b commit d77c74a

File tree

1 file changed

+2
-4
lines changed

1 file changed

+2
-4
lines changed
 

‎src/analysis/vector/geometry_checker/qgsgeometrygapcheck.cpp

Lines changed: 2 additions & 4 deletions
Original file line numberDiff line numberDiff line change
@@ -36,18 +36,17 @@ void QgsGeometryGapCheck::collectErrors( const QMap<QString, QgsFeaturePool *> &
3636
if ( feedback )
3737
feedback->setProgress( feedback->progress() + 1.0 );
3838

39-
QVector<QgsAbstractGeometry *> geomList;
39+
QVector<QgsGeometry> geomList;
4040

4141

4242
QMap<QString, QgsFeatureIds> featureIds = ids.isEmpty() ? allLayerFeatureIds( featurePools ) : ids.toMap();
4343
const QgsGeometryCheckerUtils::LayerFeatures layerFeatures( featurePools, featureIds, compatibleGeometryTypes(), nullptr, mContext, true );
4444
for ( const QgsGeometryCheckerUtils::LayerFeature &layerFeature : layerFeatures )
4545
{
46-
geomList.append( layerFeature.geometry().constGet()->clone() );
46+
geomList.append( layerFeature.geometry() );
4747

4848
if ( feedback->isCanceled() )
4949
{
50-
qDeleteAll( geomList );
5150
geomList.clear();
5251
break;
5352
}
@@ -63,7 +62,6 @@ void QgsGeometryGapCheck::collectErrors( const QMap<QString, QgsFeaturePool *> &
6362
// Create union of geometry
6463
QString errMsg;
6564
std::unique_ptr<QgsAbstractGeometry> unionGeom( geomEngine->combine( geomList, &errMsg ) );
66-
qDeleteAll( geomList );
6765
if ( !unionGeom )
6866
{
6967
messages.append( tr( "Gap check: %1" ).arg( errMsg ) );

0 commit comments

Comments
 (0)
Please sign in to comment.