basctl/source/basicide/baside2b.cxx | 2 - basctl/source/basicide/baside3.cxx | 2 - basctl/source/basicide/basides1.cxx | 4 +- basctl/source/basicide/macrodlg.cxx | 4 +- basctl/source/basicide/moduldl2.cxx | 28 +++++++------- basctl/source/basicide/moduldlg.cxx | 16 ++++---- basctl/source/basicide/scriptdocument.cxx | 14 +++---- basctl/source/inc/scriptdocument.hxx | 4 +- basic/source/basmgr/basicmanagerrepository.cxx | 22 +++++------ basic/source/basmgr/basmgr.cxx | 4 +- include/basic/basmgr.hxx | 14 +++---- include/sfx2/app.hxx | 6 +-- include/sfx2/objsh.hxx | 6 +-- sfx2/source/appl/appbas.cxx | 6 +-- sfx2/source/appl/appbaslib.cxx | 17 ++------ sfx2/source/doc/objstor.cxx | 50 ++++++++++++++----------- sfx2/source/doc/objxtor.cxx | 11 ++--- sfx2/source/doc/sfxbasemodel.cxx | 4 +- sfx2/source/inc/appbaslib.hxx | 2 - sfx2/source/inc/objshimp.hxx | 4 +- sw/source/filter/html/htmlbas.cxx | 6 +-- 21 files changed, 112 insertions(+), 114 deletions(-)
New commits: commit 216707c79eb9af6151c31d5cfeea6c82dbcf0bd9 Author: Caolán McNamara <caolan.mcnam...@collabora.com> AuthorDate: Wed Feb 5 10:22:46 2025 +0000 Commit: Miklos Vajna <vmik...@collabora.com> CommitDate: Thu Feb 6 08:43:58 2025 +0100 avoid uno casting cost, and simplify these are always XStorageBasedLibraryContainers, so transport around as that and can avoid casting and some expensive throw/catches Change-Id: I772efceea3bb4f38d70be0497345f5f81173494c Reviewed-on: https://gerrit.libreoffice.org/c/core/+/181150 Tested-by: Jenkins CollaboraOffice <jenkinscollaboraoff...@gmail.com> Reviewed-by: Miklos Vajna <vmik...@collabora.com> diff --git a/basctl/source/basicide/baside2b.cxx b/basctl/source/basicide/baside2b.cxx index 33cbbc4787ff..b99054c8338c 100644 --- a/basctl/source/basicide/baside2b.cxx +++ b/basctl/source/basicide/baside2b.cxx @@ -1091,7 +1091,7 @@ void EditorWindow::CreateEditEngine() // set readonly mode for readonly libraries ScriptDocument aDocument(rModulWindow.GetDocument()); OUString aOULibName(rModulWindow.GetLibName()); - Reference< script::XLibraryContainer2 > xModLibContainer( aDocument.getLibraryContainer( E_SCRIPTS ), UNO_QUERY ); + Reference< script::XLibraryContainer2 > xModLibContainer( aDocument.getLibraryContainer( E_SCRIPTS ) ); if (xModLibContainer.is() && xModLibContainer->hasByName(aOULibName) && xModLibContainer->isLibraryReadOnly(aOULibName)) diff --git a/basctl/source/basicide/baside3.cxx b/basctl/source/basicide/baside3.cxx index 4a6b1dfbfb5c..481922d2d8aa 100644 --- a/basctl/source/basicide/baside3.cxx +++ b/basctl/source/basicide/baside3.cxx @@ -95,7 +95,7 @@ DialogWindow::DialogWindow(DialogWindowLayout* pParent, ScriptDocument const& rD SetHelpId( HID_BASICIDE_DIALOGWINDOW ); // set readonly mode for readonly libraries - Reference< script::XLibraryContainer2 > xDlgLibContainer( GetDocument().getLibraryContainer( E_DIALOGS ), UNO_QUERY ); + Reference< script::XLibraryContainer2 > xDlgLibContainer( GetDocument().getLibraryContainer( E_DIALOGS ) ); if ( xDlgLibContainer.is() && xDlgLibContainer->hasByName( aLibName ) && xDlgLibContainer->isLibraryReadOnly( aLibName ) ) SetReadOnly(true); diff --git a/basctl/source/basicide/basides1.cxx b/basctl/source/basicide/basides1.cxx index 9ef9f75e3f40..22e0fcaa5ca3 100644 --- a/basctl/source/basicide/basides1.cxx +++ b/basctl/source/basicide/basides1.cxx @@ -1213,8 +1213,8 @@ void Shell::GetState(SfxItemSet &rSet) case SID_BASICIDE_NEWMODULE: case SID_BASICIDE_NEWDIALOG: { - Reference< script::XLibraryContainer2 > xModLibContainer( m_aCurDocument.getLibraryContainer( E_SCRIPTS ), UNO_QUERY ); - Reference< script::XLibraryContainer2 > xDlgLibContainer( m_aCurDocument.getLibraryContainer( E_DIALOGS ), UNO_QUERY ); + Reference< script::XLibraryContainer2 > xModLibContainer( m_aCurDocument.getLibraryContainer( E_SCRIPTS ) ); + Reference< script::XLibraryContainer2 > xDlgLibContainer( m_aCurDocument.getLibraryContainer( E_DIALOGS ) ); if ( ( xModLibContainer.is() && xModLibContainer->hasByName( m_aCurLibName ) && xModLibContainer->isLibraryReadOnly( m_aCurLibName ) ) || ( xDlgLibContainer.is() && xDlgLibContainer->hasByName( m_aCurLibName ) && xDlgLibContainer->isLibraryReadOnly( m_aCurLibName ) ) ) rSet.DisableItem(nWh); diff --git a/basctl/source/basicide/macrodlg.cxx b/basctl/source/basicide/macrodlg.cxx index 6b4afb79f772..850e93e458af 100644 --- a/basctl/source/basicide/macrodlg.cxx +++ b/basctl/source/basicide/macrodlg.cxx @@ -383,8 +383,8 @@ void MacroChooser::CheckButtons() { const ScriptDocument& aDocument( aDesc.GetDocument() ); const OUString& aOULibName( aDesc.GetLibName() ); - Reference< script::XLibraryContainer2 > xModLibContainer( aDocument.getLibraryContainer( E_SCRIPTS ), UNO_QUERY ); - Reference< script::XLibraryContainer2 > xDlgLibContainer( aDocument.getLibraryContainer( E_DIALOGS ), UNO_QUERY ); + Reference< script::XLibraryContainer2 > xModLibContainer( aDocument.getLibraryContainer( E_SCRIPTS ) ); + Reference< script::XLibraryContainer2 > xDlgLibContainer( aDocument.getLibraryContainer( E_DIALOGS ) ); if ( ( xModLibContainer.is() && xModLibContainer->hasByName( aOULibName ) && xModLibContainer->isLibraryReadOnly( aOULibName ) ) || ( xDlgLibContainer.is() && xDlgLibContainer->hasByName( aOULibName ) && xDlgLibContainer->isLibraryReadOnly( aOULibName ) ) ) { diff --git a/basctl/source/basicide/moduldl2.cxx b/basctl/source/basicide/moduldl2.cxx index 1221b0094218..7d3be6bbb39e 100644 --- a/basctl/source/basicide/moduldl2.cxx +++ b/basctl/source/basicide/moduldl2.cxx @@ -255,8 +255,8 @@ IMPL_LINK(LibPage, EditingEntryHdl, const weld::TreeIter&, rIter, bool) } // check, if library is readonly - Reference< script::XLibraryContainer2 > xModLibContainer( m_aCurDocument.getLibraryContainer( E_SCRIPTS ), UNO_QUERY ); - Reference< script::XLibraryContainer2 > xDlgLibContainer( m_aCurDocument.getLibraryContainer( E_DIALOGS ), UNO_QUERY ); + Reference< script::XLibraryContainer2 > xModLibContainer( m_aCurDocument.getLibraryContainer( E_SCRIPTS ) ); + Reference< script::XLibraryContainer2 > xDlgLibContainer( m_aCurDocument.getLibraryContainer( E_DIALOGS ) ); if ( ( xModLibContainer.is() && xModLibContainer->hasByName( aLibName ) && xModLibContainer->isLibraryReadOnly( aLibName ) && !xModLibContainer->isLibraryLink( aLibName ) ) || ( xDlgLibContainer.is() && xDlgLibContainer->hasByName( aLibName ) && xDlgLibContainer->isLibraryReadOnly( aLibName ) && !xDlgLibContainer->isLibraryLink( aLibName ) ) ) { @@ -298,11 +298,11 @@ IMPL_LINK(LibPage, EditedEntryHdl, const IterString&, rIterString, bool) { try { - Reference< script::XLibraryContainer2 > xModLibContainer( m_aCurDocument.getLibraryContainer( E_SCRIPTS ), UNO_QUERY ); + Reference< script::XLibraryContainer2 > xModLibContainer( m_aCurDocument.getLibraryContainer( E_SCRIPTS ) ); if ( xModLibContainer.is() ) xModLibContainer->renameLibrary( aOldName, sNewName ); - Reference< script::XLibraryContainer2 > xDlgLibContainer( m_aCurDocument.getLibraryContainer( E_DIALOGS ), UNO_QUERY ); + Reference< script::XLibraryContainer2 > xDlgLibContainer( m_aCurDocument.getLibraryContainer( E_DIALOGS ) ); if ( xDlgLibContainer.is() ) xDlgLibContainer->renameLibrary( aOldName, sNewName ); @@ -359,8 +359,8 @@ void LibPage::CheckButtons() return; OUString aLibName = m_xLibBox->get_text(*xCur, 0); - Reference< script::XLibraryContainer2 > xModLibContainer( m_aCurDocument.getLibraryContainer( E_SCRIPTS ), UNO_QUERY ); - Reference< script::XLibraryContainer2 > xDlgLibContainer( m_aCurDocument.getLibraryContainer( E_DIALOGS ), UNO_QUERY ); + Reference< script::XLibraryContainer2 > xModLibContainer( m_aCurDocument.getLibraryContainer( E_SCRIPTS ) ); + Reference< script::XLibraryContainer2 > xDlgLibContainer( m_aCurDocument.getLibraryContainer( E_DIALOGS ) ); if ( m_eCurLocation == LIBRARY_LOCATION_SHARE ) { @@ -684,8 +684,8 @@ void LibPage::InsertLib() if (rView.get_toggle(nLib) == TRISTATE_TRUE) { OUString aLibName(rView.get_text(nLib)); - Reference< script::XLibraryContainer2 > xModLibContainer( m_aCurDocument.getLibraryContainer( E_SCRIPTS ), UNO_QUERY ); - Reference< script::XLibraryContainer2 > xDlgLibContainer( m_aCurDocument.getLibraryContainer( E_DIALOGS ), UNO_QUERY ); + Reference< script::XLibraryContainer2 > xModLibContainer( m_aCurDocument.getLibraryContainer( E_SCRIPTS ) ); + Reference< script::XLibraryContainer2 > xDlgLibContainer( m_aCurDocument.getLibraryContainer( E_DIALOGS ) ); // check, if the library is already existing if ( ( xModLibContainer.is() && xModLibContainer->hasByName( aLibName ) ) || @@ -911,7 +911,7 @@ void LibPage::Export() OUString aLibName(m_xLibBox->get_text(*xCurEntry, 0)); // Password verification - Reference< script::XLibraryContainer2 > xModLibContainer( m_aCurDocument.getLibraryContainer( E_SCRIPTS ), UNO_QUERY ); + Reference< script::XLibraryContainer2 > xModLibContainer( m_aCurDocument.getLibraryContainer( E_SCRIPTS ) ); if ( xModLibContainer.is() && xModLibContainer->hasByName( aLibName ) && !xModLibContainer->isLibraryLoaded( aLibName ) ) { @@ -1137,8 +1137,8 @@ void LibPage::DeleteCurrent() // check, if library is link bool bIsLibraryLink = false; - Reference< script::XLibraryContainer2 > xModLibContainer( m_aCurDocument.getLibraryContainer( E_SCRIPTS ), UNO_QUERY ); - Reference< script::XLibraryContainer2 > xDlgLibContainer( m_aCurDocument.getLibraryContainer( E_DIALOGS ), UNO_QUERY ); + Reference< script::XLibraryContainer2 > xModLibContainer( m_aCurDocument.getLibraryContainer( E_SCRIPTS ) ); + Reference< script::XLibraryContainer2 > xDlgLibContainer( m_aCurDocument.getLibraryContainer( E_DIALOGS ) ); if ( ( xModLibContainer.is() && xModLibContainer->hasByName( aLibName ) && xModLibContainer->isLibraryLink( aLibName ) ) || ( xDlgLibContainer.is() && xDlgLibContainer->hasByName( aLibName ) && xDlgLibContainer->isLibraryLink( aLibName ) ) ) { @@ -1230,7 +1230,7 @@ void LibPage::ImpInsertLibEntry( const OUString& rLibName, int nPos ) { // check, if library is password protected bool bProtected = false; - Reference< script::XLibraryContainer2 > xModLibContainer( m_aCurDocument.getLibraryContainer( E_SCRIPTS ), UNO_QUERY ); + Reference< script::XLibraryContainer2 > xModLibContainer( m_aCurDocument.getLibraryContainer( E_SCRIPTS ) ); if ( xModLibContainer.is() && xModLibContainer->hasByName( rLibName ) ) { Reference< script::XLibraryContainerPassword > xPasswd( xModLibContainer, UNO_QUERY ); @@ -1324,9 +1324,9 @@ void createLibImpl(weld::Window* pWin, const ScriptDocument& rDocument, // cannot be renamed/moved since the SfxLibraryContainer::renameLibrary // moves the folders/files on the file system Reference<script::XLibraryContainer2> xModLibContainer( - rDocument.getLibraryContainer(E_SCRIPTS), UNO_QUERY); + rDocument.getLibraryContainer(E_SCRIPTS)); Reference<script::XLibraryContainer2> xDlgLibContainer( - rDocument.getLibraryContainer(E_DIALOGS), UNO_QUERY); + rDocument.getLibraryContainer(E_DIALOGS)); Reference<script::XPersistentLibraryContainer> xModPersLibContainer(xModLibContainer, UNO_QUERY); if (xModPersLibContainer.is()) diff --git a/basctl/source/basicide/moduldlg.cxx b/basctl/source/basicide/moduldlg.cxx index 4b67e320b5ac..b1c7580d9dad 100644 --- a/basctl/source/basicide/moduldlg.cxx +++ b/basctl/source/basicide/moduldlg.cxx @@ -64,8 +64,8 @@ IMPL_LINK(ObjectPage, EditingEntryHdl, const weld::TreeIter&, rEntry, bool) EntryDescriptor aDesc = m_xBasicBox->GetEntryDescriptor(&rEntry); const ScriptDocument& aDocument( aDesc.GetDocument() ); const OUString& aLibName( aDesc.GetLibName() ); - Reference< script::XLibraryContainer2 > xModLibContainer( aDocument.getLibraryContainer( E_SCRIPTS ), UNO_QUERY ); - Reference< script::XLibraryContainer2 > xDlgLibContainer( aDocument.getLibraryContainer( E_DIALOGS ), UNO_QUERY ); + Reference< script::XLibraryContainer2 > xModLibContainer( aDocument.getLibraryContainer( E_SCRIPTS ) ); + Reference< script::XLibraryContainer2 > xDlgLibContainer( aDocument.getLibraryContainer( E_DIALOGS ) ); if ( !( ( xModLibContainer.is() && xModLibContainer->hasByName( aLibName ) && xModLibContainer->isLibraryReadOnly( aLibName ) ) || ( xDlgLibContainer.is() && xDlgLibContainer->hasByName( aLibName ) && xDlgLibContainer->isLibraryReadOnly( aLibName ) ) ) ) { @@ -284,8 +284,8 @@ private: const ScriptDocument& aDocument( aDesc.GetDocument() ); const OUString& aLibName( aDesc.GetLibName() ); // allow MOVE mode only for libraries, which are not readonly - Reference< script::XLibraryContainer2 > xModLibContainer( aDocument.getLibraryContainer( E_SCRIPTS ), UNO_QUERY ); - Reference< script::XLibraryContainer2 > xDlgLibContainer( aDocument.getLibraryContainer( E_DIALOGS ), UNO_QUERY ); + Reference< script::XLibraryContainer2 > xModLibContainer( aDocument.getLibraryContainer( E_SCRIPTS ) ); + Reference< script::XLibraryContainer2 > xDlgLibContainer( aDocument.getLibraryContainer( E_DIALOGS ) ); if ( !( ( xModLibContainer.is() && xModLibContainer->hasByName( aLibName ) && xModLibContainer->isLibraryReadOnly( aLibName ) ) || ( xDlgLibContainer.is() && xDlgLibContainer->hasByName( aLibName ) && xDlgLibContainer->isLibraryReadOnly( aLibName ) ) ) ) { @@ -356,7 +356,7 @@ private: const OUString& aDestLibName = aDestDesc.GetLibName(); // check if module library is not loaded, readonly or password protected - Reference< script::XLibraryContainer2 > xModLibContainer( rDestDoc.getLibraryContainer( E_SCRIPTS ), UNO_QUERY ); + Reference< script::XLibraryContainer2 > xModLibContainer( rDestDoc.getLibraryContainer( E_SCRIPTS ) ); if ( xModLibContainer.is() && xModLibContainer->hasByName( aDestLibName ) ) { if ( !xModLibContainer->isLibraryLoaded( aDestLibName ) ) @@ -371,7 +371,7 @@ private: } // check if dialog library is not loaded or readonly - Reference< script::XLibraryContainer2 > xDlgLibContainer( rDestDoc.getLibraryContainer( E_DIALOGS ), UNO_QUERY ); + Reference< script::XLibraryContainer2 > xDlgLibContainer( rDestDoc.getLibraryContainer( E_DIALOGS ) ); if ( xDlgLibContainer.is() && xDlgLibContainer->hasByName( aDestLibName ) ) { if ( !xDlgLibContainer->isLibraryLoaded( aDestLibName ) ) @@ -648,8 +648,8 @@ void ObjectPage::CheckButtons() bool bReadOnly = false; if ( nDepth > 0 ) { - Reference< script::XLibraryContainer2 > xModLibContainer( aDocument.getLibraryContainer( E_SCRIPTS ), UNO_QUERY ); - Reference< script::XLibraryContainer2 > xDlgLibContainer( aDocument.getLibraryContainer( E_DIALOGS ), UNO_QUERY ); + Reference< script::XLibraryContainer2 > xModLibContainer( aDocument.getLibraryContainer( E_SCRIPTS ) ); + Reference< script::XLibraryContainer2 > xDlgLibContainer( aDocument.getLibraryContainer( E_DIALOGS ) ); if ( ( xModLibContainer.is() && xModLibContainer->hasByName( aLibName ) && xModLibContainer->isLibraryReadOnly( aLibName ) ) || ( xDlgLibContainer.is() && xDlgLibContainer->hasByName( aLibName ) && xDlgLibContainer->isLibraryReadOnly( aLibName ) ) ) { diff --git a/basctl/source/basicide/scriptdocument.cxx b/basctl/source/basicide/scriptdocument.cxx index c435d7a57da7..bf2260f3c83a 100644 --- a/basctl/source/basicide/scriptdocument.cxx +++ b/basctl/source/basicide/scriptdocument.cxx @@ -75,6 +75,7 @@ namespace basctl using ::com::sun::star::frame::XModel; using ::com::sun::star::beans::XPropertySet; using ::com::sun::star::script::XLibraryContainer; + using ::com::sun::star::script::XStorageBasedLibraryContainer; using ::com::sun::star::uno::UNO_QUERY_THROW; using ::com::sun::star::uno::UNO_SET_THROW; using ::com::sun::star::uno::Exception; @@ -206,7 +207,7 @@ namespace basctl getDocumentRef() const { return m_xDocument; } /// returns a library container belonging to the document - Reference< XLibraryContainer > + Reference< XStorageBasedLibraryContainer > getLibraryContainer( LibraryContainerType _eType ) const; /// determines whether a given library is part of the shared installation @@ -332,23 +333,22 @@ namespace basctl return m_bValid; } - Reference< XLibraryContainer > ScriptDocument::Impl::getLibraryContainer( LibraryContainerType _eType ) const + Reference<XStorageBasedLibraryContainer> ScriptDocument::Impl::getLibraryContainer( LibraryContainerType _eType ) const { OSL_ENSURE( isValid(), "ScriptDocument::Impl::getLibraryContainer: invalid!" ); - Reference< XLibraryContainer > xContainer; + Reference<XStorageBasedLibraryContainer> xContainer; if ( !isValid() ) return xContainer; try { if ( isApplication() ) - xContainer.set( _eType == E_SCRIPTS ? SfxGetpApp()->GetBasicContainer() : SfxGetpApp()->GetDialogContainer(), UNO_QUERY_THROW ); + xContainer.set(_eType == E_SCRIPTS ? SfxGetpApp()->GetBasicContainer() : SfxGetpApp()->GetDialogContainer()); else { xContainer.set( - _eType == E_SCRIPTS ? m_xScriptAccess->getBasicLibraries() : m_xScriptAccess->getDialogLibraries(), - UNO_QUERY_THROW ); + _eType == E_SCRIPTS ? m_xScriptAccess->getBasicLibraries() : m_xScriptAccess->getDialogLibraries()); } } catch( const Exception& ) @@ -1160,7 +1160,7 @@ namespace basctl } - Reference< XLibraryContainer > ScriptDocument::getLibraryContainer( LibraryContainerType _eType ) const + Reference< XStorageBasedLibraryContainer > ScriptDocument::getLibraryContainer( LibraryContainerType _eType ) const { return m_pImpl->getLibraryContainer( _eType ); } diff --git a/basctl/source/inc/scriptdocument.hxx b/basctl/source/inc/scriptdocument.hxx index da7f2b50d307..7fd5b9bcb7a8 100644 --- a/basctl/source/inc/scriptdocument.hxx +++ b/basctl/source/inc/scriptdocument.hxx @@ -19,7 +19,7 @@ #pragma once -#include <com/sun/star/script/XLibraryContainer.hpp> +#include <com/sun/star/script/XStorageBasedLibraryContainer.hpp> #include <com/sun/star/frame/XModel.hpp> #include <com/sun/star/task/XStatusIndicator.hpp> #include <com/sun/star/io/XInputStreamProvider.hpp> @@ -209,7 +209,7 @@ namespace basctl If the document is not valid, <NULL/> is returned. */ - css::uno::Reference< css::script::XLibraryContainer > + css::uno::Reference< css::script::XStorageBasedLibraryContainer > getLibraryContainer( LibraryContainerType _eType ) const; /** determines whether there exists a library of the given type, with the given name diff --git a/basic/source/basmgr/basicmanagerrepository.cxx b/basic/source/basmgr/basicmanagerrepository.cxx index bf0c6ee53a46..d942927ebd27 100644 --- a/basic/source/basmgr/basicmanagerrepository.cxx +++ b/basic/source/basmgr/basicmanagerrepository.cxx @@ -55,7 +55,7 @@ namespace basic using ::com::sun::star::uno::XInterface; using ::com::sun::star::uno::UNO_QUERY; using ::com::sun::star::embed::XStorage; - using ::com::sun::star::script::XPersistentLibraryContainer; + using ::com::sun::star::script::XStorageBasedLibraryContainer; using ::com::sun::star::uno::UNO_QUERY_THROW; using ::com::sun::star::uno::Exception; using ::com::sun::star::document::XStorageBasedDocument; @@ -168,15 +168,15 @@ namespace basic */ static bool impl_getDocumentLibraryContainers_nothrow( const Reference< XModel >& _rxDocument, - Reference< XPersistentLibraryContainer >& _out_rxBasicLibraries, - Reference< XPersistentLibraryContainer >& _out_rxDialogLibraries + Reference<XStorageBasedLibraryContainer>& _out_rxBasicLibraries, + Reference<XStorageBasedLibraryContainer>& _out_rxDialogLibraries ); /** initializes the given library containers, which belong to a document */ static void impl_initDocLibraryContainers_nothrow( - const Reference< XPersistentLibraryContainer >& _rxBasicLibraries, - const Reference< XPersistentLibraryContainer >& _rxDialogLibraries + const Reference<XStorageBasedLibraryContainer>& _rxBasicLibraries, + const Reference<XStorageBasedLibraryContainer>& _rxDialogLibraries ); // OEventListenerAdapter overridables @@ -374,7 +374,7 @@ namespace basic return m_aStore.find(xNormalized) != m_aStore.end(); } - void ImplRepository::impl_initDocLibraryContainers_nothrow( const Reference< XPersistentLibraryContainer >& _rxBasicLibraries, const Reference< XPersistentLibraryContainer >& _rxDialogLibraries ) + void ImplRepository::impl_initDocLibraryContainers_nothrow( const Reference<XStorageBasedLibraryContainer>& _rxBasicLibraries, const Reference<XStorageBasedLibraryContainer>& _rxDialogLibraries ) { OSL_PRECOND( _rxBasicLibraries.is() && _rxDialogLibraries.is(), "ImplRepository::impl_initDocLibraryContainers_nothrow: illegal library containers, this will crash!" ); @@ -413,8 +413,8 @@ namespace basic // the document is not able to provide the storage it is based on. return false; } - Reference< XPersistentLibraryContainer > xBasicLibs; - Reference< XPersistentLibraryContainer > xDialogLibs; + Reference<XStorageBasedLibraryContainer> xBasicLibs; + Reference<XStorageBasedLibraryContainer> xDialogLibs; if ( !impl_getDocumentLibraryContainers_nothrow( _rxDocumentModel, xBasicLibs, xDialogLibs ) ) { m_aStore.erase(location); @@ -519,15 +519,15 @@ namespace basic bool ImplRepository::impl_getDocumentLibraryContainers_nothrow( const Reference< XModel >& _rxDocument, - Reference< XPersistentLibraryContainer >& _out_rxBasicLibraries, Reference< XPersistentLibraryContainer >& _out_rxDialogLibraries ) + Reference<XStorageBasedLibraryContainer>& _out_rxBasicLibraries, Reference<XStorageBasedLibraryContainer>& _out_rxDialogLibraries ) { _out_rxBasicLibraries.clear(); _out_rxDialogLibraries.clear(); try { Reference< XEmbeddedScripts > xScripts( _rxDocument, UNO_QUERY_THROW ); - _out_rxBasicLibraries.set( xScripts->getBasicLibraries(), UNO_QUERY_THROW ); - _out_rxDialogLibraries.set( xScripts->getDialogLibraries(), UNO_QUERY_THROW ); + _out_rxBasicLibraries.set( xScripts->getBasicLibraries() ); + _out_rxDialogLibraries.set( xScripts->getDialogLibraries() ); } catch( const Exception& ) { diff --git a/basic/source/basmgr/basmgr.cxx b/basic/source/basmgr/basmgr.cxx index c619bbf1fb6a..df7488b00f35 100644 --- a/basic/source/basmgr/basmgr.cxx +++ b/basic/source/basmgr/basmgr.cxx @@ -513,12 +513,12 @@ static void copyToLibraryContainer( StarBASIC* pBasic, const LibraryContainerInf } } -const uno::Reference< script::XPersistentLibraryContainer >& BasicManager::GetDialogLibraryContainer() const +const uno::Reference< script::XStorageBasedLibraryContainer >& BasicManager::GetDialogLibraryContainer() const { return maContainerInfo.mxDialogCont; } -const uno::Reference< script::XPersistentLibraryContainer >& BasicManager::GetScriptLibraryContainer() const +const uno::Reference< script::XStorageBasedLibraryContainer >& BasicManager::GetScriptLibraryContainer() const { return maContainerInfo.mxScriptCont; } diff --git a/include/basic/basmgr.hxx b/include/basic/basmgr.hxx index 1ef4f77cf16e..82991d122c0e 100644 --- a/include/basic/basmgr.hxx +++ b/include/basic/basmgr.hxx @@ -30,7 +30,7 @@ namespace basic { class SfxScriptLibraryContainer; } namespace com::sun::star::script { class XLibraryContainer; } -namespace com::sun::star::script { class XPersistentLibraryContainer; } +namespace com::sun::star::script { class XStorageBasedLibraryContainer; } namespace com::sun::star::script { class XStarBasicAccess; } class BasicManager; @@ -71,8 +71,8 @@ namespace basic { class ImplRepository; } struct LibraryContainerInfo { - css::uno::Reference< css::script::XPersistentLibraryContainer > mxScriptCont; - css::uno::Reference< css::script::XPersistentLibraryContainer > mxDialogCont; + css::uno::Reference< css::script::XStorageBasedLibraryContainer > mxScriptCont; + css::uno::Reference< css::script::XStorageBasedLibraryContainer > mxDialogCont; basic::SfxScriptLibraryContainer* mpOldBasicPassword; LibraryContainerInfo() @@ -82,8 +82,8 @@ struct LibraryContainerInfo LibraryContainerInfo ( - css::uno::Reference< css::script::XPersistentLibraryContainer > xScriptCont, - css::uno::Reference< css::script::XPersistentLibraryContainer > xDialogCont, + css::uno::Reference< css::script::XStorageBasedLibraryContainer > xScriptCont, + css::uno::Reference< css::script::XStorageBasedLibraryContainer > xDialogCont, basic::SfxScriptLibraryContainer* pOldBasicPassword ) : mxScriptCont(std::move( xScriptCont )) @@ -149,9 +149,9 @@ public: */ void SetLibraryContainerInfo( const LibraryContainerInfo& rInfo ); - const css::uno::Reference< css::script::XPersistentLibraryContainer >& + const css::uno::Reference< css::script::XStorageBasedLibraryContainer >& GetDialogLibraryContainer() const; - const css::uno::Reference< css::script::XPersistentLibraryContainer >& + const css::uno::Reference< css::script::XStorageBasedLibraryContainer >& GetScriptLibraryContainer() const; bool LoadLib( sal_uInt16 nLib ); diff --git a/include/sfx2/app.hxx b/include/sfx2/app.hxx index 96bce367fd75..276ef22f1b6b 100644 --- a/include/sfx2/app.hxx +++ b/include/sfx2/app.hxx @@ -33,7 +33,7 @@ #include <sfx2/shell.hxx> namespace com::sun::star::frame { class XFrame; } -namespace com::sun::star::script { class XLibraryContainer; } +namespace com::sun::star::script { class XStorageBasedLibraryContainer; } namespace weld { class Window; } @@ -148,8 +148,8 @@ public: static ErrCode CallAppBasic( const OUString& i_macroName ) { return CallBasic( i_macroName, SfxApplication::GetBasicManager(), nullptr, nullptr ); } static BasicManager* GetBasicManager(); - css::script::XLibraryContainer * GetDialogContainer(); - css::script::XLibraryContainer * GetBasicContainer(); + css::script::XStorageBasedLibraryContainer* GetDialogContainer(); + css::script::XStorageBasedLibraryContainer* GetBasicContainer(); static StarBASIC* GetBasic(); void SaveBasicAndDialogContainer() const; diff --git a/include/sfx2/objsh.hxx b/include/sfx2/objsh.hxx index 797fcb213f1c..0fbe13c0ff2f 100644 --- a/include/sfx2/objsh.hxx +++ b/include/sfx2/objsh.hxx @@ -102,7 +102,7 @@ namespace com::sun::star::embed { class XStorage; } namespace com::sun::star::frame { class XModel; } namespace com::sun::star::graphic { class XGraphic; } namespace com::sun::star::io { class XStream; } -namespace com::sun::star::script { class XLibraryContainer; } +namespace com::sun::star::script { class XStorageBasedLibraryContainer ; } namespace com::sun::star::security { class XCertificate; } namespace com::sun::star::security { class XDocumentDigitalSignatures; } namespace com::sun::star::security { struct DocumentSignatureInformation; } @@ -570,9 +570,9 @@ public: sal_uInt16 GetAutoStyleFilterIndex() const; bool HasBasic() const; BasicManager* GetBasicManager() const; - css::uno::Reference< css::script::XLibraryContainer > + css::uno::Reference< css::script::XStorageBasedLibraryContainer > GetBasicContainer(); - css::uno::Reference< css::script::XLibraryContainer > + css::uno::Reference< css::script::XStorageBasedLibraryContainer > GetDialogContainer(); StarBASIC* GetBasic() const; diff --git a/sfx2/source/appl/appbas.cxx b/sfx2/source/appl/appbas.cxx index 1cedcd978540..c022338cca98 100644 --- a/sfx2/source/appl/appbas.cxx +++ b/sfx2/source/appl/appbas.cxx @@ -23,7 +23,7 @@ #include <cassert> -#include <com/sun/star/script/XLibraryContainer.hpp> +#include <com/sun/star/script/XStorageBasedLibraryContainer.hpp> #include <officecfg/Office/Common.hxx> #include <svl/intitem.hxx> #include <svl/eitem.hxx> @@ -71,7 +71,7 @@ BasicManager* SfxApplication::GetBasicManager() #endif } -XLibraryContainer * SfxApplication::GetDialogContainer() +XStorageBasedLibraryContainer* SfxApplication::GetDialogContainer() { #if !HAVE_FEATURE_SCRIPTING return nullptr; @@ -85,7 +85,7 @@ XLibraryContainer * SfxApplication::GetDialogContainer() } -XLibraryContainer * SfxApplication::GetBasicContainer() +XStorageBasedLibraryContainer* SfxApplication::GetBasicContainer() { #if !HAVE_FEATURE_SCRIPTING return nullptr; diff --git a/sfx2/source/appl/appbaslib.cxx b/sfx2/source/appl/appbaslib.cxx index bfeafa1b1b60..3926eee36f84 100644 --- a/sfx2/source/appl/appbaslib.cxx +++ b/sfx2/source/appl/appbaslib.cxx @@ -68,15 +68,8 @@ void SfxBasicManagerHolder::reset( BasicManager* _pBasicManager ) return; StartListening(*mpBasicManager); - try - { - mxBasicContainer.set( mpBasicManager->GetScriptLibraryContainer(), UNO_QUERY_THROW ); - mxDialogContainer.set( mpBasicManager->GetDialogLibraryContainer(), UNO_QUERY_THROW ); - } - catch( const Exception& ) - { - DBG_UNHANDLED_EXCEPTION("sfx.appl"); - } + mxBasicContainer.set( mpBasicManager->GetScriptLibraryContainer() ); + mxDialogContainer.set( mpBasicManager->GetDialogLibraryContainer() ); #endif } @@ -131,7 +124,7 @@ void SfxBasicManagerHolder::storeLibrariesToStorage( const Reference< XStorage > #endif } -XLibraryContainer * SfxBasicManagerHolder::getLibraryContainer( ContainerType _eType ) +XStorageBasedLibraryContainer* SfxBasicManagerHolder::getLibraryContainer( ContainerType _eType ) { OSL_PRECOND( isValid(), "SfxBasicManagerHolder::getLibraryContainer: not initialized!" ); @@ -168,7 +161,7 @@ com_sun_star_comp_sfx2_ApplicationDialogLibraryContainer_get_implementation( css::uno::Sequence<css::uno::Any> const &) { SfxApplication::GetBasicManager(); - css::uno::XInterface* pRet = SfxGetpApp()->GetDialogContainer(); + css::uno::XInterface* pRet = static_cast<css::script::XLibraryContainer*>(SfxGetpApp()->GetDialogContainer()); pRet->acquire(); return pRet; } @@ -180,7 +173,7 @@ com_sun_star_comp_sfx2_ApplicationScriptLibraryContainer_get_implementation( css::uno::Sequence<css::uno::Any> const &) { SfxApplication::GetBasicManager(); - css::uno::XInterface* pRet = SfxGetpApp()->GetBasicContainer(); + css::uno::XInterface* pRet = static_cast<css::script::XLibraryContainer*>(SfxGetpApp()->GetBasicContainer()); pRet->acquire(); return pRet; } diff --git a/sfx2/source/doc/objstor.cxx b/sfx2/source/doc/objstor.cxx index 489221257dc0..d181461e8924 100644 --- a/sfx2/source/doc/objstor.cxx +++ b/sfx2/source/doc/objstor.cxx @@ -1976,21 +1976,24 @@ bool SfxObjectShell::ConnectTmpStorage_Impl( { pImpl->aBasicManager.setStorage( xTmpStorage ); - // Get rid of this workaround after issue i113914 is fixed - try + if (pImpl->xBasicLibraries) { - uno::Reference< script::XStorageBasedLibraryContainer > xBasicLibraries( pImpl->xBasicLibraries, uno::UNO_QUERY_THROW ); - xBasicLibraries->setRootStorage( xTmpStorage ); + try + { + pImpl->xBasicLibraries->setRootStorage( xTmpStorage ); + } + catch( uno::Exception& ) + {} } - catch( uno::Exception& ) - {} - try + if (pImpl->xDialogLibraries) { - uno::Reference< script::XStorageBasedLibraryContainer > xDialogLibraries( pImpl->xDialogLibraries, uno::UNO_QUERY_THROW ); - xDialogLibraries->setRootStorage( xTmpStorage ); + try + { + pImpl->xDialogLibraries->setRootStorage( xTmpStorage ); + } + catch( uno::Exception& ) + {} } - catch( uno::Exception& ) - {} } } catch( uno::Exception& ) @@ -2140,21 +2143,24 @@ bool SfxObjectShell::DoSaveCompleted( SfxMedium* pNewMed, bool bRegisterRecent ) // Set storage in document library containers pImpl->aBasicManager.setStorage( xStorage ); - // Get rid of this workaround after issue i113914 is fixed - try + if (pImpl->xBasicLibraries) { - uno::Reference< script::XStorageBasedLibraryContainer > xBasicLibraries( pImpl->xBasicLibraries, uno::UNO_QUERY_THROW ); - xBasicLibraries->setRootStorage( xStorage ); + try + { + pImpl->xBasicLibraries->setRootStorage( xStorage ); + } + catch( uno::Exception& ) + {} } - catch( uno::Exception& ) - {} - try + if (pImpl->xDialogLibraries) { - uno::Reference< script::XStorageBasedLibraryContainer > xDialogLibraries( pImpl->xDialogLibraries, uno::UNO_QUERY_THROW ); - xDialogLibraries->setRootStorage( xStorage ); + try + { + pImpl->xDialogLibraries->setRootStorage( xStorage ); + } + catch( uno::Exception& ) + {} } - catch( uno::Exception& ) - {} } else { diff --git a/sfx2/source/doc/objxtor.cxx b/sfx2/source/doc/objxtor.cxx index 434c0f17992d..9bd6adef3734 100644 --- a/sfx2/source/doc/objxtor.cxx +++ b/sfx2/source/doc/objxtor.cxx @@ -685,8 +685,8 @@ bool SfxObjectShell::HasBasic() const #if HAVE_FEATURE_SCRIPTING namespace { - const Reference< XLibraryContainer >& - lcl_getOrCreateLibraryContainer( bool _bScript, Reference< XLibraryContainer >& _rxContainer, + const Reference< XStorageBasedLibraryContainer >& + lcl_getOrCreateLibraryContainer( bool _bScript, Reference< XStorageBasedLibraryContainer >& _rxContainer, const Reference< XModel >& _rxDocument ) { if ( !_rxContainer.is() ) @@ -700,8 +700,7 @@ namespace ? DocumentScriptLibraryContainer::create( xContext, xStorageDoc ) : DocumentDialogLibraryContainer::create( - xContext, xStorageDoc ) - , UNO_QUERY_THROW ); + xContext, xStorageDoc )); } catch (const Exception&) { @@ -713,7 +712,7 @@ namespace } #endif -Reference< XLibraryContainer > SfxObjectShell::GetDialogContainer() +Reference< XStorageBasedLibraryContainer > SfxObjectShell::GetDialogContainer() { #if HAVE_FEATURE_SCRIPTING try @@ -735,7 +734,7 @@ Reference< XLibraryContainer > SfxObjectShell::GetDialogContainer() return SfxGetpApp()->GetDialogContainer(); } -Reference< XLibraryContainer > SfxObjectShell::GetBasicContainer() +Reference< XStorageBasedLibraryContainer > SfxObjectShell::GetBasicContainer() { #if HAVE_FEATURE_SCRIPTING if (!utl::ConfigManager::IsFuzzing()) diff --git a/sfx2/source/doc/sfxbasemodel.cxx b/sfx2/source/doc/sfxbasemodel.cxx index 1b1bdff80c12..d29d5bed4d87 100644 --- a/sfx2/source/doc/sfxbasemodel.cxx +++ b/sfx2/source/doc/sfxbasemodel.cxx @@ -2435,7 +2435,7 @@ Reference< script::XStorageBasedLibraryContainer > SAL_CALL SfxBaseModel::getBas Reference< script::XStorageBasedLibraryContainer > xBasicLibraries; if ( m_pData->m_pObjectShell.is() ) - xBasicLibraries.set(m_pData->m_pObjectShell->GetBasicContainer(), UNO_QUERY); + xBasicLibraries.set(m_pData->m_pObjectShell->GetBasicContainer()); return xBasicLibraries; } @@ -2445,7 +2445,7 @@ Reference< script::XStorageBasedLibraryContainer > SAL_CALL SfxBaseModel::getDia Reference< script::XStorageBasedLibraryContainer > xDialogLibraries; if ( m_pData->m_pObjectShell.is() ) - xDialogLibraries.set(m_pData->m_pObjectShell->GetDialogContainer(), UNO_QUERY); + xDialogLibraries.set(m_pData->m_pObjectShell->GetDialogContainer()); return xDialogLibraries; } diff --git a/sfx2/source/inc/appbaslib.hxx b/sfx2/source/inc/appbaslib.hxx index 04f419996008..34dc04438bef 100644 --- a/sfx2/source/inc/appbaslib.hxx +++ b/sfx2/source/inc/appbaslib.hxx @@ -62,7 +62,7 @@ public: */ void reset( BasicManager* _pBasicManager ); - css::script::XLibraryContainer * + css::script::XStorageBasedLibraryContainer* getLibraryContainer( ContainerType _eType ); /** calls the storeLibraries at both our script and basic library container diff --git a/sfx2/source/inc/objshimp.hxx b/sfx2/source/inc/objshimp.hxx index 88b715a124c3..5224b419053d 100644 --- a/sfx2/source/inc/objshimp.hxx +++ b/sfx2/source/inc/objshimp.hxx @@ -54,9 +54,9 @@ struct SfxObjectShell_Impl final : public ::sfx2::IMacroDocumentAccess std::unique_ptr<::comphelper::EmbeddedObjectContainer> mxObjectContainer; SfxBasicManagerHolder aBasicManager; SfxObjectShell& rDocShell; - css::uno::Reference< css::script::XLibraryContainer > + css::uno::Reference< css::script::XStorageBasedLibraryContainer > xBasicLibraries; - css::uno::Reference< css::script::XLibraryContainer > + css::uno::Reference< css::script::XStorageBasedLibraryContainer > xDialogLibraries; ::sfx2::DocumentMacroMode aMacroMode; diff --git a/sw/source/filter/html/htmlbas.cxx b/sw/source/filter/html/htmlbas.cxx index 3500a631f108..4f640b84fd78 100644 --- a/sw/source/filter/html/htmlbas.cxx +++ b/sw/source/filter/html/htmlbas.cxx @@ -30,7 +30,7 @@ #include <com/sun/star/document/XEventsSupplier.hpp> #include <com/sun/star/uno/Reference.hxx> -#include <com/sun/star/script/XLibraryContainer.hpp> +#include <com/sun/star/script/XStorageBasedLibraryContainer.hpp> #include <com/sun/star/container/XNameContainer.hpp> #include <fmtfld.hxx> @@ -114,7 +114,7 @@ void SwHTMLParser::EndScript() aLibName = "Standard"; // get module library container - Reference< script::XLibraryContainer > xModLibContainer = pDocSh->GetBasicContainer(); + Reference< script::XStorageBasedLibraryContainer > xModLibContainer = pDocSh->GetBasicContainer(); if ( xModLibContainer.is() ) { @@ -156,7 +156,7 @@ void SwHTMLParser::EndScript() } // get dialog library container - Reference< script::XLibraryContainer > xDlgLibContainer = pDocSh->GetDialogContainer(); + Reference< script::XStorageBasedLibraryContainer > xDlgLibContainer = pDocSh->GetDialogContainer(); if ( xDlgLibContainer.is() ) {