diff options
Diffstat (limited to 'dbaccess/source/core/misc/ContainerMediator.cxx')
-rw-r--r-- | dbaccess/source/core/misc/ContainerMediator.cxx | 6 |
1 files changed, 3 insertions, 3 deletions
diff --git a/dbaccess/source/core/misc/ContainerMediator.cxx b/dbaccess/source/core/misc/ContainerMediator.cxx index 30c27963105b..c116928ce267 100644 --- a/dbaccess/source/core/misc/ContainerMediator.cxx +++ b/dbaccess/source/core/misc/ContainerMediator.cxx @@ -289,7 +289,7 @@ Reference< XPropertySet > OContainerMediator::impl_getSettingsForInitialization_ void OContainerMediator::notifyElementCreated(const ::rtl::OUString& _sName,const Reference<XPropertySet>& _xDest) { PropertyForwardList::iterator aFind = m_aForwardList.find(_sName); - if ( aFind == m_aForwardList.end() && m_xSettings.is() ) + if ( (aFind == m_aForwardList.end() || !aFind->second->getDefinition().is() )&& m_xSettings.is() ) { ::std::vector< ::rtl::OUString> aPropertyList; @@ -321,8 +321,8 @@ void OContainerMediator::notifyElementCreated(const ::rtl::OUString& _sName,cons } ::rtl::Reference< OPropertyForward > pForward( new OPropertyForward( _xDest, m_xSettings, _sName, aPropertyList ) ); - m_aForwardList.insert( PropertyForwardList::value_type( _sName, pForward ) ); - } + m_aForwardList[_sName] = pForward; + } // if ( aFind == m_aForwardList.end() && m_xSettings.is() ) } // ----------------------------------------------------------------------------- //........................................................................ |