Thermal Fracture: Fix off-by-one in properties parsing.

Would leave out the last element from the file (i.e LeakoffPressureDrop).
This commit is contained in:
Kristian Bendiksen
2022-09-09 08:17:58 +02:00
parent 550110d8ab
commit 2fea355cd2

View File

@@ -50,11 +50,15 @@ std::pair<std::shared_ptr<RigThermalFractureDefinition>, QString>
auto appendPropertyValues = [definition]( int nodeIndex, int valueOffset, const QStringList& values ) { auto appendPropertyValues = [definition]( int nodeIndex, int valueOffset, const QStringList& values ) {
CAF_ASSERT( valueOffset <= values.size() ); CAF_ASSERT( valueOffset <= values.size() );
for ( int i = valueOffset; i < values.size() - 1; i++ ) for ( int i = valueOffset; i < values.size(); i++ )
{ {
double value = values[i].toDouble(); bool isOk = false;
int propertyIndex = i - valueOffset; double value = values[i].toDouble( &isOk );
definition->appendPropertyValue( propertyIndex, nodeIndex, value ); if ( isOk )
{
int propertyIndex = i - valueOffset;
definition->appendPropertyValue( propertyIndex, nodeIndex, value );
}
} }
}; };
@@ -80,7 +84,7 @@ std::pair<std::shared_ptr<RigThermalFractureDefinition>, QString>
if ( isFirstHeader ) if ( isFirstHeader )
{ {
// Create the result vector when encountering the first header // Create the result vector when encountering the first header
for ( int i = valueOffset; i < headerValues.size() - 1; i++ ) for ( int i = valueOffset; i < headerValues.size(); i++ )
{ {
auto [name, unit] = parseNameAndUnit( headerValues[i] ); auto [name, unit] = parseNameAndUnit( headerValues[i] );
if ( !name.isEmpty() && !unit.isEmpty() ) definition->addProperty( name, unit ); if ( !name.isEmpty() && !unit.isEmpty() ) definition->addProperty( name, unit );