ScGlobal::OpenURL: obtain pViewFrm early and bail out if not available
authorEike Rathke <erack@redhat.com>
Tue, 10 Jul 2018 20:58:52 +0000 (22:58 +0200)
committerBastien Roucariès <rouca@debian.org>
Fri, 29 Dec 2023 09:39:36 +0000 (09:39 +0000)
Unnecessary to init a bunch of stuff if not.

Change-Id: Ica80185370ecc341bda5b1615ff6d765b579f45e

Gbp-Pq: Name 0085-ScGlobal-OpenURL-obtain-pViewFrm-early-and-bail-out-.patch

sc/source/core/data/global.cxx

index cb5a13ceed0f19849df2e787b690b1df6eb5d210..08e0deacae7442d06b5b8981725d0f45a3251a21 100644 (file)
@@ -824,6 +824,11 @@ void ScGlobal::OpenURL(const OUString& rURL, const OUString& rTarget)
         // other key combo. and security option is set, so return
         return;
     }
+
+    SfxViewFrame* pViewFrm = SfxViewFrame::Current();
+    if (!pViewFrm)
+        return;
+
     SfxStringItem aUrl( SID_FILE_NAME, rURL );
     SfxStringItem aTarget( SID_TARGETNAME, rTarget );
     if ( nScClickMouseModifier & KEY_SHIFT )     // control-click -> into new window
@@ -845,13 +850,9 @@ void ScGlobal::OpenURL(const OUString& rURL, const OUString& rTarget)
     SfxBoolItem aBrowsing( SID_BROWSE, true );
 
     // No SID_SILENT anymore
-    SfxViewFrame* pViewFrm = SfxViewFrame::Current();
-    if (pViewFrm)
-    {
-        pViewFrm->GetDispatcher()->ExecuteList(SID_OPENDOC,
-                SfxCallMode::ASYNCHRON | SfxCallMode::RECORD,
-                { &aUrl, &aTarget, &aFrm, &aReferer, &aNewView, &aBrowsing });
-    }
+    pViewFrm->GetDispatcher()->ExecuteList(SID_OPENDOC,
+            SfxCallMode::ASYNCHRON | SfxCallMode::RECORD,
+            { &aUrl, &aTarget, &aFrm, &aReferer, &aNewView, &aBrowsing });
 }
 
 bool ScGlobal::IsSystemRTL()