| 2090 | //----------------------------------------------------------------------------- |
| 2091 | |
| 2092 | void SimObject::setSuperClassNamespace( const char *superClassNamespace ) |
| 2093 | { |
| 2094 | StringTableEntry oldSuperClassNamespace = mSuperClassName; |
| 2095 | StringTableEntry newSuperClassNamespace = StringTable->insert( superClassNamespace ); |
| 2096 | |
| 2097 | if( oldSuperClassNamespace == newSuperClassNamespace ) |
| 2098 | return; |
| 2099 | |
| 2100 | if( isProperlyAdded() ) |
| 2101 | unlinkNamespaces(); |
| 2102 | |
| 2103 | mSuperClassName = newSuperClassNamespace; |
| 2104 | |
| 2105 | if( isProperlyAdded() ) |
| 2106 | { |
| 2107 | linkNamespaces(); |
| 2108 | |
| 2109 | // Restore old setup if linkage failed. |
| 2110 | |
| 2111 | if( mSuperClassName != newSuperClassNamespace ) |
| 2112 | { |
| 2113 | mSuperClassName = oldSuperClassNamespace; |
| 2114 | linkNamespaces(); |
| 2115 | } |
| 2116 | } |
| 2117 | } |
| 2118 | |
| 2119 | //============================================================================= |
| 2120 | // Misc. |
no test coverage detected