Skip to content

Commit

Permalink
Fix clazy reserve-candidates suggestions
Browse files Browse the repository at this point in the history
Avoids repeated memory allocations
  • Loading branch information
nyalldawson committed Oct 24, 2016
1 parent 904b004 commit bdc39ff
Show file tree
Hide file tree
Showing 21 changed files with 32 additions and 3 deletions.
2 changes: 2 additions & 0 deletions src/app/qgisapp.cpp
Expand Up @@ -3860,6 +3860,8 @@ void QgisApp::askUserForGDALSublayers( QgsRasterLayer *layer )


QgsSublayersDialog::LayerDefinitionList layers; QgsSublayersDialog::LayerDefinitionList layers;
QStringList names; QStringList names;
names.reserve( sublayers.size() );
layers.reserve( sublayers.size() );
for ( int i = 0; i < sublayers.size(); i++ ) for ( int i = 0; i < sublayers.size(); i++ )
{ {
// simplify raster sublayer name - should add a function in gdal provider for this? // simplify raster sublayer name - should add a function in gdal provider for this?
Expand Down
1 change: 1 addition & 0 deletions src/app/qgsvectorlayerproperties.cpp
Expand Up @@ -1052,6 +1052,7 @@ void QgsVectorLayerProperties::on_mButtonAddJoin_clicked()


QList<QgsMapLayer*> joinedLayers; QList<QgsMapLayer*> joinedLayers;
const QList< QgsVectorJoinInfo >& joins = mLayer->vectorJoins(); const QList< QgsVectorJoinInfo >& joins = mLayer->vectorJoins();
joinedLayers.reserve( joins.size() );
for ( int i = 0; i < joins.size(); ++i ) for ( int i = 0; i < joins.size(); ++i )
{ {
joinedLayers.append( QgsMapLayerRegistry::instance()->mapLayer( joins[i].joinLayerId ) ); joinedLayers.append( QgsMapLayerRegistry::instance()->mapLayer( joins[i].joinLayerId ) );
Expand Down
1 change: 1 addition & 0 deletions src/core/pal/costcalculator.cpp
Expand Up @@ -104,6 +104,7 @@ void CostCalculator::setPolygonCandidatesCost( int nblp, QList< LabelPosition* >
// IMPORTANT - only want to sort first nblp positions. The rest have not had the cost // IMPORTANT - only want to sort first nblp positions. The rest have not had the cost
// calculated so will have nonsense values // calculated so will have nonsense values
QList< LabelPosition* > toSort; QList< LabelPosition* > toSort;
toSort.reserve( nblp );
for ( int i = 0; i < nblp; ++i ) for ( int i = 0; i < nblp; ++i )
{ {
toSort << lPos.at( i ); toSort << lPos.at( i );
Expand Down
1 change: 1 addition & 0 deletions src/core/qgscolorramp.cpp
Expand Up @@ -784,6 +784,7 @@ QgsColorRamp* QgsPresetSchemeColorRamp::create( const QgsStringMap& properties )
QList<QColor> QgsPresetSchemeColorRamp::colors() const QList<QColor> QgsPresetSchemeColorRamp::colors() const
{ {
QList< QColor > l; QList< QColor > l;
l.reserve( mColors.count() );
for ( int i = 0; i < mColors.count(); ++i ) for ( int i = 0; i < mColors.count(); ++i )
{ {
l << mColors.at( i ).first; l << mColors.at( i ).first;
Expand Down
1 change: 1 addition & 0 deletions src/core/qgsexpression.cpp
Expand Up @@ -2589,6 +2589,7 @@ static QVariant fcnOrderParts( const QVariantList& values, const QgsExpressionCo
QgsExpressionSorter sorter( orderBy ); QgsExpressionSorter sorter( orderBy );


QList<QgsFeature> partFeatures; QList<QgsFeature> partFeatures;
partFeatures.reserve( collection->partCount() );
for ( int i = 0; i < collection->partCount(); ++i ) for ( int i = 0; i < collection->partCount(); ++i )
{ {
f.setGeometry( QgsGeometry( collection->geometryN( i )->clone() ) ); f.setGeometry( QgsGeometry( collection->geometryN( i )->clone() ) );
Expand Down
5 changes: 3 additions & 2 deletions src/core/qgslayerdefinition.cpp
Expand Up @@ -220,11 +220,12 @@ void QgsLayerDefinition::DependencySorter::init( const QDomDocument& doc )
QStringList layerIds; QStringList layerIds;


QDomNodeList nl = doc.elementsByTagName( "maplayer" ); QDomNodeList nl = doc.elementsByTagName( "maplayer" );
layerIds.reserve( nl.count() );
QVector<QString> deps; //avoid expensive allocation for list for every iteration
for ( int i = 0; i < nl.count(); i++ ) for ( int i = 0; i < nl.count(); i++ )
{ {
QVector<QString> deps; deps.resize( 0 ); // preserve capacity - don't use clear
QDomNode node = nl.item( i ); QDomNode node = nl.item( i );
QDomElement element = node.toElement();


QString id = node.namedItem( "id" ).toElement().text(); QString id = node.namedItem( "id" ).toElement().text();
layerIds << id; layerIds << id;
Expand Down
4 changes: 4 additions & 0 deletions src/core/raster/qgsrasterfilewriter.cpp
Expand Up @@ -185,6 +185,10 @@ QgsRasterFileWriter::WriterError QgsRasterFileWriter::writeDataRaster( const Qgs
QList<bool> destHasNoDataValueList; QList<bool> destHasNoDataValueList;
QList<double> destNoDataValueList; QList<double> destNoDataValueList;
QList<Qgis::DataType> destDataTypeList; QList<Qgis::DataType> destDataTypeList;
destDataTypeList.reserve( nBands );
destHasNoDataValueList.reserve( nBands );
destNoDataValueList.reserve( nBands );

for ( int bandNo = 1; bandNo <= nBands; bandNo++ ) for ( int bandNo = 1; bandNo <= nBands; bandNo++ )
{ {
QgsRasterNuller *nuller = pipe->nuller(); QgsRasterNuller *nuller = pipe->nuller();
Expand Down
1 change: 1 addition & 0 deletions src/core/symbology-ng/qgsmarkersymbollayer.cpp
Expand Up @@ -1348,6 +1348,7 @@ bool QgsSimpleMarkerSymbolLayer::writeDxf( QgsDxfExport& e, double mmMapUnitScal
polygon = t.map( polygon ); polygon = t.map( polygon );


QgsPointSequence p; QgsPointSequence p;
p.reserve( polygon.size() );
for ( int i = 0; i < polygon.size(); i++ ) for ( int i = 0; i < polygon.size(); i++ )
p << QgsPointV2( polygon[i] ); p << QgsPointV2( polygon[i] );
p << p[0]; p << p[0];
Expand Down
1 change: 1 addition & 0 deletions src/gui/attributetable/qgsattributetablefiltermodel.cpp
Expand Up @@ -271,6 +271,7 @@ void QgsAttributeTableFilterModel::setFilteredFeatures( const QgsFeatureIds& ids
QgsFeatureIds QgsAttributeTableFilterModel::filteredFeatures() QgsFeatureIds QgsAttributeTableFilterModel::filteredFeatures()
{ {
QgsFeatureIds ids; QgsFeatureIds ids;
ids.reserve( rowCount() );
for ( int i = 0; i < rowCount(); ++i ) for ( int i = 0; i < rowCount(); ++i )
{ {
QModelIndex row = index( i, 0 ); QModelIndex row = index( i, 0 );
Expand Down
1 change: 1 addition & 0 deletions src/gui/attributetable/qgsorganizetablecolumnsdialog.cpp
Expand Up @@ -109,6 +109,7 @@ QgsOrganizeTableColumnsDialog::~QgsOrganizeTableColumnsDialog()
QgsAttributeTableConfig QgsOrganizeTableColumnsDialog::config() const QgsAttributeTableConfig QgsOrganizeTableColumnsDialog::config() const
{ {
QVector<QgsAttributeTableConfig::ColumnConfig> columns; QVector<QgsAttributeTableConfig::ColumnConfig> columns;
columns.reserve( mFieldsList->count() );


for ( int i = 0 ; i < mFieldsList->count() ; i++ ) for ( int i = 0 ; i < mFieldsList->count() ; i++ )
{ {
Expand Down
Expand Up @@ -272,6 +272,7 @@ void QgsValueRelationSearchWidgetWrapper::initWidget( QWidget* editor )
else if ( mLineEdit ) else if ( mLineEdit )
{ {
QStringList values; QStringList values;
values.reserve( mCache.size() );
Q_FOREACH ( const ValueRelationItem& i, mCache ) Q_FOREACH ( const ValueRelationItem& i, mCache )
{ {
values << i.second; values << i.second;
Expand Down
1 change: 1 addition & 0 deletions src/gui/editorwidgets/qgsvaluerelationwidgetwrapper.cpp
Expand Up @@ -141,6 +141,7 @@ void QgsValueRelationWidgetWrapper::initWidget( QWidget* editor )
else if ( mLineEdit ) else if ( mLineEdit )
{ {
QStringList values; QStringList values;
values.reserve( mCache.size() );
Q_FOREACH ( const ValueRelationItem& i, mCache ) Q_FOREACH ( const ValueRelationItem& i, mCache )
{ {
values << i.second; values << i.second;
Expand Down
1 change: 1 addition & 0 deletions src/gui/qgsdatumtransformdialog.cpp
Expand Up @@ -151,6 +151,7 @@ QList< int > QgsDatumTransformDialog::selectedDatumTransform()
QTreeWidgetItem * item = mDatumTransformTreeWidget->currentItem(); QTreeWidgetItem * item = mDatumTransformTreeWidget->currentItem();
if ( item ) if ( item )
{ {
list.reserve( 2 );
for ( int i = 0; i < 2; ++i ) for ( int i = 0; i < 2; ++i )
{ {
int transformNr = item->data( i, Qt::UserRole ).toInt(); int transformNr = item->data( i, Qt::UserRole ).toInt();
Expand Down
2 changes: 2 additions & 0 deletions src/gui/raster/qgsrastertransparencywidget.cpp
Expand Up @@ -406,6 +406,7 @@ void QgsRasterTransparencyWidget::apply()
{ {
QgsRasterTransparency::TransparentThreeValuePixel myTransparentPixel; QgsRasterTransparency::TransparentThreeValuePixel myTransparentPixel;
QList<QgsRasterTransparency::TransparentThreeValuePixel> myTransparentThreeValuePixelList; QList<QgsRasterTransparency::TransparentThreeValuePixel> myTransparentThreeValuePixelList;
myTransparentThreeValuePixelList.reserve( tableTransparency->rowCount() );
for ( int myListRunner = 0; myListRunner < tableTransparency->rowCount(); myListRunner++ ) for ( int myListRunner = 0; myListRunner < tableTransparency->rowCount(); myListRunner++ )
{ {
myTransparentPixel.red = transparencyCellValue( myListRunner, 0 ); myTransparentPixel.red = transparencyCellValue( myListRunner, 0 );
Expand All @@ -420,6 +421,7 @@ void QgsRasterTransparencyWidget::apply()
{ {
QgsRasterTransparency::TransparentSingleValuePixel myTransparentPixel; QgsRasterTransparency::TransparentSingleValuePixel myTransparentPixel;
QList<QgsRasterTransparency::TransparentSingleValuePixel> myTransparentSingleValuePixelList; QList<QgsRasterTransparency::TransparentSingleValuePixel> myTransparentSingleValuePixelList;
myTransparentSingleValuePixelList.reserve( tableTransparency->rowCount() );
for ( int myListRunner = 0; myListRunner < tableTransparency->rowCount(); myListRunner++ ) for ( int myListRunner = 0; myListRunner < tableTransparency->rowCount(); myListRunner++ )
{ {
myTransparentPixel.min = transparencyCellValue( myListRunner, 0 ); myTransparentPixel.min = transparencyCellValue( myListRunner, 0 );
Expand Down
3 changes: 2 additions & 1 deletion src/gui/symbology-ng/qgssvgselectorwidget.cpp
Expand Up @@ -306,6 +306,7 @@ QgsSvgSelectorGroupsModel::QgsSvgSelectorGroupsModel( QObject* parent )
QStringList svgPaths = QgsApplication::svgPaths(); QStringList svgPaths = QgsApplication::svgPaths();
QStandardItem *parentItem = invisibleRootItem(); QStandardItem *parentItem = invisibleRootItem();
QStringList parentPaths; QStringList parentPaths;
parentPaths.reserve( svgPaths.size() );


for ( int i = 0; i < svgPaths.size(); i++ ) for ( int i = 0; i < svgPaths.size(); i++ )
{ {
Expand Down Expand Up @@ -538,7 +539,7 @@ void QgsSvgSelectorWidget::populateList()
//-- QgsSvgSelectorDialog //-- QgsSvgSelectorDialog


QgsSvgSelectorDialog::QgsSvgSelectorDialog( QWidget *parent, Qt::WindowFlags fl, QgsSvgSelectorDialog::QgsSvgSelectorDialog( QWidget *parent, Qt::WindowFlags fl,
const QDialogButtonBox::StandardButtons& buttons, QDialogButtonBox::StandardButtons buttons,
Qt::Orientation orientation ) Qt::Orientation orientation )
: QDialog( parent, fl ) : QDialog( parent, fl )
{ {
Expand Down
2 changes: 2 additions & 0 deletions src/providers/arcgisrest/qgsafsprovider.cpp
Expand Up @@ -172,6 +172,7 @@ bool QgsAfsProvider::getFeature( const QgsFeatureId &id, QgsFeature &f, bool fet
// When fetching from server, fetch all attributes and geometry by default so that we can cache them // When fetching from server, fetch all attributes and geometry by default so that we can cache them
QStringList fetchAttribNames; QStringList fetchAttribNames;
QList<int> fetchAttribIdx; QList<int> fetchAttribIdx;
fetchAttribIdx.reserve( mFields.size() );
for ( int idx = 0, n = mFields.size(); idx < n; ++idx ) for ( int idx = 0, n = mFields.size(); idx < n; ++idx )
{ {
fetchAttribNames.append( mFields.at( idx ).name() ); fetchAttribNames.append( mFields.at( idx ).name() );
Expand All @@ -183,6 +184,7 @@ bool QgsAfsProvider::getFeature( const QgsFeatureId &id, QgsFeature &f, bool fet
int startId = ( id / 100 ) * 100; int startId = ( id / 100 ) * 100;
int stopId = qMin( startId + 100, mObjectIds.length() ); int stopId = qMin( startId + 100, mObjectIds.length() );
QList<quint32> objectIds; QList<quint32> objectIds;
objectIds.reserve( stopId );
for ( int i = startId; i < stopId; ++i ) for ( int i = startId; i < stopId; ++i )
{ {
objectIds.append( mObjectIds[i] ); objectIds.append( mObjectIds[i] );
Expand Down
1 change: 1 addition & 0 deletions src/providers/db2/qgsdb2tablemodel.cpp
Expand Up @@ -242,6 +242,7 @@ void QgsDb2TableModel::setGeometryTypesForTable( QgsDb2LayerProperty layerProper


QList<QStandardItem *> row; QList<QStandardItem *> row;


row.reserve( dbtmColumns );
for ( int j = 0; j < dbtmColumns; j++ ) for ( int j = 0; j < dbtmColumns; j++ )
{ {
row << itemFromIndex( currentChildIndex.sibling( i, j ) ); row << itemFromIndex( currentChildIndex.sibling( i, j ) );
Expand Down
1 change: 1 addition & 0 deletions src/providers/mssql/qgsmssqltablemodel.cpp
Expand Up @@ -241,6 +241,7 @@ void QgsMssqlTableModel::setGeometryTypesForTable( QgsMssqlLayerProperty layerPr
} }


QList<QStandardItem *> row; QList<QStandardItem *> row;
row.reserve( dbtmColumns );


for ( int j = 0; j < dbtmColumns; j++ ) for ( int j = 0; j < dbtmColumns; j++ )
{ {
Expand Down
2 changes: 2 additions & 0 deletions src/providers/wcs/qgswcsprovider.cpp
Expand Up @@ -272,6 +272,8 @@ QgsWcsProvider::QgsWcsProvider( const QString& uri )
// Get types // Get types
// TODO: we are using the same data types like GDAL (not wider like GDAL provider) // TODO: we are using the same data types like GDAL (not wider like GDAL provider)
// with expectation to replace 'no data' values by NaN // with expectation to replace 'no data' values by NaN
mSrcGdalDataType.reserve( mBandCount );
mGdalDataType.reserve( mBandCount );
for ( int i = 1; i <= mBandCount; i++ ) for ( int i = 1; i <= mBandCount; i++ )
{ {
GDALRasterBandH gdalBand = GDALGetRasterBand( mCachedGdalDataset, i ); GDALRasterBandH gdalBand = GDALGetRasterBand( mCachedGdalDataset, i );
Expand Down
2 changes: 2 additions & 0 deletions src/server/qgsserverprojectparser.cpp
Expand Up @@ -47,6 +47,7 @@ QgsServerProjectParser::QgsServerProjectParser( QDomDocument* xmlDoc, const QStr
QDomNodeList layerNodeList = mXMLDoc->elementsByTagName( "maplayer" ); QDomNodeList layerNodeList = mXMLDoc->elementsByTagName( "maplayer" );
QDomElement currentElement; QDomElement currentElement;
int nNodes = layerNodeList.size(); int nNodes = layerNodeList.size();
mProjectLayerElements.reserve( nNodes );
for ( int i = 0; i < nNodes; ++i ) for ( int i = 0; i < nNodes; ++i )
{ {
currentElement = layerNodeList.at( i ).toElement(); currentElement = layerNodeList.at( i ).toElement();
Expand Down Expand Up @@ -1470,6 +1471,7 @@ QList< QPair< QString, QgsLayerCoordinateTransform > > QgsServerProjectParser::l
} }


QDomNodeList layerTransformNodeList = coordTransformInfoElem.elementsByTagName( "layer_coordinate_transform" ); QDomNodeList layerTransformNodeList = coordTransformInfoElem.elementsByTagName( "layer_coordinate_transform" );
layerTransformList.reserve( layerTransformNodeList.size() );
for ( int i = 0; i < layerTransformNodeList.size(); ++i ) for ( int i = 0; i < layerTransformNodeList.size(); ++i )
{ {
QPair< QString, QgsLayerCoordinateTransform > layerEntry; QPair< QString, QgsLayerCoordinateTransform > layerEntry;
Expand Down
1 change: 1 addition & 0 deletions src/server/qgswmsprojectparser.cpp
Expand Up @@ -996,6 +996,7 @@ void QgsWmsProjectParser::addDrawingOrder( QDomElement& parentElem, QDomDocument
if ( !layerList.isEmpty() ) if ( !layerList.isEmpty() )
{ {
QStringList reversedList; QStringList reversedList;
reversedList.reserve( layerList.size() );
for ( int i = layerList.size() - 1; i >= 0; --i ) for ( int i = layerList.size() - 1; i >= 0; --i )
reversedList << layerList[ i ]; reversedList << layerList[ i ];


Expand Down

0 comments on commit bdc39ff

Please sign in to comment.