Changeset 1001 for XIOS/trunk


Ignore:
Timestamp:
11/22/16 16:58:55 (7 years ago)
Author:
rlacroix
Message:

Use the same error message for CFilterFieldExprNode and CFilterTemporalFieldExprNode now that @this is supported.

File:
1 edited

Legend:

Unmodified
Added
Removed
  • XIOS/trunk/src/parse_expr/filter_expr_node.cpp

    r998 r1001  
    4040  boost::shared_ptr<COutputPin> CFilterTemporalFieldExprNode::reduce(CGarbageCollector& gc, CField& thisField) const 
    4141  { 
    42       if (fieldId == "this") return thisField.getSelfTemporalDataFilter(gc, thisField.freq_op.isEmpty() ? TimeStep : thisField.freq_op); 
    43        
    44       if (!CField::has(fieldId)) 
     42    boost::shared_ptr<COutputPin> outputPin; 
     43 
     44    if (fieldId == "this") 
     45      outputPin = thisField.getSelfTemporalDataFilter(gc, thisField.freq_op.isEmpty() ? TimeStep : thisField.freq_op); 
     46    else if (CField::has(fieldId)) 
     47    { 
     48      CField* field = CField::get(fieldId); 
     49      if (field == &thisField) 
     50        ERROR("boost::shared_ptr<COutputPin> CFilterTemporalFieldExprNode::reduce(CGarbageCollector& gc, CField& thisField) const", 
     51              << "The field " << fieldId << " has an invalid reference to itself. " 
     52              << "Use the keyword \"this\" if you want to reference the input data sent to this field."); 
     53 
     54      field->buildFilterGraph(gc, false); 
     55      outputPin = field->getTemporalDataFilter(gc, thisField.freq_op.isEmpty() ? TimeStep : thisField.freq_op); 
     56    } 
     57    else 
    4558      ERROR("boost::shared_ptr<COutputPin> CFilterTemporalFieldExprNode::reduce(CGarbageCollector& gc, CField& thisField) const", 
    4659            << "The field " << fieldId << " does not exist."); 
    4760 
    48        
    49     CField* field = CField::get(fieldId); 
    50     if (field == &thisField) 
    51       ERROR("boost::shared_ptr<COutputPin> CFilterFieldExprNode::reduce(CGarbageCollector& gc, CField& thisField) const", 
    52             << "The field " << fieldId << " has an invalid reference to itself."); 
    53  
    54     field->buildFilterGraph(gc, false); 
    55     return field->getTemporalDataFilter(gc, thisField.freq_op.isEmpty() ? TimeStep : thisField.freq_op); 
     61    return outputPin; 
    5662  } 
    5763 
Note: See TracChangeset for help on using the changeset viewer.