Skip to content

Commit b0d8d8e

Browse files
committed
Fix memory management of errors
1 parent 9c6c3aa commit b0d8d8e

File tree

2 files changed

+3
-3
lines changed

2 files changed

+3
-3
lines changed

src/app/qgsgeometryvalidationservice.cpp

Lines changed: 2 additions & 2 deletions
Original file line numberDiff line numberDiff line change
@@ -270,7 +270,7 @@ void QgsGeometryValidationService::triggerTopologyChecks( QgsVectorLayer *layer
270270
mFeaturePools.insert( layer->id(), featurePool );
271271
}
272272

273-
QList<QgsGeometryCheckError *> &allErrors = mLayerChecks[layer].topologyCheckErrors;
273+
QList<std::shared_ptr<QgsGeometryCheckError>> &allErrors = mLayerChecks[layer].topologyCheckErrors;
274274
QMap<QString, QgsFeatureIds> layerIds;
275275

276276
QgsFeatureRequest request = QgsFeatureRequest( affectedFeatureIds ).setSubsetOfAttributes( QgsAttributeList() );
@@ -306,13 +306,13 @@ void QgsGeometryValidationService::triggerTopologyChecks( QgsVectorLayer *layer
306306

307307
check->collectErrors( mFeaturePools, errors, messages, feedback, layerFeatureIds );
308308
QgsReadWriteLocker errorLocker( mTopologyCheckLock, QgsReadWriteLocker::Write );
309-
allErrors.append( errors );
310309

311310
QList<std::shared_ptr<QgsGeometryCheckError> > sharedErrors;
312311
for ( QgsGeometryCheckError *error : errors )
313312
{
314313
sharedErrors.append( std::shared_ptr<QgsGeometryCheckError>( error ) );
315314
}
315+
allErrors.append(sharedErrors);
316316
if ( !feedback->isCanceled() )
317317
emit topologyChecksUpdated( layer, sharedErrors );
318318

src/app/qgsgeometryvalidationservice.h

Lines changed: 1 addition & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -96,7 +96,7 @@ class QgsGeometryValidationService : public QObject
9696
QList< QgsGeometryCheck *> topologyChecks;
9797
QFutureWatcher<void> *topologyCheckFutureWatcher = nullptr;
9898
QList<QgsFeedback *> topologyCheckFeedbacks; // will be deleted when topologyCheckFutureWatcher is delteed
99-
QList<QgsGeometryCheckError *> topologyCheckErrors;
99+
QList<std::shared_ptr<QgsGeometryCheckError>> topologyCheckErrors;
100100
QList<QMetaObject::Connection> connections;
101101
QgsGeometryCheckContext *context = nullptr;
102102
};

0 commit comments

Comments
 (0)