@@ -333,20 +333,19 @@ QDomElement QgsCurvePolygon::asGML2( QDomDocument &doc, int precision, const QSt
333
333
// GML2 does not support curves
334
334
QDomElement elemPolygon = doc.createElementNS ( ns, QStringLiteral ( " Polygon" ) );
335
335
QDomElement elemOuterBoundaryIs = doc.createElementNS ( ns, QStringLiteral ( " outerBoundaryIs" ) );
336
- QgsLineString * exteriorLineString = exteriorRing ()->curveToLine ();
336
+ std::unique_ptr< QgsLineString > exteriorLineString ( exteriorRing ()->curveToLine () );
337
337
QDomElement outerRing = exteriorLineString->asGML2 ( doc, precision, ns );
338
338
outerRing.toElement ().setTagName ( QStringLiteral ( " LinearRing" ) );
339
339
elemOuterBoundaryIs.appendChild ( outerRing );
340
- delete exteriorLineString;
341
340
elemPolygon.appendChild ( elemOuterBoundaryIs );
341
+ std::unique_ptr< QgsLineString > interiorLineString;
342
342
for ( int i = 0 , n = numInteriorRings (); i < n; ++i )
343
343
{
344
344
QDomElement elemInnerBoundaryIs = doc.createElementNS ( ns, QStringLiteral ( " innerBoundaryIs" ) );
345
- QgsLineString * interiorLineString = interiorRing ( i )->curveToLine ();
345
+ interiorLineString. reset ( interiorRing ( i )->curveToLine () );
346
346
QDomElement innerRing = interiorLineString->asGML2 ( doc, precision, ns );
347
347
innerRing.toElement ().setTagName ( QStringLiteral ( " LinearRing" ) );
348
348
elemInnerBoundaryIs.appendChild ( innerRing );
349
- delete interiorLineString;
350
349
elemPolygon.appendChild ( elemInnerBoundaryIs );
351
350
}
352
351
return elemPolygon;
@@ -383,19 +382,18 @@ QString QgsCurvePolygon::asJSON( int precision ) const
383
382
// GeoJSON does not support curves
384
383
QString json = QStringLiteral ( " {\" type\" : \" Polygon\" , \" coordinates\" : [" );
385
384
386
- QgsLineString * exteriorLineString = exteriorRing ()->curveToLine ();
385
+ std::unique_ptr< QgsLineString > exteriorLineString ( exteriorRing ()->curveToLine () );
387
386
QgsPointSequence exteriorPts;
388
387
exteriorLineString->points ( exteriorPts );
389
388
json += QgsGeometryUtils::pointsToJSON ( exteriorPts, precision ) + " , " ;
390
- delete exteriorLineString;
391
389
390
+ std::unique_ptr< QgsLineString > interiorLineString;
392
391
for ( int i = 0 , n = numInteriorRings (); i < n; ++i )
393
392
{
394
- QgsLineString * interiorLineString = interiorRing ( i )->curveToLine ();
393
+ interiorLineString. reset ( interiorRing ( i )->curveToLine () );
395
394
QgsPointSequence interiorPts;
396
395
interiorLineString->points ( interiorPts );
397
396
json += QgsGeometryUtils::pointsToJSON ( interiorPts, precision ) + " , " ;
398
- delete interiorLineString;
399
397
}
400
398
if ( json.endsWith ( QLatin1String ( " , " ) ) )
401
399
{
0 commit comments