diff options
Diffstat (limited to 'dbaccess/source/ui/app/subcomponentmanager.cxx')
-rw-r--r-- | dbaccess/source/ui/app/subcomponentmanager.cxx | 9 |
1 files changed, 6 insertions, 3 deletions
diff --git a/dbaccess/source/ui/app/subcomponentmanager.cxx b/dbaccess/source/ui/app/subcomponentmanager.cxx index 8ef4f77f20c7..a24fe29b5974 100644 --- a/dbaccess/source/ui/app/subcomponentmanager.cxx +++ b/dbaccess/source/ui/app/subcomponentmanager.cxx @@ -125,8 +125,9 @@ namespace dbaui xModel.set( _rxComponent, UNO_QUERY ); if ( xModel.is() ) { - xController.set( xModel->getCurrentController(), UNO_SET_THROW ); - xFrame.set( xController->getFrame(), UNO_SET_THROW ); + xController.set( xModel->getCurrentController() ); + if ( xController.is() ) + xFrame.set( xController->getFrame(), UNO_SET_THROW ); } else { @@ -468,13 +469,15 @@ namespace dbaui // put into map SubComponentAccessor aKey( _rName, _nComponentType, _eOpenMode ); SubComponentDescriptor aElement( _rxComponent ); + ENSURE_OR_THROW( aElement.xModel.is() || aElement.xController.is(), "illegal component" ); m_pData->m_aComponents.insert( SubComponentMap::value_type( aKey, aElement ) ) ; // add as listener - aElement.xController->addEventListener( this ); + if ( aElement.xController.is() ) + aElement.xController->addEventListener( this ); if ( aElement.xModel.is() ) aElement.xModel->addEventListener( this ); |