Skip to content

Commit d4cf8cf

Browse files
committed
More clazy optimisations
1 parent 3c3fcf5 commit d4cf8cf

27 files changed

+51
-31
lines changed

src/3d/qgscameracontroller.cpp

Lines changed: 4 additions & 4 deletions
Original file line numberDiff line numberDiff line change
@@ -168,7 +168,7 @@ void QgsCameraController::setCamera( Qt3DRender::QCamera *camera )
168168
emit cameraChanged();
169169
}
170170

171-
void QgsCameraController::setViewport( const QRect &viewport )
171+
void QgsCameraController::setViewport( QRect viewport )
172172
{
173173
if ( mViewport == viewport )
174174
return;
@@ -178,7 +178,7 @@ void QgsCameraController::setViewport( const QRect &viewport )
178178
}
179179

180180

181-
static QVector3D unproject( const QVector3D &v, const QMatrix4x4 &modelView, const QMatrix4x4 &projection, const QRect &viewport )
181+
static QVector3D unproject( QVector3D v, const QMatrix4x4 &modelView, const QMatrix4x4 &projection, QRect viewport )
182182
{
183183
// Reimplementation of QVector3D::unproject() - see qtbase/src/gui/math3d/qvector3d.cpp
184184
// The only difference is that the original implementation uses tolerance 1e-5
@@ -208,7 +208,7 @@ float find_x_on_line( float x0, float y0, float x1, float y1, float y )
208208
return x0 + k * d_x;
209209
}
210210

211-
QPointF screen_point_to_point_on_plane( const QPointF &pt, const QRect &viewport, Qt3DRender::QCamera *camera, float y )
211+
QPointF screen_point_to_point_on_plane( QPointF pt, QRect viewport, Qt3DRender::QCamera *camera, float y )
212212
{
213213
// get two points of the ray
214214
QVector3D l0 = unproject( QVector3D( pt.x(), viewport.height() - pt.y(), 0 ), camera->viewMatrix(), camera->projectionMatrix(), viewport );
@@ -432,7 +432,7 @@ void QgsCameraController::setCameraPose( const QgsCameraPose &camPose )
432432

433433
QDomElement QgsCameraController::writeXml( QDomDocument &doc ) const
434434
{
435-
QDomElement elemCamera = doc.createElement( "camera" );
435+
QDomElement elemCamera = doc.createElement( QStringLiteral( "camera" ) );
436436
elemCamera.setAttribute( QStringLiteral( "x" ), mCameraPose.centerPoint().x() );
437437
elemCamera.setAttribute( QStringLiteral( "y" ), mCameraPose.centerPoint().z() );
438438
elemCamera.setAttribute( QStringLiteral( "elev" ), mCameraPose.centerPoint().y() );

src/3d/qgscameracontroller.h

Lines changed: 1 addition & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -60,7 +60,7 @@ class _3D_EXPORT QgsCameraController : public Qt3DCore::QEntity
6060
//! Assigns camera that should be controlled by this class. Called internally from 3D scene.
6161
void setCamera( Qt3DRender::QCamera *camera );
6262
//! Sets viewport rectangle. Called internally from 3D canvas. Allows conversion of mouse coordinates.
63-
void setViewport( const QRect &viewport );
63+
void setViewport( QRect viewport );
6464
//! Called internally from 3D scene when a new frame is generated. Updates camera according to keyboard/mouse input
6565
void frameTriggered( float dt );
6666

src/3d/terrain/qgsflatterraingenerator.cpp

Lines changed: 4 additions & 4 deletions
Original file line numberDiff line numberDiff line change
@@ -113,8 +113,8 @@ void QgsFlatTerrainGenerator::writeXml( QDomElement &elem ) const
113113
QDomElement elemExtent = elem.ownerDocument().createElement( QStringLiteral( "extent" ) );
114114
elemExtent.setAttribute( QStringLiteral( "xmin" ), QString::number( r.xMinimum() ) );
115115
elemExtent.setAttribute( QStringLiteral( "xmax" ), QString::number( r.xMaximum() ) );
116-
elemExtent.setAttribute( "ymin", QString::number( r.yMinimum() ) );
117-
elemExtent.setAttribute( "ymax", QString::number( r.yMaximum() ) );
116+
elemExtent.setAttribute( QStringLiteral( "ymin" ), QString::number( r.yMinimum() ) );
117+
elemExtent.setAttribute( QStringLiteral( "ymax" ), QString::number( r.yMaximum() ) );
118118

119119
// crs is not read/written - it should be the same as destination crs of the map
120120
}
@@ -124,8 +124,8 @@ void QgsFlatTerrainGenerator::readXml( const QDomElement &elem )
124124
QDomElement elemExtent = elem.firstChildElement( QStringLiteral( "extent" ) );
125125
double xmin = elemExtent.attribute( QStringLiteral( "xmin" ) ).toDouble();
126126
double xmax = elemExtent.attribute( QStringLiteral( "xmax" ) ).toDouble();
127-
double ymin = elemExtent.attribute( "ymin" ).toDouble();
128-
double ymax = elemExtent.attribute( "ymax" ).toDouble();
127+
double ymin = elemExtent.attribute( QStringLiteral( "ymin" ) ).toDouble();
128+
double ymax = elemExtent.attribute( QStringLiteral( "ymax" ) ).toDouble();
129129

130130
setExtent( QgsRectangle( xmin, ymin, xmax, ymax ) );
131131

src/analysis/network/qgsvectorlayerdirector.cpp

Lines changed: 1 addition & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -384,6 +384,7 @@ void QgsVectorLayerDirector::makeGraph( QgsGraphBuilderInterface *builder, const
384384
{
385385
double distance = builder->distanceArea()->measureLine( arcPt1, arcPt2 );
386386
QVector< QVariant > prop;
387+
prop.reserve( mStrategies.size() );
387388
for ( QgsNetworkStrategy *strategy : mStrategies )
388389
{
389390
prop.push_back( strategy->cost( distance, feature ) );

src/analysis/processing/qgsalgorithmaddincrementalfield.cpp

Lines changed: 1 addition & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -149,6 +149,7 @@ QgsFeatureList QgsAddIncrementalFieldAlgorithm::processFeature( const QgsFeature
149149
else
150150
{
151151
QgsAttributes groupAttributes;
152+
groupAttributes.reserve( mGroupedFields.size() );
152153
for ( int index : qgis::as_const( mGroupedFields ) )
153154
{
154155
groupAttributes << f.attribute( index );

src/analysis/processing/qgsalgorithmcentroid.cpp

Lines changed: 1 addition & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -99,6 +99,7 @@ QgsFeatureList QgsCentroidAlgorithm::processFeature( const QgsFeature &f, QgsPro
9999
{
100100
const QgsGeometryCollection *geomCollection = static_cast<const QgsGeometryCollection *>( geom.constGet() );
101101

102+
list.reserve( geomCollection->partCount() );
102103
for ( int i = 0; i < geomCollection->partCount(); ++i )
103104
{
104105
QgsGeometry partGeometry( geomCollection->geometryN( i )->clone() );

src/analysis/processing/qgsalgorithmextractbylocation.cpp

Lines changed: 1 addition & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -86,6 +86,7 @@ void QgsLocationBasedAlgorithm::process( const QgsProcessingContext &context, Qg
8686
// we actually test the reverse of what the user wants (allowing us
8787
// to prepare geometries and optimise the algorithm)
8888
QList< Predicate > predicates;
89+
predicates.reserve( selectedPredicates.count() );
8990
for ( int i : selectedPredicates )
9091
{
9192
predicates << reversePredicate( static_cast< Predicate >( i ) );

src/analysis/processing/qgsalgorithmimportphotos.cpp

Lines changed: 2 additions & 2 deletions
Original file line numberDiff line numberDiff line change
@@ -94,7 +94,7 @@ bool QgsImportPhotosAlgorithm::extractGeoTagFromMetadata( const QVariantMap &met
9494
if ( !ok )
9595
return false;
9696

97-
if ( metadata.value( QStringLiteral( "EXIF_GPSLongitudeRef" ) ).toString().right( 1 ).compare( QLatin1String( "W" ), Qt::CaseInsensitive ) == 0
97+
if ( metadata.value( QStringLiteral( "EXIF_GPSLongitudeRef" ) ).toString().rightRef( 1 ).compare( QLatin1String( "W" ), Qt::CaseInsensitive ) == 0
9898
|| metadata.value( QStringLiteral( "EXIF_GPSLongitudeRef" ) ).toDouble() < 0 )
9999
x = -x;
100100
}
@@ -111,7 +111,7 @@ bool QgsImportPhotosAlgorithm::extractGeoTagFromMetadata( const QVariantMap &met
111111
if ( !ok )
112112
return false;
113113

114-
if ( metadata.value( QStringLiteral( "EXIF_GPSLatitudeRef" ) ).toString().right( 1 ).compare( QLatin1String( "S" ), Qt::CaseInsensitive ) == 0
114+
if ( metadata.value( QStringLiteral( "EXIF_GPSLatitudeRef" ) ).toString().rightRef( 1 ).compare( QLatin1String( "S" ), Qt::CaseInsensitive ) == 0
115115
|| metadata.value( QStringLiteral( "EXIF_GPSLatitudeRef" ) ).toDouble() < 0 )
116116
y = -y;
117117
}

src/analysis/processing/qgsalgorithmjoinbyattribute.cpp

Lines changed: 2 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -130,13 +130,15 @@ QVariantMap QgsJoinByAttributeAlgorithm::processAlgorithm( const QVariantMap &pa
130130
if ( fieldsToCopy.empty() )
131131
{
132132
outFields2 = input2->fields();
133+
fields2Indices.reserve( outFields2.count() );
133134
for ( int i = 0; i < outFields2.count(); ++i )
134135
{
135136
fields2Indices << i;
136137
}
137138
}
138139
else
139140
{
141+
fields2Indices.reserve( fieldsToCopy.count() );
140142
for ( const QString &field : fieldsToCopy )
141143
{
142144
int index = input2->fields().lookupField( field );

src/analysis/processing/qgsalgorithmjoinwithlines.cpp

Lines changed: 2 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -111,13 +111,15 @@ QVariantMap QgsJoinWithLinesAlgorithm::processAlgorithm( const QVariantMap &para
111111
if ( hubFieldsToCopy.empty() )
112112
{
113113
hubOutFields = hubSource->fields();
114+
hubFieldIndices.reserve( hubOutFields.count() );
114115
for ( int i = 0; i < hubOutFields.count(); ++i )
115116
{
116117
hubFieldIndices << i;
117118
}
118119
}
119120
else
120121
{
122+
hubFieldIndices.reserve( hubOutFields.count() );
121123
for ( const QString &field : hubFieldsToCopy )
122124
{
123125
int index = hubSource->fields().lookupField( field );

src/analysis/processing/qgsalgorithmreclassifybylayer.cpp

Lines changed: 1 addition & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -315,6 +315,7 @@ QVector<QgsReclassifyUtils::RasterClass> QgsReclassifyByTableAlgorithm::createCl
315315

316316
const int rows = table.count() / 3;
317317
QVector< QgsReclassifyUtils::RasterClass > classes;
318+
classes.reserve( rows );
318319
for ( int row = 0; row < rows; ++row )
319320
{
320321
bool ok = false;

src/analysis/processing/qgsalgorithmzonalhistogram.cpp

Lines changed: 1 addition & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -170,7 +170,7 @@ QVariantMap QgsZonalHistogramAlgorithm::processAlgorithm( const QVariantMap &par
170170
QgsFields newFields;
171171
for ( auto it = uniqueValues.constBegin(); it != uniqueValues.constEnd(); ++it )
172172
{
173-
newFields.append( QgsField( QStringLiteral( "%1%2" ).arg( fieldPrefix ).arg( mHasNoDataValue && *it == mNodataValue ? QStringLiteral( "NODATA" ) : QString::number( *it ) ), QVariant::LongLong, QString(), -1, 0 ) );
173+
newFields.append( QgsField( QStringLiteral( "%1%2" ).arg( fieldPrefix, mHasNoDataValue && *it == mNodataValue ? QStringLiteral( "NODATA" ) : QString::number( *it ) ), QVariant::LongLong, QString(), -1, 0 ) );
174174
}
175175
QgsFields fields = QgsProcessingUtils::combineFields( zones->fields(), newFields );
176176

src/app/layout/qgslayout3dmapwidget.cpp

Lines changed: 1 addition & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -95,7 +95,7 @@ QgsLayout3DMapWidget::QgsLayout3DMapWidget( QgsLayoutItem3DMap *map3D )
9595

9696
QList<QgsDoubleSpinBox *> lst;
9797
lst << mCenterXSpinBox << mCenterYSpinBox << mCenterZSpinBox << mDistanceToCenterSpinBox << mPitchAngleSpinBox << mHeadingAngleSpinBox;
98-
for ( QgsDoubleSpinBox *spinBox : lst )
98+
for ( QgsDoubleSpinBox *spinBox : qgis::as_const( lst ) )
9999
connect( spinBox, qgis::overload<double>::of( &QgsDoubleSpinBox::valueChanged ), this, &QgsLayout3DMapWidget::updateCameraPose );
100100

101101
updateCameraPoseWidgetsFromItem();

src/app/layout/qgslayoutatlaswidget.cpp

Lines changed: 2 additions & 2 deletions
Original file line numberDiff line numberDiff line change
@@ -91,7 +91,7 @@ void QgsLayoutAtlasWidget::mUseAtlasCheckBox_stateChanged( int state )
9191

9292
void QgsLayoutAtlasWidget::changeCoverageLayer( QgsMapLayer *layer )
9393
{
94-
QgsVectorLayer *vl = dynamic_cast<QgsVectorLayer *>( layer );
94+
QgsVectorLayer *vl = qobject_cast<QgsVectorLayer *>( layer );
9595

9696
mLayout->undoStack()->beginCommand( mAtlas, tr( "Change Atlas Layer" ) );
9797
mLayout->reportContext().setLayer( vl );
@@ -266,7 +266,7 @@ void QgsLayoutAtlasWidget::mAtlasFeatureFilterEdit_editingFinished()
266266

267267
void QgsLayoutAtlasWidget::mAtlasFeatureFilterButton_clicked()
268268
{
269-
QgsVectorLayer *vl = dynamic_cast<QgsVectorLayer *>( mAtlasCoverageLayerComboBox->currentLayer() );
269+
QgsVectorLayer *vl = qobject_cast<QgsVectorLayer *>( mAtlasCoverageLayerComboBox->currentLayer() );
270270

271271
if ( !vl )
272272
{

src/app/layout/qgslayoutattributeselectiondialog.cpp

Lines changed: 1 addition & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -97,7 +97,7 @@ QVariant QgsLayoutAttributeTableColumnModel::data( const QModelIndex &index, int
9797
if ( role == Qt::UserRole )
9898
{
9999
//user role stores reference in column object
100-
return qVariantFromValue( qobject_cast<QObject *>( column ) );
100+
return qVariantFromValue( column );
101101
}
102102

103103
switch ( index.column() )

src/core/geometry/qgscompoundcurve.cpp

Lines changed: 4 additions & 2 deletions
Original file line numberDiff line numberDiff line change
@@ -76,9 +76,10 @@ int QgsCompoundCurve::dimension() const
7676
QgsCompoundCurve::QgsCompoundCurve( const QgsCompoundCurve &curve ): QgsCurve( curve )
7777
{
7878
mWkbType = curve.wkbType();
79+
mCurves.reserve( curve.mCurves.size() );
7980
for ( const QgsCurve *c : curve.mCurves )
8081
{
81-
mCurves.append( static_cast<QgsCurve *>( c->clone() ) );
82+
mCurves.append( c->clone() );
8283
}
8384
}
8485

@@ -90,7 +91,7 @@ QgsCompoundCurve &QgsCompoundCurve::operator=( const QgsCompoundCurve &curve )
9091
QgsCurve::operator=( curve );
9192
for ( const QgsCurve *c : curve.mCurves )
9293
{
93-
mCurves.append( static_cast<QgsCurve *>( c->clone() ) );
94+
mCurves.append( c->clone() );
9495
}
9596
}
9697
return *this;
@@ -221,6 +222,7 @@ QByteArray QgsCompoundCurve::asWkb() const
221222
{
222223
int binarySize = sizeof( char ) + sizeof( quint32 ) + sizeof( quint32 );
223224
QVector<QByteArray> wkbForCurves;
225+
wkbForCurves.reserve( mCurves.size() );
224226
for ( const QgsCurve *curve : mCurves )
225227
{
226228
QByteArray wkbForCurve = curve->asWkb();

src/core/geometry/qgscurvepolygon.cpp

Lines changed: 6 additions & 4 deletions
Original file line numberDiff line numberDiff line change
@@ -62,12 +62,12 @@ QgsCurvePolygon::QgsCurvePolygon( const QgsCurvePolygon &p )
6262
mWkbType = p.mWkbType;
6363
if ( p.mExteriorRing )
6464
{
65-
mExteriorRing.reset( static_cast<QgsCurve *>( p.mExteriorRing->clone() ) );
65+
mExteriorRing.reset( p.mExteriorRing->clone() );
6666
}
6767

6868
for ( const QgsCurve *ring : p.mInteriorRings )
6969
{
70-
mInteriorRings.push_back( static_cast<QgsCurve *>( ring->clone() ) );
70+
mInteriorRings.push_back( ring->clone() );
7171
}
7272
}
7373

@@ -79,12 +79,12 @@ QgsCurvePolygon &QgsCurvePolygon::operator=( const QgsCurvePolygon &p )
7979
QgsSurface::operator=( p );
8080
if ( p.mExteriorRing )
8181
{
82-
mExteriorRing.reset( static_cast<QgsCurve *>( p.mExteriorRing->clone() ) );
82+
mExteriorRing.reset( p.mExteriorRing->clone() );
8383
}
8484

8585
for ( const QgsCurve *ring : p.mInteriorRings )
8686
{
87-
mInteriorRings.push_back( static_cast<QgsCurve *>( ring->clone() ) );
87+
mInteriorRings.push_back( ring->clone() );
8888
}
8989
}
9090
return *this;
@@ -282,6 +282,7 @@ QByteArray QgsCurvePolygon::asWkb() const
282282
{
283283
int binarySize = sizeof( char ) + sizeof( quint32 ) + sizeof( quint32 );
284284
QVector<QByteArray> wkbForRings;
285+
wkbForRings.reserve( 1 + mInteriorRings.size() );
285286
if ( mExteriorRing )
286287
{
287288
QByteArray wkb( mExteriorRing->asWkb() );
@@ -580,6 +581,7 @@ QgsPolygon *QgsCurvePolygon::toPolygon( double tolerance, SegmentationToleranceT
580581
poly->setExteriorRing( mExteriorRing->curveToLine( tolerance, toleranceType ) );
581582

582583
QVector<QgsCurve *> rings;
584+
rings.reserve( mInteriorRings.size() );
583585
for ( const QgsCurve *ring : mInteriorRings )
584586
{
585587
rings.push_back( ring->curveToLine( tolerance, toleranceType ) );

src/core/geometry/qgsellipse.cpp

Lines changed: 1 addition & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -200,6 +200,7 @@ QgsPointSequence QgsEllipse::points( unsigned int segments ) const
200200
double m = mCenter.m();
201201

202202
QVector<double> t;
203+
t.reserve( segments );
203204
double azimuth = std::atan2( quadrant().at( 0 ).y() - mCenter.y(), quadrant().at( 0 ).x() - mCenter.x() );
204205
for ( unsigned int i = 0; i < segments; ++i )
205206
{

src/core/geometry/qgsgeometry.cpp

Lines changed: 1 addition & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -748,6 +748,7 @@ QgsGeometry QgsGeometry::removeInteriorRings( double minimumRingArea ) const
748748
{
749749
const QVector<QgsGeometry> parts = asGeometryCollection();
750750
QVector<QgsGeometry> results;
751+
results.reserve( parts.count() );
751752
for ( const QgsGeometry &part : parts )
752753
{
753754
QgsGeometry result = part.removeInteriorRings( minimumRingArea );

src/core/geometry/qgsgeometrycollection.cpp

Lines changed: 1 addition & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -621,7 +621,7 @@ bool QgsGeometryCollection::fromCollectionWkt( const QString &wkt, const QVector
621621
}
622622
mWkbType = parts.first;
623623

624-
QString defChildWkbType = QStringLiteral( "%1%2%3 " ).arg( defaultChildWkbType, is3D() ? "Z" : "", isMeasure() ? "M" : "" );
624+
QString defChildWkbType = QStringLiteral( "%1%2%3 " ).arg( defaultChildWkbType, is3D() ? QStringLiteral( "Z" ) : QString(), isMeasure() ? QStringLiteral( "M" ) : QString() );
625625

626626
const QStringList blocks = QgsGeometryUtils::wktGetChildBlocks( parts.second, defChildWkbType );
627627
for ( const QString &childWkt : blocks )

src/core/geometry/qgsgeometryfactory.cpp

Lines changed: 1 addition & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -169,6 +169,7 @@ std::unique_ptr<QgsPolygon> QgsGeometryFactory::fromPolygonXY( const QgsPolygonX
169169
std::unique_ptr< QgsPolygon > poly = qgis::make_unique< QgsPolygon >();
170170

171171
QVector<QgsCurve *> holes;
172+
holes.reserve( polygon.size() );
172173
for ( int i = 0; i < polygon.size(); ++i )
173174
{
174175
std::unique_ptr< QgsLineString > l = linestringFromPolyline( polygon.at( i ) );

src/core/geometry/qgsgeometryutils.cpp

Lines changed: 2 additions & 2 deletions
Original file line numberDiff line numberDiff line change
@@ -1079,7 +1079,7 @@ QString QgsGeometryUtils::pointsToWKT( const QgsPointSequence &points, int preci
10791079
return wkt;
10801080
}
10811081

1082-
QDomElement QgsGeometryUtils::pointsToGML2( const QgsPointSequence &points, QDomDocument &doc, int precision, const QString &ns, const QgsAbstractGeometry::AxisOrder &axisOrder )
1082+
QDomElement QgsGeometryUtils::pointsToGML2( const QgsPointSequence &points, QDomDocument &doc, int precision, const QString &ns, QgsAbstractGeometry::AxisOrder axisOrder )
10831083
{
10841084
QDomElement elemCoordinates = doc.createElementNS( ns, QStringLiteral( "coordinates" ) );
10851085

@@ -1106,7 +1106,7 @@ QDomElement QgsGeometryUtils::pointsToGML2( const QgsPointSequence &points, QDom
11061106
return elemCoordinates;
11071107
}
11081108

1109-
QDomElement QgsGeometryUtils::pointsToGML3( const QgsPointSequence &points, QDomDocument &doc, int precision, const QString &ns, bool is3D, const QgsAbstractGeometry::AxisOrder &axisOrder )
1109+
QDomElement QgsGeometryUtils::pointsToGML3( const QgsPointSequence &points, QDomDocument &doc, int precision, const QString &ns, bool is3D, QgsAbstractGeometry::AxisOrder axisOrder )
11101110
{
11111111
QDomElement elemPosList = doc.createElementNS( ns, QStringLiteral( "posList" ) );
11121112
elemPosList.setAttribute( QStringLiteral( "srsDimension" ), is3D ? 3 : 2 );

src/core/geometry/qgsgeometryutils.h

Lines changed: 2 additions & 2 deletions
Original file line numberDiff line numberDiff line change
@@ -372,13 +372,13 @@ class CORE_EXPORT QgsGeometryUtils
372372
* Returns a gml::coordinates DOM element.
373373
* \note not available in Python bindings
374374
*/
375-
static QDomElement pointsToGML2( const QgsPointSequence &points, QDomDocument &doc, int precision, const QString &ns, const QgsAbstractGeometry::AxisOrder &axisOrder = QgsAbstractGeometry::AxisOrder::XY ) SIP_SKIP;
375+
static QDomElement pointsToGML2( const QgsPointSequence &points, QDomDocument &doc, int precision, const QString &ns, QgsAbstractGeometry::AxisOrder axisOrder = QgsAbstractGeometry::AxisOrder::XY ) SIP_SKIP;
376376

377377
/**
378378
* Returns a gml::posList DOM element.
379379
* \note not available in Python bindings
380380
*/
381-
static QDomElement pointsToGML3( const QgsPointSequence &points, QDomDocument &doc, int precision, const QString &ns, bool is3D, const QgsAbstractGeometry::AxisOrder &axisOrder = QgsAbstractGeometry::AxisOrder::XY ) SIP_SKIP;
381+
static QDomElement pointsToGML3( const QgsPointSequence &points, QDomDocument &doc, int precision, const QString &ns, bool is3D, QgsAbstractGeometry::AxisOrder axisOrder = QgsAbstractGeometry::AxisOrder::XY ) SIP_SKIP;
382382

383383
/**
384384
* Returns a geoJSON coordinates string.

src/core/geometry/qgsgeos.cpp

Lines changed: 4 additions & 2 deletions
Original file line numberDiff line numberDiff line change
@@ -157,7 +157,7 @@ QgsGeometry QgsGeos::geometryFromGeos( GEOSGeometry *geos )
157157
return g;
158158
}
159159

160-
QgsGeometry QgsGeos::geometryFromGeos( geos::unique_ptr geos )
160+
QgsGeometry QgsGeos::geometryFromGeos( const geos::unique_ptr &geos )
161161
{
162162
QgsGeometry g( QgsGeos::fromGeos( geos.get() ) );
163163
return g;
@@ -1187,7 +1187,9 @@ std::unique_ptr<QgsPolygon> QgsGeos::fromGeosPolygon( const GEOSGeometry *geos )
11871187
}
11881188

11891189
QVector<QgsCurve *> interiorRings;
1190-
for ( int i = 0; i < GEOSGetNumInteriorRings_r( geosinit.ctxt, geos ); ++i )
1190+
const int ringCount = GEOSGetNumInteriorRings_r( geosinit.ctxt, geos );
1191+
interiorRings.reserve( ringCount );
1192+
for ( int i = 0; i < ringCount; ++i )
11911193
{
11921194
ring = GEOSGetInteriorRingN_r( geosinit.ctxt, geos, i );
11931195
if ( ring )

src/core/geometry/qgsgeos.h

Lines changed: 1 addition & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -120,7 +120,7 @@ class CORE_EXPORT QgsGeos: public QgsGeometryEngine
120120
/**
121121
* Creates a new QgsGeometry object, feeding in a geometry in GEOS format.
122122
*/
123-
static QgsGeometry geometryFromGeos( geos::unique_ptr geos );
123+
static QgsGeometry geometryFromGeos( const geos::unique_ptr &geos );
124124

125125
/**
126126
* Adds a new island polygon to a multipolygon feature

src/core/geometry/qgsinternalgeometryengine.cpp

Lines changed: 2 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -49,6 +49,7 @@ QgsGeometry QgsInternalGeometryEngine::extrude( double x, double y ) const
4949
const QgsMultiCurve *multiCurve = qgsgeometry_cast< const QgsMultiCurve * >( mGeometry );
5050
if ( multiCurve )
5151
{
52+
linesToProcess.reserve( multiCurve->partCount() );
5253
for ( int i = 0; i < multiCurve->partCount(); ++i )
5354
{
5455
linesToProcess << static_cast<QgsLineString *>( multiCurve->geometryN( i )->clone() );
@@ -920,6 +921,7 @@ QgsGeometry QgsInternalGeometryEngine::variableWidthBuffer( int segments, const
920921
}
921922

922923
QVector<QgsGeometry> bufferedLines;
924+
bufferedLines.reserve( linesToProcess.size() );
923925

924926
for ( std::unique_ptr< QgsLineString > &line : linesToProcess )
925927
{

src/core/geometry/qgslinestring.cpp

Lines changed: 1 addition & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -466,7 +466,7 @@ QgsLineString *QgsLineString::curveToLine( double tolerance, SegmentationToleran
466466
{
467467
Q_UNUSED( tolerance );
468468
Q_UNUSED( toleranceType );
469-
return static_cast<QgsLineString *>( clone() );
469+
return clone();
470470
}
471471

472472
int QgsLineString::numPoints() const

0 commit comments

Comments
 (0)