Skip to content

Commit 8a742e9

Browse files
committed
Fix some clazy container-inside-loop warnings
From the clazy docs: "Finds places defining containers inside loops. Defining them outside the loop and using resize(0) will save memory allocations."
1 parent bdc39ff commit 8a742e9

File tree

2 files changed

+10
-5
lines changed

2 files changed

+10
-5
lines changed

src/core/qgsogcutils.cpp

+2-1
Original file line numberDiff line numberDiff line change
@@ -653,9 +653,10 @@ QgsGeometry QgsOgcUtils::geometryFromGMLMultiPolygon( const QDomElement& geometr
653653
QDomNodeList currentPosList;
654654

655655
QDomNodeList polygonMemberList = geometryElement.elementsByTagNameNS( GML_NAMESPACE, "polygonMember" );
656+
QgsPolygon currentPolygonList;
656657
for ( int i = 0; i < polygonMemberList.size(); ++i )
657658
{
658-
QgsPolygon currentPolygonList;
659+
currentPolygonList.resize( 0 ); // preserve capacity - don't use clear
659660
currentPolygonMemberElement = polygonMemberList.at( i ).toElement();
660661
polygonList = currentPolygonMemberElement.elementsByTagNameNS( GML_NAMESPACE, "Polygon" );
661662
if ( polygonList.size() < 1 )

src/core/symbology-ng/qgsinvertedpolygonrenderer.cpp

+8-4
Original file line numberDiff line numberDiff line change
@@ -259,8 +259,12 @@ void QgsInvertedPolygonRenderer::stopRender( QgsRenderContext& context )
259259
return;
260260
}
261261

262+
QgsMultiPolygon finalMulti; //avoid expensive allocation for list for every feature
263+
QgsPolygon newPoly;
264+
262265
Q_FOREACH ( const CombinedFeature& cit, mFeaturesCategories )
263266
{
267+
finalMulti.resize( 0 ); //preserve capacity - don't use clear!
264268
QgsFeature feat = cit.feature; // just a copy, so that we do not accumulate geometries again
265269
if ( mPreprocessingEnabled )
266270
{
@@ -283,7 +287,7 @@ void QgsInvertedPolygonRenderer::stopRender( QgsRenderContext& context )
283287
//
284288
// No validity check is done, on purpose, it will be very slow and painting
285289
// operations do not need geometries to be valid
286-
QgsMultiPolygon finalMulti;
290+
287291
finalMulti.append( mExtentPolygon );
288292
Q_FOREACH ( const QgsGeometry& geom, cit.geometries )
289293
{
@@ -312,9 +316,9 @@ void QgsInvertedPolygonRenderer::stopRender( QgsRenderContext& context )
312316
// add interior rings as new polygons
313317
for ( int j = 1; j < multi[i].size(); j++ )
314318
{
315-
QgsPolygon new_poly;
316-
new_poly.append( multi[i][j] );
317-
finalMulti.append( new_poly );
319+
newPoly.resize( 0 ); //preserve capacity - don't use clear!
320+
newPoly.append( multi[i][j] );
321+
finalMulti.append( newPoly );
318322
}
319323
}
320324
}

0 commit comments

Comments
 (0)