@@ -2482,17 +2482,17 @@ QgsVectorFileWriter::writeAsVectorFormat( QgsVectorLayer *layer,
2482
2482
}
2483
2483
}
2484
2484
2485
- QgsVectorFileWriter * writer =
2486
- new QgsVectorFileWriter ( fileName,
2487
- options.fileEncoding , fields, destWkbType,
2488
- outputCRS, options.driverName ,
2489
- options.datasourceOptions ,
2490
- options.layerOptions ,
2491
- newFilename,
2492
- options.symbologyExport ,
2493
- options.fieldValueConverter ,
2494
- options.layerName ,
2495
- options.actionOnExistingFile );
2485
+ std::unique_ptr< QgsVectorFileWriter > writer =
2486
+ qgis::make_unique< QgsVectorFileWriter > ( fileName,
2487
+ options.fileEncoding , fields, destWkbType,
2488
+ outputCRS, options.driverName ,
2489
+ options.datasourceOptions ,
2490
+ options.layerOptions ,
2491
+ newFilename,
2492
+ options.symbologyExport ,
2493
+ options.fieldValueConverter ,
2494
+ options.layerName ,
2495
+ options.actionOnExistingFile );
2496
2496
writer->setSymbologyScale ( options.symbologyScale );
2497
2497
2498
2498
if ( newFilename )
@@ -2506,7 +2506,6 @@ QgsVectorFileWriter::writeAsVectorFormat( QgsVectorLayer *layer,
2506
2506
{
2507
2507
if ( errorMessage )
2508
2508
*errorMessage = writer->errorMessage ();
2509
- delete writer;
2510
2509
return err;
2511
2510
}
2512
2511
@@ -2571,7 +2570,6 @@ QgsVectorFileWriter::writeAsVectorFormat( QgsVectorLayer *layer,
2571
2570
&& r->usingSymbolLevels () )
2572
2571
{
2573
2572
QgsVectorFileWriter::WriterError error = writer->exportFeaturesSymbolLevels ( layer, fit, options.ct , errorMessage );
2574
- delete writer;
2575
2573
return ( error == NoError ) ? NoError : ErrFeatureWriteFailed;
2576
2574
}
2577
2575
}
@@ -2598,7 +2596,6 @@ QgsVectorFileWriter::writeAsVectorFormat( QgsVectorLayer *layer,
2598
2596
{
2599
2597
if ( options.feedback && options.feedback ->isCanceled () )
2600
2598
{
2601
- delete writer;
2602
2599
return Canceled;
2603
2600
}
2604
2601
@@ -2627,8 +2624,6 @@ QgsVectorFileWriter::writeAsVectorFormat( QgsVectorLayer *layer,
2627
2624
}
2628
2625
catch ( QgsCsException &e )
2629
2626
{
2630
- delete writer;
2631
-
2632
2627
QString msg = QObject::tr ( " Failed to transform a point while drawing a feature with ID '%1'. Writing stopped. (Exception: %2)" )
2633
2628
.arg ( fet.id () ).arg ( e.what () );
2634
2629
QgsLogger::warning ( msg );
@@ -2675,7 +2670,6 @@ QgsVectorFileWriter::writeAsVectorFormat( QgsVectorLayer *layer,
2675
2670
}
2676
2671
2677
2672
writer->stopRender ();
2678
- delete writer;
2679
2673
2680
2674
if ( errors > 0 && errorMessage && n > 0 )
2681
2675
{
0 commit comments