@@ -7025,8 +7025,8 @@ bool LayerTranslator::Translate(
70257025 {
70267026 OGRwkbGeometryType eTargetType = OGR_GT_GetLinear (
70277027 poDstGeometry->getGeometryType ());
7028- poDstGeometry. reset ( OGRGeometryFactory::forceTo (
7029- poDstGeometry. release ( ), eTargetType) );
7028+ poDstGeometry = OGRGeometryFactory::forceTo (
7029+ std::move (poDstGeometry ), eTargetType);
70307030 }
70317031 }
70327032 else if (bReprojCanInvalidateValidity &&
@@ -7035,9 +7035,9 @@ bool LayerTranslator::Translate(
70357035 static_cast <OGRwkbGeometryType>(eGType)) &&
70367036 poDstGeometry->hasCurveGeometry (TRUE ))
70377037 {
7038- poDstGeometry. reset ( OGRGeometryFactory::forceTo (
7039- poDstGeometry. release ( ),
7040- static_cast <OGRwkbGeometryType>(eGType))) ;
7038+ poDstGeometry = OGRGeometryFactory::forceTo (
7039+ std::move (poDstGeometry ),
7040+ static_cast <OGRwkbGeometryType>(eGType));
70417041 }
70427042
70437043 // Collect left-most, right-most, top-most, bottom-most coordinates.
@@ -7124,21 +7124,20 @@ bool LayerTranslator::Translate(
71247124 {
71257125 OGRwkbGeometryType eTargetType = OGR_GT_GetLinear (
71267126 poDstGeometry->getGeometryType ());
7127- auto poDstGeometryTmp =
7127+ auto poDstGeometryTmp = OGRGeometryFactory::forceTo (
71287128 std::unique_ptr<OGRGeometry>(
7129- OGRGeometryFactory::forceTo (
7130- poReprojectedGeom->clone (),
7131- eTargetType));
7129+ poReprojectedGeom->clone ()),
7130+ eTargetType);
71327131 if (!IsValid (poDstGeometryTmp.get ()))
71337132 {
71347133 CPLDebug (" OGR2OGR" ,
71357134 " Curve geometry no longer valid after "
71367135 " reprojection: transforming it into "
71377136 " linear one before reprojecting" );
7138- poDstGeometry. reset ( OGRGeometryFactory::forceTo (
7139- poDstGeometry. release ( ), eTargetType) );
7140- poDstGeometry. reset ( OGRGeometryFactory::forceTo (
7141- poDstGeometry. release ( ), eType) );
7137+ poDstGeometry = OGRGeometryFactory::forceTo (
7138+ std::move (poDstGeometry ), eTargetType);
7139+ poDstGeometry = OGRGeometryFactory::forceTo (
7140+ std::move (poDstGeometry ), eType);
71427141 }
71437142 else
71447143 {
@@ -7273,19 +7272,18 @@ bool LayerTranslator::Translate(
72737272 poDstGeometry->getGeometryType ();
72747273 eTargetType =
72757274 ConvertType (m_eGeomTypeConversion, eTargetType);
7276- poDstGeometry. reset ( OGRGeometryFactory::forceTo (
7277- poDstGeometry. release ( ), eTargetType) );
7275+ poDstGeometry = OGRGeometryFactory::forceTo (
7276+ std::move (poDstGeometry ), eTargetType);
72787277 }
72797278 else if (eGType != GEOMTYPE_UNCHANGED)
72807279 {
7281- poDstGeometry. reset ( OGRGeometryFactory::forceTo (
7282- poDstGeometry. release ( ),
7283- static_cast <OGRwkbGeometryType>(eGType))) ;
7280+ poDstGeometry = OGRGeometryFactory::forceTo (
7281+ std::move (poDstGeometry ),
7282+ static_cast <OGRwkbGeometryType>(eGType));
72847283 }
72857284 }
72867285
7287- poDstFeature->SetGeomFieldDirectly (iGeom,
7288- poDstGeometry.release ());
7286+ poDstFeature->SetGeomField (iGeom, std::move (poDstGeometry));
72897287 }
72907288
72917289 CPLErrorReset ();
0 commit comments