@@ -592,12 +592,12 @@ QgsGeometry QgsGeometrySnapper::snapGeometry( const QgsGeometry& geometry, doubl
592
592
return QgsGeometry ( subjGeom );
593
593
594
594
// SnapIndex for subject feature
595
- QgsSnapIndex* subjSnapIndex = new QgsSnapIndex ( center, 10 * snapTolerance );
595
+ std::unique_ptr< QgsSnapIndex > subjSnapIndex ( new QgsSnapIndex ( center, 10 * snapTolerance ) );
596
596
subjSnapIndex->addGeometry ( subjGeom );
597
597
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 () );
601
601
602
602
// Pass 2: add missing vertices to subject geometry
603
603
Q_FOREACH ( const QgsGeometry& refGeom, refGeometries )
@@ -638,17 +638,17 @@ QgsGeometry QgsGeometrySnapper::snapGeometry( const QgsGeometry& geometry, doubl
638
638
const QgsSnapIndex::CoordIdx* idx = snapSegment->idxFrom ;
639
639
subjGeom->insertVertex ( QgsVertexId ( idx->vidx .part , idx->vidx .ring , idx->vidx .vertex + 1 ), point );
640
640
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 ) );
643
642
subjSnapIndex->addGeometry ( subjGeom );
644
643
}
645
644
}
646
645
}
647
646
}
648
647
}
649
648
}
650
- delete subjSnapIndex;
651
- delete origSubjSnapIndex;
649
+ subjSnapIndex.reset ();
650
+ origSubjSnapIndex.reset ();
651
+ origSubjGeom.reset ();
652
652
653
653
// Pass 3: remove superfluous vertices: all vertices which are snapped to a segment and not preceded or succeeded by an unsnapped vertex
654
654
for ( int iPart = 0 , nParts = subjGeom->partCount (); iPart < nParts; ++iPart )
0 commit comments