Skip to content

Commit cb29b2e

Browse files
committedAug 14, 2017
Fix crash in test
1 parent 0683528 commit cb29b2e

File tree

1 file changed

+5
-4
lines changed

1 file changed

+5
-4
lines changed
 

‎src/core/geometry/qgsgeometryeditutils.cpp

Lines changed: 5 additions & 4 deletions
Original file line numberDiff line numberDiff line change
@@ -120,9 +120,7 @@ QgsGeometry::OperationResult QgsGeometryEditUtils::addPart( QgsAbstractGeometry
120120
if ( QgsWkbTypes::flatType( geom->wkbType() ) == QgsWkbTypes::MultiSurface
121121
|| QgsWkbTypes::flatType( geom->wkbType() ) == QgsWkbTypes::MultiPolygon )
122122
{
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() );
126124

127125
if ( curve && curve->isClosed() && curve->numPoints() >= 4 )
128126
{
@@ -135,7 +133,10 @@ QgsGeometry::OperationResult QgsGeometryEditUtils::addPart( QgsAbstractGeometry
135133
{
136134
poly.reset( new QgsCurvePolygon() );
137135
}
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 );
139140
added = geomCollection->addGeometry( poly.release() );
140141
}
141142
else if ( QgsWkbTypes::flatType( part->wkbType() ) == QgsWkbTypes::Polygon )

0 commit comments

Comments
 (0)
Please sign in to comment.