Changeset 751 for XIOS/trunk/src/declare_ref_func.hpp
- Timestamp:
- 10/21/15 13:40:58 (9 years ago)
- File:
-
- 1 edited
Legend:
- Unmodified
- Added
- Removed
-
XIOS/trunk/src/declare_ref_func.hpp
r750 r751 34 34 void C##type::solveRefInheritance(bool apply) \ 35 35 { \ 36 std::set<C##type*> sset;\36 std::set<C##type*> refObjects; \ 37 37 C##type* refer_ptr = this; \ 38 38 \ 39 39 while (refer_ptr->hasDirect##type##Reference()) \ 40 40 { \ 41 refObjects.insert(refer_ptr); \ 42 \ 41 43 refer_ptr = refer_ptr->getDirect##type##Reference(); \ 42 44 \ 43 if ( sset.end() != sset.find(refer_ptr))\45 if (refObjects.end() != refObjects.find(refer_ptr)) \ 44 46 { \ 45 DEBUG(<< "Circular dependency stopped for #name object on "\46 << " \"" + refer_ptr->getId() + "\" !");\47 break;\47 ERROR("void C" #type "::solveRefInheritance(bool apply)", \ 48 << "Circular dependency stopped for " #name " object " \ 49 << "with id = \"" << refer_ptr->getId() << "\"."); \ 48 50 } \ 49 51 \ 50 52 SuperClassAttribute::setAttributes(refer_ptr, apply); \ 51 sset.insert(refer_ptr); \52 53 } \ 53 54 } \ … … 61 62 void C##type::solveBaseReference(void) \ 62 63 { \ 63 std::set<C##type*> sset;\64 std::set<C##type*> refObjects; \ 64 65 baseRefObject = C##type::get(this); \ 65 66 \ 66 67 while (baseRefObject->hasDirect##type##Reference()) \ 67 68 { \ 69 refObjects.insert(baseRefObject); \ 70 \ 68 71 baseRefObject = baseRefObject->getDirect##type##Reference(); \ 69 72 \ 70 if ( sset.end() != sset.find(baseRefObject))\73 if (refObjects.end() != refObjects.find(baseRefObject)) \ 71 74 { \ 72 DEBUG(<< "Circular dependency stopped for #name object on "\73 << " \"" + baseRefObject->getId() + "\" !");\74 break;\75 ERROR("void C" #type "::solveBaseReference(void)", \ 76 << "Circular dependency stopped for " #name " object " \ 77 << "with id = \"" << baseRefObject->getId() << "\"."); \ 75 78 } \ 76 \77 sset.insert(baseRefObject); \78 79 } \ 79 80 \
Note: See TracChangeset
for help on using the changeset viewer.