File tree Expand file tree Collapse file tree 1 file changed +5
-4
lines changed Expand file tree Collapse file tree 1 file changed +5
-4
lines changed Original file line number Diff line number Diff line change @@ -120,9 +120,7 @@ QgsGeometry::OperationResult QgsGeometryEditUtils::addPart( QgsAbstractGeometry
120
120
if ( QgsWkbTypes::flatType ( geom->wkbType () ) == QgsWkbTypes::MultiSurface
121
121
|| QgsWkbTypes::flatType ( geom->wkbType () ) == QgsWkbTypes::MultiPolygon )
122
122
{
123
- std::unique_ptr<QgsCurve> curve ( qgsgeometry_cast<QgsCurve *>( part.get () ) );
124
- if ( curve )
125
- part.release ();
123
+ QgsCurve *curve = qgsgeometry_cast<QgsCurve *>( part.get () );
126
124
127
125
if ( curve && curve->isClosed () && curve->numPoints () >= 4 )
128
126
{
@@ -135,7 +133,10 @@ QgsGeometry::OperationResult QgsGeometryEditUtils::addPart( QgsAbstractGeometry
135
133
{
136
134
poly.reset ( new QgsCurvePolygon () );
137
135
}
138
- poly->setExteriorRing ( curve.release () );
136
+ // Ownership is still with part, curve points to the same object and is transferred
137
+ // to poly here.
138
+ part.release ();
139
+ poly->setExteriorRing ( curve );
139
140
added = geomCollection->addGeometry ( poly.release () );
140
141
}
141
142
else if ( QgsWkbTypes::flatType ( part->wkbType () ) == QgsWkbTypes::Polygon )
You can’t perform that action at this time.
0 commit comments