Skip to content

Commit

Permalink
Merge pull request #30285 from qgis/backport-30276-to-release-3_4
Browse files Browse the repository at this point in the history
[Backport release-3_4] Fix crash in raster calculator
  • Loading branch information
m-kuhn committed Jun 20, 2019
2 parents d367269 + d10e0c4 commit 95271e2
Showing 1 changed file with 2 additions and 7 deletions.
9 changes: 2 additions & 7 deletions src/analysis/raster/qgsrastercalculator.cpp
Expand Up @@ -137,8 +137,7 @@ QgsRasterCalculator::Result QgsRasterCalculator::processCalculation( QgsFeedback
//read / write line by line
QMap<QString, QgsRasterBlock * > _rasterData;
// Cast to float
std::vector<float> castedResult;
castedResult.reserve( static_cast<size_t>( mNumOutputColumns ) );
std::vector<float> castedResult( static_cast<size_t>( mNumOutputColumns ), 0 );
auto rowHeight = mOutputRectangle.height() / mNumOutputRows;
for ( size_t row = 0; row < static_cast<size_t>( mNumOutputRows ); ++row )
{
Expand Down Expand Up @@ -186,11 +185,7 @@ QgsRasterCalculator::Result QgsRasterCalculator::processCalculation( QgsFeedback

if ( calcNode->calculate( _rasterData, resultMatrix, 0 ) )
{
// write scanline to the dataset
for ( size_t i = 0; i < static_cast<size_t>( mNumOutputColumns ); i++ )
{
castedResult[i] = static_cast<float>( resultMatrix.data()[i] );
}
std::copy( resultMatrix.data(), resultMatrix.data() + mNumOutputColumns, castedResult.begin() );
if ( GDALRasterIO( outputRasterBand, GF_Write, 0, row, mNumOutputColumns, 1, castedResult.data(), mNumOutputColumns, 1, GDT_Float32, 0, 0 ) != CE_None )
{
QgsDebugMsg( QStringLiteral( "RasterIO error!" ) );
Expand Down

0 comments on commit 95271e2

Please sign in to comment.