void GObject::registerProperty ( GObject* obj ) { assert ( obj ); obj->registerAll(); const CategoryPropertyMap& otherPropMap = obj->getPropertyMap(); CategoryPropertyMap::const_iterator ibegin = otherPropMap.begin(); CategoryPropertyMap::const_iterator iend = otherPropMap.end(); for ( ; ibegin != iend; ++ibegin ) { PropertyMap* myPropMap = 0; if ( mOption.Get ( ibegin->first, myPropMap ) ) { assert ( 0 ); } else { myPropMap = new PropertyMap; mOption.Insert ( ibegin->first, myPropMap ); } const PropertyMap* propMap = ibegin->second; for ( PropertyMap::const_iterator walk = propMap->begin(); walk != propMap->end(); ++walk ) { EPropertyVar* evar = new EPropertyVar; evar->mPtr = walk->second->mPtr; evar->mCategoryName = walk->second->mCategoryName; evar->mProp = walk->second->mProp; evar->mRefOther = true; myPropMap->Insert ( walk->first, evar ); } } //mOption.insert ( ibegin, iend ); }