[Libreoffice-commits] core.git: include/sfx2 sfx2/source

Caolán McNamara (via logerrit) logerrit at kemper.freedesktop.org
Mon May 11 13:09:19 UTC 2020


 include/sfx2/objsh.hxx               |    2 ++
 sfx2/source/doc/objmisc.cxx          |   31 ++++++++++++++-----------------
 sfx2/source/notify/eventsupplier.cxx |   25 +------------------------
 3 files changed, 17 insertions(+), 41 deletions(-)

New commits:
commit b55572c8abe2d01e5d8489b6ff32f72fa32bfea2
Author:     Caolán McNamara <caolanm at redhat.com>
AuthorDate: Mon May 11 12:28:46 2020 +0100
Commit:     Caolán McNamara <caolanm at redhat.com>
CommitDate: Mon May 11 15:08:34 2020 +0200

    de-duplicate cut and paste function
    
    Change-Id: I9569a10562e50ab5660a5638c518680c58fc97dc
    Reviewed-on: https://gerrit.libreoffice.org/c/core/+/93961
    Tested-by: Jenkins
    Reviewed-by: Caolán McNamara <caolanm at redhat.com>

diff --git a/include/sfx2/objsh.hxx b/include/sfx2/objsh.hxx
index 568b0397f43b..be90b2bfa18f 100644
--- a/include/sfx2/objsh.hxx
+++ b/include/sfx2/objsh.hxx
@@ -398,6 +398,8 @@ public:
 
     static bool                 UnTrustedScript(const OUString& rScriptURL);
 
+    static bool                 isScriptAccessAllowed(const css::uno::Reference<css::uno::XInterface>& rScriptContext);
+
     SvKeyValueIterator*         GetHeaderAttributes();
     void                        ClearHeaderAttributesForSourceViewHack();
     void                        SetHeaderAttributesForSourceViewHack();
diff --git a/sfx2/source/doc/objmisc.cxx b/sfx2/source/doc/objmisc.cxx
index 3bb958246670..e3e07dd5c306 100644
--- a/sfx2/source/doc/objmisc.cxx
+++ b/sfx2/source/doc/objmisc.cxx
@@ -1327,27 +1327,24 @@ ErrCode SfxObjectShell::CallBasic( const OUString& rMacro,
     return nRet;
 }
 
-namespace
+bool SfxObjectShell::isScriptAccessAllowed( const Reference< XInterface >& _rxScriptContext )
 {
-    bool lcl_isScriptAccessAllowed_nothrow( const Reference< XInterface >& _rxScriptContext )
+    try
     {
-        try
-        {
-            Reference< XEmbeddedScripts > xScripts( _rxScriptContext, UNO_QUERY );
-            if ( !xScripts.is() )
-            {
-                Reference< XScriptInvocationContext > xContext( _rxScriptContext, UNO_QUERY_THROW );
-                xScripts.set( xContext->getScriptContainer(), UNO_SET_THROW );
-            }
-
-            return xScripts->getAllowMacroExecution();
-        }
-        catch( const Exception& )
+        Reference< XEmbeddedScripts > xScripts( _rxScriptContext, UNO_QUERY );
+        if ( !xScripts.is() )
         {
-            DBG_UNHANDLED_EXCEPTION("sfx.doc");
+            Reference< XScriptInvocationContext > xContext( _rxScriptContext, UNO_QUERY_THROW );
+            xScripts.set( xContext->getScriptContainer(), UNO_SET_THROW );
         }
-        return false;
+
+        return xScripts->getAllowMacroExecution();
     }
+    catch( const Exception& )
+    {
+        DBG_UNHANDLED_EXCEPTION("sfx.doc");
+    }
+    return false;
 }
 
 // don't allow LibreLogo to be used with our mouseover/etc dom-alike events
@@ -1392,7 +1389,7 @@ ErrCode SfxObjectShell::CallXScript( const Reference< XInterface >& _rxScriptCon
     Any aException;
     try
     {
-        if ( !lcl_isScriptAccessAllowed_nothrow( _rxScriptContext ) )
+        if (!isScriptAccessAllowed(_rxScriptContext))
             return ERRCODE_IO_ACCESSDENIED;
 
         if ( UnTrustedScript(_rScriptURL) )
diff --git a/sfx2/source/notify/eventsupplier.cxx b/sfx2/source/notify/eventsupplier.cxx
index a8a674d2f531..65a50da3ef75 100644
--- a/sfx2/source/notify/eventsupplier.cxx
+++ b/sfx2/source/notify/eventsupplier.cxx
@@ -151,29 +151,6 @@ sal_Bool SAL_CALL SfxEvents_Impl::hasElements()
     return maEventNames.hasElements();
 }
 
-namespace
-{
-    bool lcl_isScriptAccessAllowed_nothrow(const uno::Reference<uno::XInterface>& rxScriptContext)
-    {
-        try
-        {
-            uno::Reference<document::XEmbeddedScripts> xScripts(rxScriptContext, uno::UNO_QUERY);
-            if (!xScripts.is())
-            {
-                uno::Reference<document::XScriptInvocationContext> xContext(rxScriptContext, uno::UNO_QUERY_THROW);
-                xScripts.set(xContext->getScriptContainer(), uno::UNO_SET_THROW);
-            }
-
-            return xScripts->getAllowMacroExecution();
-        }
-        catch( const uno::Exception& )
-        {
-            DBG_UNHANDLED_EXCEPTION("sfx.doc");
-        }
-        return false;
-    }
-}
-
 void SfxEvents_Impl::Execute( uno::Any const & aEventData, const document::DocumentEvent& aTrigger, SfxObjectShell* pDoc )
 {
     uno::Sequence < beans::PropertyValue > aProperties;
@@ -215,7 +192,7 @@ void SfxEvents_Impl::Execute( uno::Any const & aEventData, const document::Docum
     if (!pDoc)
         pDoc = SfxObjectShell::Current();
 
-    if (pDoc && !lcl_isScriptAccessAllowed_nothrow(pDoc->GetModel()))
+    if (pDoc && !SfxObjectShell::isScriptAccessAllowed(pDoc->GetModel()))
         return;
 
     if (aType == STAR_BASIC)


More information about the Libreoffice-commits mailing list