Tag: cws_dev300_odbmacros3 User: fs Date: 2008-04-13 19:16:50+0000 Modified: dba/dbaccess/source/core/dataaccess/ModelImpl.cxx
Log: #i49133# impl_switchToStorage_throw: don't forward NULL storage to the library containers File Changes: Directory: /dba/dbaccess/source/core/dataaccess/ ================================================ File [changed]: ModelImpl.cxx Url: http://dba.openoffice.org/source/browse/dba/dbaccess/source/core/dataaccess/ModelImpl.cxx?r1=1.25&r2=1.25.6.1 Delta lines: +21 -21 --------------------- --- ModelImpl.cxx 2008-03-06 17:57:16+0000 1.25 +++ ModelImpl.cxx 2008-04-13 19:16:47+0000 1.25.6.1 @@ -4,9 +4,9 @@ * * $RCSfile: ModelImpl.cxx,v $ * - * $Revision: 1.25 $ + * $Revision: 1.25.6.1 $ * - * last change: $Author: kz $ $Date: 2008/03/06 17:57:16 $ + * last change: $Author: fs $ $Date: 2008/04/13 19:16:47 $ * * The Contents of this file are made available subject to * the terms of GNU Lesser General Public License Version 2.1. @@ -49,22 +49,9 @@ /** === begin UNO includes === **/ #include <com/sun/star/document/MacroExecMode.hpp> -#include <com/sun/star/document/XExporter.hpp> -#include <com/sun/star/document/XFilter.hpp> -#include <com/sun/star/document/XImporter.hpp> #include <com/sun/star/embed/XTransactedObject.hpp> #include <com/sun/star/embed/XTransactionBroadcaster.hpp> -#include <com/sun/star/io/XActiveDataSource.hpp> -#include <com/sun/star/lang/DisposedException.hpp> -#include <com/sun/star/reflection/XProxyFactory.hpp> #include <com/sun/star/sdb/BooleanComparisonMode.hpp> -#include <com/sun/star/sdbc/XDriverAccess.hpp> -#include <com/sun/star/sdbc/XDriverManager.hpp> -#include <com/sun/star/sdbcx/XTablesSupplier.hpp> -#include <com/sun/star/task/XStatusIndicator.hpp> -#include <com/sun/star/ucb/XInteractionSupplyAuthentication.hpp> -#include <com/sun/star/view/XSelectionSupplier.hpp> -#include <com/sun/star/xml/sax/XDocumentHandler.hpp> #include <com/sun/star/script/DocumentScriptLibraryContainer.hpp> #include <com/sun/star/script/DocumentDialogLibraryContainer.hpp> #include <com/sun/star/lang/WrappedTargetRuntimeException.hpp> @@ -105,7 +92,6 @@ using namespace ::com::sun::star::view; using namespace ::com::sun::star::task; using namespace ::com::sun::star::reflection; -using namespace ::com::sun::star::xml::sax; using namespace ::com::sun::star::script; using namespace ::cppu; using namespace ::osl; @@ -1181,6 +1167,22 @@ } // ----------------------------------------------------------------------------- +namespace +{ + static void lcl_rebaseScriptStorage_throw( const Reference< XStorageBasedLibraryContainer >& _rxContainer, + const Reference< XStorage >& _rxNewRootStorage ) + { + if ( _rxContainer.is() ) + { + if ( _rxNewRootStorage.is() ) + _rxContainer->setRootStorage( _rxNewRootStorage ); + else + ; // TODO: what to do here? dispose the container? + } + } +} + +// ----------------------------------------------------------------------------- Reference< XStorage > ODatabaseModelImpl::impl_switchToStorage_throw( const Reference< XStorage >& _rxNewRootStorage ) { // stop listening for modifications at the old storage @@ -1193,10 +1195,8 @@ lcl_modifyListening( m_xMutex->getMutex(), *this, m_xDocumentStorage.getTyped(), m_pStorageModifyListener, true ); // forward new storage to Basic and Dialog library containers - if ( m_xBasicLibraries.is() ) - m_xBasicLibraries->setRootStorage( m_xDocumentStorage.getTyped() ); - if ( m_xDialogLibraries.is() ) - m_xDialogLibraries->setRootStorage( m_xDocumentStorage.getTyped() ); + lcl_rebaseScriptStorage_throw( m_xBasicLibraries, m_xDocumentStorage.getTyped() ); + lcl_rebaseScriptStorage_throw( m_xDialogLibraries, m_xDocumentStorage.getTyped() ); m_bReadOnly = !lcl_storageIsWritable_nothrow( m_xDocumentStorage.getTyped() ); // TODO: our data source, if it exists, must broadcast the change of its ReadOnly property --------------------------------------------------------------------- To unsubscribe, e-mail: [EMAIL PROTECTED] For additional commands, e-mail: [EMAIL PROTECTED]
