@@ -592,12 +592,12 @@ QgsGeometry QgsGeometrySnapper::snapGeometry( const QgsGeometry& geometry, doubl
592592 return QgsGeometry ( subjGeom );
593593
594594 // SnapIndex for subject feature
595- QgsSnapIndex* subjSnapIndex = new QgsSnapIndex ( center, 10 * snapTolerance );
595+ std::unique_ptr< QgsSnapIndex > subjSnapIndex ( new QgsSnapIndex ( center, 10 * snapTolerance ) );
596596 subjSnapIndex->addGeometry ( subjGeom );
597597
598- QgsAbstractGeometry* origSubjGeom = subjGeom->clone ();
599- QgsSnapIndex* origSubjSnapIndex = new QgsSnapIndex ( center, 10 * snapTolerance );
600- origSubjSnapIndex->addGeometry ( origSubjGeom );
598+ std::unique_ptr< QgsAbstractGeometry > origSubjGeom ( subjGeom->clone () );
599+ std::unique_ptr< QgsSnapIndex > origSubjSnapIndex ( new QgsSnapIndex ( center, 10 * snapTolerance ) );
600+ origSubjSnapIndex->addGeometry ( origSubjGeom. get () );
601601
602602 // Pass 2: add missing vertices to subject geometry
603603 Q_FOREACH ( const QgsGeometry& refGeom, refGeometries )
@@ -638,17 +638,17 @@ QgsGeometry QgsGeometrySnapper::snapGeometry( const QgsGeometry& geometry, doubl
638638 const QgsSnapIndex::CoordIdx* idx = snapSegment->idxFrom ;
639639 subjGeom->insertVertex ( QgsVertexId ( idx->vidx .part , idx->vidx .ring , idx->vidx .vertex + 1 ), point );
640640 subjPointFlags[idx->vidx .part ][idx->vidx .ring ].insert ( idx->vidx .vertex + 1 , SnappedToRefNode );
641- delete subjSnapIndex;
642- subjSnapIndex = new QgsSnapIndex ( center, 10 * snapTolerance );
641+ subjSnapIndex.reset ( new QgsSnapIndex ( center, 10 * snapTolerance ) );
643642 subjSnapIndex->addGeometry ( subjGeom );
644643 }
645644 }
646645 }
647646 }
648647 }
649648 }
650- delete subjSnapIndex;
651- delete origSubjSnapIndex;
649+ subjSnapIndex.reset ();
650+ origSubjSnapIndex.reset ();
651+ origSubjGeom.reset ();
652652
653653 // Pass 3: remove superfluous vertices: all vertices which are snapped to a segment and not preceded or succeeded by an unsnapped vertex
654654 for ( int iPart = 0 , nParts = subjGeom->partCount (); iPart < nParts; ++iPart )
0 commit comments