Changeset 1319


Ignore:
Timestamp:
10/26/17 11:02:16 (4 years ago)
Author:
rlacroix
Message:

Fix r1315: The attributes checks were too aggressive and could cause crashes.

Location:
XIOS
Files:
2 edited

Legend:

Unmodified
Added
Removed
  • XIOS/dev/XIOS_DEV_CMIP6/src/node/field.cpp

    r1318 r1319  
    981981    if (!isReferenceSolvedAndTransformed) solveAllEnabledFieldsAndTransform(); 
    982982 
    983      checkAttributes(); 
    984  
    985983     const bool detectMissingValues = (!detect_missing_value.isEmpty() && !default_value.isEmpty() && detect_missing_value == true); 
    986984     const double defaultValue  = detectMissingValues ? default_value : (!default_value.isEmpty() ? default_value : 0.0); 
     
    10531051         // Check if the data is to be read from a file 
    10541052         else if (file && !file->mode.isEmpty() && file->mode == CFile::mode_attr::read) 
     1053         { 
     1054           checkAttributes(); 
    10551055           instantDataFilter = serverSourceFilter = boost::shared_ptr<CSourceFilter>(new CSourceFilter(gc, grid, true, freq_offset, true, 
    10561056                                                                                                       detectMissingValues, defaultValue)); 
     1057         } 
    10571058         else // The data might be passed from the model 
    10581059         { 
     
    11311132     if (!selfReferenceFilter) 
    11321133     { 
    1133        checkAttributes(); 
    1134  
    11351134       const bool detectMissingValues = (!detect_missing_value.isEmpty() && !default_value.isEmpty() && detect_missing_value == true); 
    11361135       const double defaultValue  = detectMissingValues ? default_value : (!default_value.isEmpty() ? default_value : 0.0); 
     
    11391138       { 
    11401139         if (!serverSourceFilter) 
     1140         { 
     1141           checkAttributes(); 
    11411142           serverSourceFilter = boost::shared_ptr<CSourceFilter>(new CSourceFilter(gc, grid, true, freq_offset, true, 
    11421143                                                                                   detectMissingValues, defaultValue)); 
     1144         } 
    11431145 
    11441146         selfReferenceFilter = serverSourceFilter; 
  • XIOS/trunk/src/node/field.cpp

    r1318 r1319  
    827827     if (!areAllReferenceSolved) solveAllReferenceEnabledField(false); 
    828828 
    829      checkAttributes(); 
    830  
    831829     const bool detectMissingValues = (!detect_missing_value.isEmpty() && !default_value.isEmpty() && detect_missing_value == true); 
    832830     const double defaultValue  = detectMissingValues ? default_value : (!default_value.isEmpty() ? default_value : 0.0); 
     
    862860       // Check if the data is to be read from a file 
    863861       else if (file && !file->mode.isEmpty() && file->mode == CFile::mode_attr::read) 
     862       { 
     863         checkAttributes(); 
    864864         instantDataFilter = serverSourceFilter = boost::shared_ptr<CSourceFilter>(new CSourceFilter(gc, grid, freq_offset, true, 
    865865                                                                                                     detectMissingValues, defaultValue)); 
     866       } 
    866867       else // The data might be passed from the model 
    867868       { 
     
    939940     if (!selfReferenceFilter) 
    940941     { 
    941        checkAttributes(); 
    942  
    943942       const bool detectMissingValues = (!detect_missing_value.isEmpty() && !default_value.isEmpty() && detect_missing_value == true); 
    944943       const double defaultValue  = detectMissingValues ? default_value : (!default_value.isEmpty() ? default_value : 0.0); 
     
    947946       { 
    948947         if (!serverSourceFilter) 
     948         { 
     949           checkAttributes(); 
    949950           serverSourceFilter = boost::shared_ptr<CSourceFilter>(new CSourceFilter(gc, grid, freq_offset, true, 
    950951                                                                                   detectMissingValues, defaultValue)); 
     952         } 
    951953 
    952954         selfReferenceFilter = serverSourceFilter; 
Note: See TracChangeset for help on using the changeset viewer.