@@ -2507,17 +2507,17 @@ QgsVectorFileWriter::writeAsVectorFormat( QgsVectorLayer *layer,
2507
2507
}
2508
2508
}
2509
2509
2510
- QgsVectorFileWriter * writer =
2511
- new QgsVectorFileWriter ( fileName,
2512
- options.fileEncoding , fields, destWkbType,
2513
- outputCRS, options.driverName ,
2514
- options.datasourceOptions ,
2515
- options.layerOptions ,
2516
- newFilename,
2517
- options.symbologyExport ,
2518
- options.fieldValueConverter ,
2519
- options.layerName ,
2520
- options.actionOnExistingFile );
2510
+ std::unique_ptr< QgsVectorFileWriter > writer =
2511
+ qgis::make_unique< QgsVectorFileWriter > ( fileName,
2512
+ options.fileEncoding , fields, destWkbType,
2513
+ outputCRS, options.driverName ,
2514
+ options.datasourceOptions ,
2515
+ options.layerOptions ,
2516
+ newFilename,
2517
+ options.symbologyExport ,
2518
+ options.fieldValueConverter ,
2519
+ options.layerName ,
2520
+ options.actionOnExistingFile );
2521
2521
writer->setSymbologyScale ( options.symbologyScale );
2522
2522
2523
2523
if ( newFilename )
@@ -2531,7 +2531,6 @@ QgsVectorFileWriter::writeAsVectorFormat( QgsVectorLayer *layer,
2531
2531
{
2532
2532
if ( errorMessage )
2533
2533
*errorMessage = writer->errorMessage ();
2534
- delete writer;
2535
2534
return err;
2536
2535
}
2537
2536
@@ -2596,7 +2595,6 @@ QgsVectorFileWriter::writeAsVectorFormat( QgsVectorLayer *layer,
2596
2595
&& r->usingSymbolLevels () )
2597
2596
{
2598
2597
QgsVectorFileWriter::WriterError error = writer->exportFeaturesSymbolLevels ( layer, fit, options.ct , errorMessage );
2599
- delete writer;
2600
2598
return ( error == NoError ) ? NoError : ErrFeatureWriteFailed;
2601
2599
}
2602
2600
}
@@ -2623,7 +2621,6 @@ QgsVectorFileWriter::writeAsVectorFormat( QgsVectorLayer *layer,
2623
2621
{
2624
2622
if ( options.feedback && options.feedback ->isCanceled () )
2625
2623
{
2626
- delete writer;
2627
2624
return Canceled;
2628
2625
}
2629
2626
@@ -2652,8 +2649,6 @@ QgsVectorFileWriter::writeAsVectorFormat( QgsVectorLayer *layer,
2652
2649
}
2653
2650
catch ( QgsCsException &e )
2654
2651
{
2655
- delete writer;
2656
-
2657
2652
QString msg = QObject::tr ( " Failed to transform a point while drawing a feature with ID '%1'. Writing stopped. (Exception: %2)" )
2658
2653
.arg ( fet.id () ).arg ( e.what () );
2659
2654
QgsLogger::warning ( msg );
@@ -2700,7 +2695,6 @@ QgsVectorFileWriter::writeAsVectorFormat( QgsVectorLayer *layer,
2700
2695
}
2701
2696
2702
2697
writer->stopRender ();
2703
- delete writer;
2704
2698
2705
2699
if ( errors > 0 && errorMessage && n > 0 )
2706
2700
{
0 commit comments