@@ -134,70 +134,70 @@ bool QgsGeometry::isNull() const
134134
135135QgsGeometry QgsGeometry::fromWkt ( const QString &wkt )
136136{
137- QgsAbstractGeometry * geom = QgsGeometryFactory::geomFromWkt ( wkt );
137+ std::unique_ptr< QgsAbstractGeometry > geom = QgsGeometryFactory::geomFromWkt ( wkt );
138138 if ( !geom )
139139 {
140140 return QgsGeometry ();
141141 }
142- return QgsGeometry ( geom );
142+ return QgsGeometry ( geom. release () );
143143}
144144
145145QgsGeometry QgsGeometry::fromPoint ( const QgsPointXY &point )
146146{
147- QgsAbstractGeometry * geom = QgsGeometryFactory::fromPoint ( point );
147+ std::unique_ptr< QgsAbstractGeometry > geom ( QgsGeometryFactory::fromPoint ( point ) );
148148 if ( geom )
149149 {
150- return QgsGeometry ( geom );
150+ return QgsGeometry ( geom. release () );
151151 }
152152 return QgsGeometry ();
153153}
154154
155155QgsGeometry QgsGeometry::fromPolyline ( const QgsPolyline &polyline )
156156{
157- QgsAbstractGeometry * geom = QgsGeometryFactory::fromPolyline ( polyline );
157+ std::unique_ptr< QgsAbstractGeometry > geom = QgsGeometryFactory::fromPolyline ( polyline );
158158 if ( geom )
159159 {
160- return QgsGeometry ( geom );
160+ return QgsGeometry ( geom. release () );
161161 }
162162 return QgsGeometry ();
163163}
164164
165165QgsGeometry QgsGeometry::fromPolygon ( const QgsPolygon &polygon )
166166{
167- QgsAbstractGeometry * geom = QgsGeometryFactory::fromPolygon ( polygon );
167+ std::unique_ptr< QgsPolygonV2 > geom = QgsGeometryFactory::fromPolygon ( polygon );
168168 if ( geom )
169169 {
170- return QgsGeometry ( geom );
170+ return QgsGeometry ( geom. release () );
171171 }
172172 return QgsGeometry ();
173173}
174174
175175QgsGeometry QgsGeometry::fromMultiPoint ( const QgsMultiPoint &multipoint )
176176{
177- QgsAbstractGeometry * geom = QgsGeometryFactory::fromMultiPoint ( multipoint );
177+ std::unique_ptr< QgsMultiPointV2 > geom = QgsGeometryFactory::fromMultiPoint ( multipoint );
178178 if ( geom )
179179 {
180- return QgsGeometry ( geom );
180+ return QgsGeometry ( geom. release () );
181181 }
182182 return QgsGeometry ();
183183}
184184
185185QgsGeometry QgsGeometry::fromMultiPolyline ( const QgsMultiPolyline &multiline )
186186{
187- QgsAbstractGeometry * geom = QgsGeometryFactory::fromMultiPolyline ( multiline );
187+ std::unique_ptr< QgsMultiLineString > geom = QgsGeometryFactory::fromMultiPolyline ( multiline );
188188 if ( geom )
189189 {
190- return QgsGeometry ( geom );
190+ return QgsGeometry ( geom. release () );
191191 }
192192 return QgsGeometry ();
193193}
194194
195195QgsGeometry QgsGeometry::fromMultiPolygon ( const QgsMultiPolygon &multipoly )
196196{
197- QgsAbstractGeometry * geom = QgsGeometryFactory::fromMultiPolygon ( multipoly );
197+ std::unique_ptr< QgsMultiPolygonV2 > geom = QgsGeometryFactory::fromMultiPolygon ( multipoly );
198198 if ( geom )
199199 {
200- return QgsGeometry ( geom );
200+ return QgsGeometry ( geom. release () );
201201 }
202202 return QgsGeometry ();
203203}
@@ -246,7 +246,7 @@ void QgsGeometry::fromWkb( unsigned char *wkb, int length )
246246 delete d->geometry ;
247247 }
248248 QgsConstWkbPtr ptr ( wkb, length );
249- d->geometry = QgsGeometryFactory::geomFromWkb ( ptr );
249+ d->geometry = QgsGeometryFactory::geomFromWkb ( ptr ). release () ;
250250 delete [] wkb;
251251}
252252
@@ -259,7 +259,7 @@ void QgsGeometry::fromWkb( const QByteArray &wkb )
259259 delete d->geometry ;
260260 }
261261 QgsConstWkbPtr ptr ( wkb );
262- d->geometry = QgsGeometryFactory::geomFromWkb ( ptr );
262+ d->geometry = QgsGeometryFactory::geomFromWkb ( ptr ). release () ;
263263}
264264
265265GEOSGeometry *QgsGeometry::exportToGeos ( double precision ) const
@@ -1155,16 +1155,16 @@ bool QgsGeometry::convertToMultiType()
11551155 return true ;
11561156 }
11571157
1158- QgsGeometryCollection *multiGeom = qgsgeometry_cast<QgsGeometryCollection *>
1159- ( QgsGeometryFactory::geomFromWkbType ( QgsWkbTypes::multiType ( d-> geometry -> wkbType () ) ) );
1158+ std::unique_ptr< QgsAbstractGeometry >geom = QgsGeometryFactory::geomFromWkbType ( QgsWkbTypes::multiType ( d-> geometry -> wkbType () ) );
1159+ QgsGeometryCollection *multiGeom = qgsgeometry_cast<QgsGeometryCollection *>( geom. get ( ) );
11601160 if ( !multiGeom )
11611161 {
11621162 return false ;
11631163 }
11641164
11651165 detach ( true );
11661166 multiGeom->addGeometry ( d->geometry );
1167- d->geometry = multiGeom ;
1167+ d->geometry = geom. release () ;
11681168 return true ;
11691169}
11701170
@@ -2026,11 +2026,11 @@ int QgsGeometry::avoidIntersections( const QList<QgsVectorLayer *> &avoidInterse
20262026 return 1 ;
20272027 }
20282028
2029- QgsAbstractGeometry * diffGeom = QgsGeometryEditUtils::avoidIntersections ( *( d->geometry ), avoidIntersectionsLayers, ignoreFeatures );
2029+ std::unique_ptr< QgsAbstractGeometry > diffGeom = QgsGeometryEditUtils::avoidIntersections ( *( d->geometry ), avoidIntersectionsLayers, ignoreFeatures );
20302030 if ( diffGeom )
20312031 {
20322032 detach ( false );
2033- d->geometry = diffGeom;
2033+ d->geometry = diffGeom. release () ;
20342034 }
20352035 return 0 ;
20362036}
0 commit comments