Skip to content

Commit

Permalink
avoid crash when invalid mesh group names
Browse files Browse the repository at this point in the history
when problem in the formula of mesh calculator
  • Loading branch information
vcloarec committed Nov 26, 2020
1 parent 96c07cd commit 026c323
Showing 1 changed file with 6 additions and 4 deletions.
10 changes: 6 additions & 4 deletions src/core/mesh/qgsmeshdataset.cpp
Expand Up @@ -656,8 +656,11 @@ void QgsMeshDatasetGroupTreeItem::setDatasetGroup( QgsMeshDatasetGroup *datasetG
for ( const QString &varName : datasetGroupNames )
{
QgsMeshDatasetGroupTreeItem *varItem = searchItemBySourceName( varName );
varItem->mDatasetGroupDependencies.append( this->datasetGroupIndex() );
mDatasetGroupDependentOn.append( varItem->datasetGroupIndex() );
if ( varItem )
{
varItem->mDatasetGroupDependencies.append( this->datasetGroupIndex() );
mDatasetGroupDependentOn.append( varItem->datasetGroupIndex() );
}
}
}
}
Expand Down Expand Up @@ -726,12 +729,11 @@ QList<int> QgsMeshDatasetGroupTreeItem::groupIndexDependencies() const

QgsMeshDatasetGroupTreeItem *QgsMeshDatasetGroupTreeItem::searchItemBySourceName( const QString &sourceName ) const
{

QgsMeshDatasetGroupTreeItem *baseItem = rootItem();

QList<QgsMeshDatasetGroupTreeItem *> itemToCheck;
itemToCheck.append( baseItem );
while ( baseItem->providerName() != sourceName && !itemToCheck.isEmpty() )
while ( baseItem && baseItem->providerName() != sourceName && !itemToCheck.isEmpty() )
{
for ( int i = 0; i < baseItem->childCount(); ++i )
itemToCheck.append( baseItem->child( i ) );
Expand Down

0 comments on commit 026c323

Please sign in to comment.