mirror of
https://github.com/qgis/QGIS.git
synced 2025-03-10 00:13:55 -04:00
Avoid altering std::map while iterating over it (potentially unsafe)
And avoid some double-lookups
This commit is contained in:
parent
e3d2dcdbe3
commit
bc6c3e57ff
@ -206,7 +206,7 @@ QgsRasterCalculator::Result QgsRasterCalculator::processCalculation( QgsFeedback
|
||||
for ( auto &layerRef : inputBlocks )
|
||||
{
|
||||
QgsRasterCalculatorEntry ref = uniqueRasterEntries[layerRef.first];
|
||||
if ( uniqueRasterEntries[layerRef.first].raster->crs() != mOutputCrs )
|
||||
if ( ref.raster->crs() != mOutputCrs )
|
||||
{
|
||||
QgsRasterProjector proj;
|
||||
proj.setCrs( ref.raster->crs(), mOutputCrs, mTransformContext );
|
||||
@ -216,7 +216,7 @@ QgsRasterCalculator::Result QgsRasterCalculator::processCalculation( QgsFeedback
|
||||
}
|
||||
else
|
||||
{
|
||||
inputBlocks[layerRef.first].reset( ref.raster->dataProvider()->block( ref.bandNumber, rect, mNumOutputColumns, 1 ) );
|
||||
layerRef.second.reset( ref.raster->dataProvider()->block( ref.bandNumber, rect, mNumOutputColumns, 1 ) );
|
||||
}
|
||||
}
|
||||
|
||||
@ -226,7 +226,7 @@ QgsRasterCalculator::Result QgsRasterCalculator::processCalculation( QgsFeedback
|
||||
_rasterData.clear();
|
||||
for ( const auto &layerRef : inputBlocks )
|
||||
{
|
||||
_rasterData.insert( layerRef.first, inputBlocks[layerRef.first].get() );
|
||||
_rasterData.insert( layerRef.first, layerRef.second.get() );
|
||||
}
|
||||
|
||||
if ( calcNode->calculate( _rasterData, resultMatrix, 0 ) )
|
||||
|
Loading…
x
Reference in New Issue
Block a user