- Timestamp:
- Dec 2, 2015, 11:22:03 PM (9 years ago)
- File:
-
- 1 edited
Legend:
- Unmodified
- Added
- Removed
-
code/branches/cpp11_v2/src/libraries/core/class/IdentifierManager.cc
r10821 r10916 93 93 { 94 94 Context temporaryContext(nullptr); 95 for ( autoidentifier : this->identifiers_)95 for (Identifier* identifier : this->identifiers_) 96 96 { 97 98 97 if (identifier->isInitialized()) 99 98 continue; … … 127 126 128 127 // finish the initialization of all identifiers 129 for ( const auto &initializedIdentifier : initializedIdentifiers)130 (initializedIdentifier)->finishInitialization();128 for (Identifier* initializedIdentifier : initializedIdentifiers) 129 initializedIdentifier->finishInitialization(); 131 130 132 131 // only check class hierarchy in dev mode because it's an expensive operation and it requires a developer to fix detected problems anyway. … … 144 143 { 145 144 // check if there are any uninitialized identifiers remaining 146 for ( const auto & elem: this->identifiers_)147 if (! (elem)->isInitialized())148 orxout(internal_error) << "Identifier was registered late and is not initialized: " << (elem)->getName() << " / " << (elem)->getTypeInfo().name() << endl;145 for (Identifier* identifier : this->identifiers_) 146 if (!identifier->isInitialized()) 147 orxout(internal_error) << "Identifier was registered late and is not initialized: " << identifier->getName() << " / " << identifier->getTypeInfo().name() << endl; 149 148 150 149 // for all initialized identifiers, check if a sample instance behaves as expected according to the class hierarchy 151 150 Context temporaryContext(nullptr); 152 for ( const auto &initializedIdentifier : initializedIdentifiers)151 for (Identifier* initializedIdentifier : initializedIdentifiers) 153 152 { 154 if (! (initializedIdentifier)->hasFactory())153 if (!initializedIdentifier->hasFactory()) 155 154 continue; 156 155 157 Identifiable* temp = (initializedIdentifier)->fabricate(&temporaryContext);158 159 for ( const auto & elem: this->identifiers_)156 Identifiable* temp = initializedIdentifier->fabricate(&temporaryContext); 157 158 for (Identifier* identifier : this->identifiers_) 160 159 { 161 bool isA_AccordingToRtti = (elem)->canDynamicCastObjectToIdentifierClass(temp);162 bool isA_AccordingToClassHierarchy = temp->isA( (elem));160 bool isA_AccordingToRtti = identifier->canDynamicCastObjectToIdentifierClass(temp); 161 bool isA_AccordingToClassHierarchy = temp->isA(identifier); 163 162 164 163 if (isA_AccordingToRtti != isA_AccordingToClassHierarchy) 165 164 { 166 orxout(internal_error) << "Class hierarchy does not match RTTI: Class hierarchy claims that " << (initializedIdentifier)->getName() <<167 (isA_AccordingToClassHierarchy ? " is a " : " is not a ") << (elem)->getName() << " but RTTI says the opposite." << endl;165 orxout(internal_error) << "Class hierarchy does not match RTTI: Class hierarchy claims that " << initializedIdentifier->getName() << 166 (isA_AccordingToClassHierarchy ? " is a " : " is not a ") << identifier->getName() << " but RTTI says the opposite." << endl; 168 167 } 169 168 } … … 184 183 { 185 184 orxout(internal_status) << "Destroy class-hierarchy" << endl; 186 for ( const auto & elem: this->identifiers_)187 (elem)->reset();185 for (Identifier* identifier : this->identifiers_) 186 identifier->reset(); 188 187 } 189 188 … … 260 259 { 261 260 // TODO: use std::type_index and a map to find identifiers by type_info (only with c++11) 262 for ( const auto & elem: this->identifiers_)263 if ( (elem)->getTypeInfo() == typeInfo)264 return (elem);261 for (Identifier* identifer : this->identifiers_) 262 if (identifer->getTypeInfo() == typeInfo) 263 return identifer; 265 264 return nullptr; 266 265 }
Note: See TracChangeset
for help on using the changeset viewer.