Ignore:
Timestamp:
11/02/15 11:46:35 (6 years ago)
Author:
mhnguyen
Message:

Fixing some minors bug during merge

Test
+) On Curie
+) test_remap passes

File:
1 edited

Legend:

Unmodified
Added
Removed
  • XIOS/trunk/src/declare_ref_func.hpp

    r775 r777  
    1919  C##type* getDirect##type##Reference(void) const;          \ 
    2020  const StdString& get##type##OutputName(void) const;       \ 
    21   void setAttributesBaseReference(bool apply = true);       \ 
     21  void setAttributesReference(bool apply = true);       \ 
     22                                                                       \ 
     23private:                                                               \ 
     24  std::vector<C##type*> refObjects;                                    \ 
    2225 
    2326// Definitions 
     
    2629void C##type::solveRefInheritance(bool apply)                          \ 
    2730{                                                                      \ 
    28   std::set<C##type*> refObjects;                                       \ 
     31  std::set<C##type*> tmpRefObjects;                                    \ 
    2932  C##type* refer_ptr = this;                                           \ 
     33  refObjects.push_back(this);                                          \ 
    3034                                                                       \ 
    3135  while (refer_ptr->hasDirect##type##Reference())                      \ 
    3236  {                                                                    \ 
    33     refObjects.insert(refer_ptr);                                      \ 
     37    tmpRefObjects.insert(refer_ptr);                                   \ 
    3438                                                                       \ 
    3539    refer_ptr = refer_ptr->getDirect##type##Reference();               \ 
    3640                                                                       \ 
    37     if (refObjects.end() != refObjects.find(refer_ptr))                \ 
     41    if (tmpRefObjects.end() != tmpRefObjects.find(refer_ptr))          \ 
    3842    {                                                                  \ 
    3943      ERROR("void C" #type "::solveRefInheritance(bool apply)",        \ 
     
    4246    }                                                                  \ 
    4347                                                                       \ 
     48    refObjects.push_back(refer_ptr);                                   \ 
    4449    SuperClassAttribute::setAttributes(refer_ptr, apply);              \ 
    4550  }                                                                    \ 
    4651}                                                                      \ 
    4752                                                                       \ 
    48 void C##type::setAttributesBaseReference(bool apply)                   \ 
     53void C##type::setAttributesReference(bool apply)                       \ 
    4954{                                                                      \ 
    50   baseRefObject->setAttributes(this, apply);                           \ 
     55  for (int i = 1; i < refObjects.size(); ++i)                          \ 
     56    refObjects[i]->setAttributes(refObjects[0], apply);                \ 
    5157}                                                                      \ 
    5258                                                                       \ 
Note: See TracChangeset for help on using the changeset viewer.