vcl/headless/svpframe.cxx                                |    4 
 vcl/inc/headless/svpframe.hxx                            |    2 
 vcl/inc/osx/salframe.h                                   |    2 
 vcl/inc/qt5/QtFrame.hxx                                  |    2 
 vcl/inc/salframe.hxx                                     |    3 
 vcl/inc/unx/gtk/gtkframe.hxx                             |    2 
 vcl/inc/unx/salframe.h                                   |    2 
 vcl/inc/win/salframe.h                                   |    2 
 vcl/osx/salframe.cxx                                     |    4 
 vcl/qt5/QtFilePicker.cxx                                 |    4 
 vcl/source/window/window.cxx                             |    2 
 vcl/unx/generic/app/i18n_ic.cxx                          |   12 +-
 vcl/unx/generic/app/saldisp.cxx                          |    4 
 vcl/unx/generic/app/wmadaptor.cxx                        |   14 +-
 vcl/unx/generic/window/salframe.cxx                      |    4 
 vcl/unx/generic/window/salobj.cxx                        |    4 
 vcl/unx/gtk3/gtkdata.cxx                                 |    6 -
 vcl/unx/gtk3/gtkframe.cxx                                |    4 
 vcl/unx/gtk3/gtkinst.cxx                                 |    5 
 vcl/win/window/salframe.cxx                              |    4 
 winaccessibility/source/service/AccTopWindowListener.cxx |   77 +++++----------
 21 files changed, 71 insertions(+), 92 deletions(-)

New commits:
commit eed855d70317ce25d267c28b28c0f40f8e7b69cb
Author:     Michael Weghorn <[email protected]>
AuthorDate: Thu Dec 5 13:07:06 2024 +0000
Commit:     Michael Weghorn <[email protected]>
CommitDate: Thu Dec 5 20:12:29 2024 +0100

    wina11y: Use existing references + drop duplicate checks
    
    There's no need to have local raw pointer variables
    in addition to the existing References.
    Replace all uses of the former by using the latter
    and drop duplicate checks.
    
    Change-Id: I1339dabecbe8e1652e49df8ecd5ce2749b897f47
    Reviewed-on: https://gerrit.libreoffice.org/c/core/+/177888
    Tested-by: Jenkins
    Reviewed-by: Michael Weghorn <[email protected]>

diff --git a/winaccessibility/source/service/AccTopWindowListener.cxx 
b/winaccessibility/source/service/AccTopWindowListener.cxx
index 181d7d8f4fa2..1b61a6436b15 100644
--- a/winaccessibility/source/service/AccTopWindowListener.cxx
+++ b/winaccessibility/source/service/AccTopWindowListener.cxx
@@ -173,34 +173,23 @@ void AccTopWindowListener::windowClosed( const 
css::lang::EventObject& e )
         return;
 
     Reference< css::accessibility::XAccessible > xAccessible ( e.Source, 
UNO_QUERY );
-    css::accessibility::XAccessible* pAccessible = xAccessible.get();
-    if ( pAccessible == nullptr)
+    if (!xAccessible.is())
         return;
 
-    Reference<css::accessibility::XAccessibleContext> xContext = 
pAccessible->getAccessibleContext();
+    Reference<css::accessibility::XAccessibleContext> xContext = 
xAccessible->getAccessibleContext();
     if(!xContext.is())
-    {
         return;
-    }
-    css::accessibility::XAccessibleContext* pAccessibleContext = 
xContext.get();
 
-    short role = -1;
-    if(pAccessibleContext != nullptr)
+    short role = xContext->getAccessibleRole();
+    if (role == css::accessibility::AccessibleRole::POPUP_MENU ||
+            role == css::accessibility::AccessibleRole::MENU)
     {
-        role = pAccessibleContext->getAccessibleRole();
-
-        if (role == css::accessibility::AccessibleRole::POPUP_MENU ||
-                role == css::accessibility::AccessibleRole::MENU)
-        {
-            m_aAccObjectManager.NotifyAccEvent(pAccessible, 
UnoMSAAEvent::MENUPOPUPEND);
-        }
+        m_aAccObjectManager.NotifyAccEvent(xAccessible.get(), 
UnoMSAAEvent::MENUPOPUPEND);
     }
 
-
-    m_aAccObjectManager.DeleteChildrenAccObj( pAccessible );
+    m_aAccObjectManager.DeleteChildrenAccObj(xAccessible.get());
     if( role != css::accessibility::AccessibleRole::POPUP_MENU )
-        m_aAccObjectManager.DeleteAccObj( pAccessible );
-
+        m_aAccObjectManager.DeleteAccObj(xAccessible.get());
 }
 
 void AccTopWindowListener::windowMinimized( const css::lang::EventObject& )
commit f40a68f58dd1fc8b4cbd89434559c3400e7bd39b
Author:     Michael Weghorn <[email protected]>
AuthorDate: Thu Dec 5 12:23:41 2024 +0000
Commit:     Michael Weghorn <[email protected]>
CommitDate: Thu Dec 5 20:12:21 2024 +0100

    wina11y: Drop unnecessary exception handling
    
    Window::GetSystemData should never throw an
    exception, so there's no need for exception
    handling here. Also, return early if the
    system data is null.
    
    Change-Id: I65794f10019d0c2fb5cc7150500b551c31cc2a08
    Reviewed-on: https://gerrit.libreoffice.org/c/core/+/177887
    Reviewed-by: Michael Weghorn <[email protected]>
    Tested-by: Jenkins

diff --git a/winaccessibility/source/service/AccTopWindowListener.cxx 
b/winaccessibility/source/service/AccTopWindowListener.cxx
index 40d9ba8755c1..181d7d8f4fa2 100644
--- a/winaccessibility/source/service/AccTopWindowListener.cxx
+++ b/winaccessibility/source/service/AccTopWindowListener.cxx
@@ -47,45 +47,37 @@ void AccTopWindowListener::HandleWindowOpened( 
css::accessibility::XAccessible*
     else if (auto pvclxcomponent = 
dynamic_cast<VCLXAccessibleComponent*>(pAccessible))
         window = pvclxcomponent->GetWindow();
     assert(window);
-    // The SalFrame of window may be destructed at this time
-    const SystemEnvData* systemdata = nullptr;
-    try
-    {
-        systemdata = window->GetSystemData();
-    }
-    catch(...)
-    {
-        systemdata = nullptr;
-    }
+
+    const SystemEnvData* pSystemData = window->GetSystemData();
+    if (!pSystemData)
+        return;
+
     Reference<css::accessibility::XAccessibleContext> xContext = 
pAccessible->getAccessibleContext();
     if(!xContext.is())
         return;
 
     // add all listeners
-    if (systemdata != nullptr)
-    {
-        m_aAccObjectManager.SaveTopWindowHandle(systemdata->hWnd, pAccessible);
+    m_aAccObjectManager.SaveTopWindowHandle(pSystemData->hWnd, pAccessible);
 
-        AddAllListeners(pAccessible,nullptr,systemdata->hWnd);
+    AddAllListeners(pAccessible, nullptr, pSystemData->hWnd);
 
-        if( window->GetStyle() & WB_MOVEABLE )
-            m_aAccObjectManager.IncreaseState( pAccessible, 
static_cast<unsigned short>(-1) /* U_MOVEBLE */ );
+    if( window->GetStyle() & WB_MOVEABLE )
+        m_aAccObjectManager.IncreaseState( pAccessible, static_cast<unsigned 
short>(-1) /* U_MOVEBLE */ );
 
-        short role = xContext->getAccessibleRole();
+    short role = xContext->getAccessibleRole();
 
-        if (role == css::accessibility::AccessibleRole::POPUP_MENU ||
-                role == css::accessibility::AccessibleRole::MENU )
-        {
-            m_aAccObjectManager.NotifyAccEvent(pAccessible, 
UnoMSAAEvent::MENUPOPUPSTART);
-        }
+    if (role == css::accessibility::AccessibleRole::POPUP_MENU ||
+            role == css::accessibility::AccessibleRole::MENU )
+    {
+        m_aAccObjectManager.NotifyAccEvent(pAccessible, 
UnoMSAAEvent::MENUPOPUPSTART);
+    }
 
-        if (role == css::accessibility::AccessibleRole::FRAME ||
-                role == css::accessibility::AccessibleRole::DIALOG ||
-                role == css::accessibility::AccessibleRole::WINDOW ||
-                role == css::accessibility::AccessibleRole::ALERT)
-        {
-            m_aAccObjectManager.NotifyAccEvent(pAccessible, 
UnoMSAAEvent::SHOW);
-        }
+    if (role == css::accessibility::AccessibleRole::FRAME ||
+            role == css::accessibility::AccessibleRole::DIALOG ||
+            role == css::accessibility::AccessibleRole::WINDOW ||
+            role == css::accessibility::AccessibleRole::ALERT)
+    {
+        m_aAccObjectManager.NotifyAccEvent(pAccessible, UnoMSAAEvent::SHOW);
     }
 }
 
commit c82a5669bc996bc23baebb3838fbabc629ef5d75
Author:     Michael Weghorn <[email protected]>
AuthorDate: Thu Dec 5 13:14:33 2024 +0100
Commit:     Michael Weghorn <[email protected]>
CommitDate: Thu Dec 5 20:12:14 2024 +0100

    vcl: Return reference in SalFrame::GetSystemData
    
    ... instead of a pointer, to make clear
    that this is always non-null.
    
    Change-Id: I4c8676913b2507f077d8a66973ab5f95e73cb497
    Reviewed-on: https://gerrit.libreoffice.org/c/core/+/177886
    Tested-by: Jenkins
    Reviewed-by: Michael Weghorn <[email protected]>

diff --git a/vcl/headless/svpframe.cxx b/vcl/headless/svpframe.cxx
index bae2312f2478..00672935d256 100644
--- a/vcl/headless/svpframe.cxx
+++ b/vcl/headless/svpframe.cxx
@@ -449,9 +449,9 @@ void SvpSalFrame::Beep()
 {
 }
 
-const SystemEnvData* SvpSalFrame::GetSystemData() const
+const SystemEnvData& SvpSalFrame::GetSystemData() const
 {
-    return &m_aSystemChildData;
+    return m_aSystemChildData;
 }
 
 SalFrame::SalPointerState SvpSalFrame::GetPointerState()
diff --git a/vcl/inc/headless/svpframe.hxx b/vcl/inc/headless/svpframe.hxx
index 3789e44745e7..1c61236029dc 100644
--- a/vcl/inc/headless/svpframe.hxx
+++ b/vcl/inc/headless/svpframe.hxx
@@ -108,7 +108,7 @@ public:
     virtual LanguageType        GetInputLanguage() override;
     virtual void                UpdateSettings( AllSettings& rSettings ) 
override;
     virtual void                Beep() override;
-    virtual const SystemEnvData* GetSystemData() const override;
+    virtual const SystemEnvData& GetSystemData() const override;
     virtual SalPointerState     GetPointerState() override;
     virtual KeyIndicatorState   GetIndicatorState() override;
     virtual void                SimulateKeyPress( sal_uInt16 nKeyCode ) 
override;
diff --git a/vcl/inc/osx/salframe.h b/vcl/inc/osx/salframe.h
index 717e5f310178..7245a89c3447 100644
--- a/vcl/inc/osx/salframe.h
+++ b/vcl/inc/osx/salframe.h
@@ -145,7 +145,7 @@ public:
     virtual LanguageType        GetInputLanguage() override;
     virtual void                UpdateSettings( AllSettings& rSettings ) 
override;
     virtual void                Beep() override;
-    virtual const SystemEnvData*    GetSystemData() const override;
+    virtual const SystemEnvData&  GetSystemData() const override;
     virtual SalPointerState     GetPointerState() override;
     virtual KeyIndicatorState   GetIndicatorState() override;
     virtual void                SimulateKeyPress( sal_uInt16 nKeyCode ) 
override;
diff --git a/vcl/inc/qt5/QtFrame.hxx b/vcl/inc/qt5/QtFrame.hxx
index efb534825e29..4d1c0fd02cd5 100644
--- a/vcl/inc/qt5/QtFrame.hxx
+++ b/vcl/inc/qt5/QtFrame.hxx
@@ -204,7 +204,7 @@ public:
     virtual LanguageType GetInputLanguage() override;
     virtual void UpdateSettings(AllSettings& rSettings) override;
     virtual void Beep() override;
-    virtual const SystemEnvData* GetSystemData() const override { return 
&m_aSystemData; }
+    virtual const SystemEnvData& GetSystemData() const override { return 
m_aSystemData; }
     virtual SalPointerState GetPointerState() override;
     virtual KeyIndicatorState GetIndicatorState() override;
     virtual void SimulateKeyPress(sal_uInt16 nKeyCode) override;
diff --git a/vcl/inc/salframe.hxx b/vcl/inc/salframe.hxx
index 8b239491d469..3d83d861e069 100644
--- a/vcl/inc/salframe.hxx
+++ b/vcl/inc/salframe.hxx
@@ -219,8 +219,7 @@ public:
     virtual void            FlashWindow() const {};
 
     // returns system data (most prominent: window handle)
-    virtual const SystemEnvData*
-                            GetSystemData() const = 0;
+    virtual const SystemEnvData& GetSystemData() const = 0;
 
     // tdf#139609 SystemEnvData::GetWindowHandle() calls this to on-demand 
fill the aWindow
     // member of SystemEnvData for backends that want to defer doing that
diff --git a/vcl/inc/unx/gtk/gtkframe.hxx b/vcl/inc/unx/gtk/gtkframe.hxx
index b8b10691843b..41790d893dba 100644
--- a/vcl/inc/unx/gtk/gtkframe.hxx
+++ b/vcl/inc/unx/gtk/gtkframe.hxx
@@ -573,7 +573,7 @@ public:
     virtual void                Beep() override;
 
     // returns system data (most prominent: window handle)
-    virtual const SystemEnvData*    GetSystemData() const override;
+    virtual const SystemEnvData& GetSystemData() const override;
 
     virtual void                ResolveWindowHandle(SystemEnvData& rData) 
const override;
 
diff --git a/vcl/inc/unx/salframe.h b/vcl/inc/unx/salframe.h
index a6603f6777f3..3ff7a4ae4e11 100644
--- a/vcl/inc/unx/salframe.h
+++ b/vcl/inc/unx/salframe.h
@@ -239,7 +239,7 @@ public:
     virtual LanguageType        GetInputLanguage() override;
     virtual void                UpdateSettings( AllSettings& rSettings ) 
override;
     virtual void                Beep() override;
-    virtual const SystemEnvData*    GetSystemData() const override;
+    virtual const SystemEnvData& GetSystemData() const override;
     virtual SalPointerState     GetPointerState() override;
     virtual KeyIndicatorState   GetIndicatorState() override;
     virtual void                SimulateKeyPress( sal_uInt16 nKeyCode ) 
override;
diff --git a/vcl/inc/win/salframe.h b/vcl/inc/win/salframe.h
index ca3bbd8eb323..ada7f2f022fe 100644
--- a/vcl/inc/win/salframe.h
+++ b/vcl/inc/win/salframe.h
@@ -130,7 +130,7 @@ public:
     virtual void                UpdateSettings( AllSettings& rSettings ) 
override;
     virtual void                Beep() override;
     virtual void                FlashWindow() const override;
-    virtual const SystemEnvData*    GetSystemData() const override;
+    virtual const SystemEnvData& GetSystemData() const override;
     virtual SalPointerState     GetPointerState() override;
     virtual KeyIndicatorState   GetIndicatorState() override;
     virtual void                SimulateKeyPress( sal_uInt16 nKeyCode ) 
override;
diff --git a/vcl/osx/salframe.cxx b/vcl/osx/salframe.cxx
index 73ea3ce2262a..9d85969363b6 100644
--- a/vcl/osx/salframe.cxx
+++ b/vcl/osx/salframe.cxx
@@ -1672,9 +1672,9 @@ SAL_WNODEPRECATED_DECLARATIONS_PUSH
 SAL_WNODEPRECATED_DECLARATIONS_POP
 }
 
-const SystemEnvData* AquaSalFrame::GetSystemData() const
+const SystemEnvData& AquaSalFrame::GetSystemData() const
 {
-    return &maSysData;
+    return maSysData;
 }
 
 void AquaSalFrame::Beep()
diff --git a/vcl/qt5/QtFilePicker.cxx b/vcl/qt5/QtFilePicker.cxx
index 807ba7ee853d..e97d8cb39608 100644
--- a/vcl/qt5/QtFilePicker.cxx
+++ b/vcl/qt5/QtFilePicker.cxx
@@ -873,8 +873,8 @@ void SAL_CALL QtFilePicker::initialize(const 
uno::Sequence<uno::Any>& args)
     const tools::Long aWindowHandle = xSysWin.WindowHandle;
     const auto it
         = std::find_if(pFrames.begin(), pFrames.end(), [&aWindowHandle](auto 
pFrame) -> bool {
-              const SystemEnvData* pData = pFrame->GetSystemData();
-              return pData && tools::Long(pData->GetWindowHandle(pFrame)) == 
aWindowHandle;
+              const SystemEnvData& rData = pFrame->GetSystemData();
+              return tools::Long(rData.GetWindowHandle(pFrame)) == 
aWindowHandle;
           });
     if (it != pFrames.end())
         m_pParentWidget = static_cast<QtFrame*>(*it)->asChild();
diff --git a/vcl/source/window/window.cxx b/vcl/source/window/window.cxx
index 06e3e4db76cb..23df41fa50ce 100644
--- a/vcl/source/window/window.cxx
+++ b/vcl/source/window/window.cxx
@@ -3870,7 +3870,7 @@ void Window::ApplySettings(vcl::RenderContext& 
/*rRenderContext*/)
 const SystemEnvData* Window::GetSystemData() const
 {
 
-    return mpWindowImpl->mpFrame ? mpWindowImpl->mpFrame->GetSystemData() : 
nullptr;
+    return mpWindowImpl->mpFrame ? &mpWindowImpl->mpFrame->GetSystemData() : 
nullptr;
 }
 
 bool Window::SupportsDoubleBuffering() const
diff --git a/vcl/unx/generic/app/i18n_ic.cxx b/vcl/unx/generic/app/i18n_ic.cxx
index 32390a888864..1fd3454aeaa7 100644
--- a/vcl/unx/generic/app/i18n_ic.cxx
+++ b/vcl/unx/generic/app/i18n_ic.cxx
@@ -162,9 +162,9 @@ SalI18N_InputContext::SalI18N_InputContext ( SalFrame 
*pFrame ) :
     if (pInputMethod->UseMethod()
         && SupportInputMethodStyle( pInputMethod->GetSupportedStyles() ) )
     {
-        const SystemEnvData* pEnv = pFrame->GetSystemData();
-        ::Window  aClientWindow = pEnv->aShellWindow;
-        ::Window  aFocusWindow  = pEnv->GetWindowHandle(pFrame);
+        const SystemEnvData& rEnv = pFrame->GetSystemData();
+        ::Window  aClientWindow = rEnv.aShellWindow;
+        ::Window  aFocusWindow  = rEnv.GetWindowHandle(pFrame);
 
         // for status callbacks and commit string callbacks
 #define PREEDIT_BUFSZ 16
@@ -546,9 +546,9 @@ SalI18N_InputContext::SetICFocus( SalFrame* pFocusFrame )
 
     maClientData.pFrame = pFocusFrame;
 
-    const SystemEnvData* pEnv   = pFocusFrame->GetSystemData();
-    ::Window  aClientWindow  = pEnv->aShellWindow;
-    ::Window  aFocusWindow   = pEnv->GetWindowHandle(pFocusFrame);
+    const SystemEnvData& rEnv   = pFocusFrame->GetSystemData();
+    ::Window  aClientWindow  = rEnv.aShellWindow;
+    ::Window  aFocusWindow   = rEnv.GetWindowHandle(pFocusFrame);
 
     XSetICValues( maContext,
                   XNFocusWindow,       aFocusWindow,
diff --git a/vcl/unx/generic/app/saldisp.cxx b/vcl/unx/generic/app/saldisp.cxx
index a5f9c2f42e5d..46f97074bc26 100644
--- a/vcl/unx/generic/app/saldisp.cxx
+++ b/vcl/unx/generic/app/saldisp.cxx
@@ -1820,11 +1820,11 @@ int SalDisplay::CaptureMouse( SalFrame *pCapture )
     m_pCapture = nullptr;
 
     // FIXME: get rid of X11SalFrame
-    const SystemEnvData* pEnvData = pCapture->GetSystemData();
+    const SystemEnvData& rEnvData = pCapture->GetSystemData();
     if( !pEnv || !*pEnv )
     {
         int ret = XGrabPointer( GetDisplay(),
-                                
static_cast<::Window>(pEnvData->GetWindowHandle(pCapture)),
+                                
static_cast<::Window>(rEnvData.GetWindowHandle(pCapture)),
                                 False,
                                 PointerMotionMask| 
ButtonPressMask|ButtonReleaseMask,
                                 GrabModeAsync,
diff --git a/vcl/unx/generic/app/wmadaptor.cxx 
b/vcl/unx/generic/app/wmadaptor.cxx
index 6de1fbd2e8e7..51c273e3c983 100644
--- a/vcl/unx/generic/app/wmadaptor.cxx
+++ b/vcl/unx/generic/app/wmadaptor.cxx
@@ -996,9 +996,9 @@ void WMAdaptor::setWMName( X11SalFrame* pFrame, const 
OUString& rWMName ) const
     Atom nType = aProp.nitems ? aProp.encoding : XA_STRING;
     int nFormat = aProp.nitems ? aProp.format : 8;
     int nBytes = aProp.nitems ? aProp.nitems : aTitle.getLength();
-    const SystemEnvData* pEnv = pFrame->GetSystemData();
+    const SystemEnvData& rEnv = pFrame->GetSystemData();
     XChangeProperty( m_pDisplay,
-                     static_cast<::Window>(pEnv->aShellWindow),
+                     static_cast<::Window>(rEnv.aShellWindow),
                      XA_WM_NAME,
                      nType,
                      nFormat,
@@ -1006,7 +1006,7 @@ void WMAdaptor::setWMName( X11SalFrame* pFrame, const 
OUString& rWMName ) const
                      pData,
                      nBytes );
     XChangeProperty( m_pDisplay,
-                     static_cast<::Window>(pEnv->aShellWindow),
+                     static_cast<::Window>(rEnv.aShellWindow),
                      XA_WM_ICON_NAME,
                      nType,
                      nFormat,
@@ -1014,7 +1014,7 @@ void WMAdaptor::setWMName( X11SalFrame* pFrame, const 
OUString& rWMName ) const
                      pData,
                      nBytes );
     XChangeProperty( m_pDisplay,
-                     static_cast<::Window>(pEnv->aShellWindow),
+                     static_cast<::Window>(rEnv.aShellWindow),
                      m_aWMAtoms[ WM_LOCALE_NAME ],
                      XA_STRING,
                      8,
@@ -1037,10 +1037,10 @@ void NetWMAdaptor::setWMName( X11SalFrame* pFrame, 
const OUString& rWMName ) con
     WMAdaptor::setWMName( pFrame, rWMName );
 
     OString aTitle(OUStringToOString(rWMName, RTL_TEXTENCODING_UTF8));
-    const SystemEnvData* pEnv = pFrame->GetSystemData();
+    const SystemEnvData& rEnv = pFrame->GetSystemData();
     if( m_aWMAtoms[ NET_WM_NAME ] )
         XChangeProperty( m_pDisplay,
-                         static_cast<::Window>(pEnv->aShellWindow),
+                         static_cast<::Window>(rEnv.aShellWindow),
                          m_aWMAtoms[ NET_WM_NAME ],
                          m_aWMAtoms[ UTF8_STRING ],
                          8,
@@ -1049,7 +1049,7 @@ void NetWMAdaptor::setWMName( X11SalFrame* pFrame, const 
OUString& rWMName ) con
                          aTitle.getLength() );
     if( m_aWMAtoms[ NET_WM_ICON_NAME ] )
         XChangeProperty( m_pDisplay,
-                         static_cast<::Window>(pEnv->aShellWindow),
+                         static_cast<::Window>(rEnv.aShellWindow),
                          m_aWMAtoms[ NET_WM_ICON_NAME ],
                          m_aWMAtoms[ UTF8_STRING ],
                          8,
diff --git a/vcl/unx/generic/window/salframe.cxx 
b/vcl/unx/generic/window/salframe.cxx
index dbd35f5417d9..d495d5bbe8bc 100644
--- a/vcl/unx/generic/window/salframe.cxx
+++ b/vcl/unx/generic/window/salframe.cxx
@@ -842,7 +842,7 @@ void X11SalFrame::SetExtendedFrameStyle( SalExtStyle nStyle 
)
     }
 }
 
-const SystemEnvData* X11SalFrame::GetSystemData() const
+const SystemEnvData& X11SalFrame::GetSystemData() const
 {
     X11SalFrame *pFrame = const_cast<X11SalFrame*>(this);
     pFrame->maSystemChildData.pDisplay      = GetXDisplay();
@@ -854,7 +854,7 @@ const SystemEnvData* X11SalFrame::GetSystemData() const
     pFrame->maSystemChildData.aShellWindow  = pFrame->GetShellWindow();
     pFrame->maSystemChildData.toolkit       = SystemEnvData::Toolkit::Gen;
     pFrame->maSystemChildData.platform      = SystemEnvData::Platform::Xcb;
-    return &maSystemChildData;
+    return maSystemChildData;
 }
 
 SalGraphics *X11SalFrame::AcquireGraphics()
diff --git a/vcl/unx/generic/window/salobj.cxx 
b/vcl/unx/generic/window/salobj.cxx
index 50090f053825..3879fdab3244 100644
--- a/vcl/unx/generic/window/salobj.cxx
+++ b/vcl/unx/generic/window/salobj.cxx
@@ -60,9 +60,9 @@ X11SalObject* X11SalObject::CreateObject( SalFrame* pParent, 
SystemWindowData* p
     pObject->mpParent = pParent;
 
     SalDisplay* pSalDisp        = 
vcl_sal::getSalDisplay(GetGenericUnixSalData());
-    const SystemEnvData* pEnv   = pParent->GetSystemData();
+    const SystemEnvData& rEnv   = pParent->GetSystemData();
     Display* pDisp              = pSalDisp->GetDisplay();
-    ::Window aObjectParent      = 
static_cast<::Window>(pEnv->GetWindowHandle(pParent));
+    ::Window aObjectParent      = 
static_cast<::Window>(rEnv.GetWindowHandle(pParent));
     pObject->maParentWin = aObjectParent;
 
     // find out on which screen that window is
diff --git a/vcl/unx/gtk3/gtkdata.cxx b/vcl/unx/gtk3/gtkdata.cxx
index 17ae4ec928b8..2f71818296c5 100644
--- a/vcl/unx/gtk3/gtkdata.cxx
+++ b/vcl/unx/gtk3/gtkdata.cxx
@@ -870,9 +870,9 @@ GtkWidget* 
GtkSalDisplay::findGtkWidgetForNativeHandle(sal_uIntPtr hWindow) cons
 {
     for (auto pSalFrame : m_aFrames )
     {
-        const SystemEnvData* pEnvData = pSalFrame->GetSystemData();
-        if (pEnvData->GetWindowHandle(pSalFrame) == hWindow)
-            return GTK_WIDGET(pEnvData->pWidget);
+        const SystemEnvData& rEnvData = pSalFrame->GetSystemData();
+        if (rEnvData.GetWindowHandle(pSalFrame) == hWindow)
+            return GTK_WIDGET(rEnvData.pWidget);
     }
     return nullptr;
 }
diff --git a/vcl/unx/gtk3/gtkframe.cxx b/vcl/unx/gtk3/gtkframe.cxx
index f101834627c5..8b96d7a321c0 100644
--- a/vcl/unx/gtk3/gtkframe.cxx
+++ b/vcl/unx/gtk3/gtkframe.cxx
@@ -3035,9 +3035,9 @@ void GtkSalFrame::Beep()
     gdk_display_beep( getGdkDisplay() );
 }
 
-const SystemEnvData* GtkSalFrame::GetSystemData() const
+const SystemEnvData& GtkSalFrame::GetSystemData() const
 {
-    return &m_aSystemData;
+    return m_aSystemData;
 }
 
 void GtkSalFrame::ResolveWindowHandle(SystemEnvData& rData) const
diff --git a/vcl/unx/gtk3/gtkinst.cxx b/vcl/unx/gtk3/gtkinst.cxx
index 92b281e8ee2d..13d33a19a30a 100644
--- a/vcl/unx/gtk3/gtkinst.cxx
+++ b/vcl/unx/gtk3/gtkinst.cxx
@@ -6385,9 +6385,8 @@ public:
     {
         GtkSalFrame* pFrame = 
GtkSalFrame::getFromWindow(GTK_WIDGET(m_pWindow));
         assert(pFrame && "nothing should call this impl, yet anyway, if ever, 
except on result of GetFrameWeld()");
-        const SystemEnvData* pEnvData = pFrame->GetSystemData();
-        assert(pEnvData);
-        return *pEnvData;
+        const SystemEnvData& rEnvData = pFrame->GetSystemData();
+        return rEnvData;
     }
 
     virtual Size get_size() const override
diff --git a/vcl/win/window/salframe.cxx b/vcl/win/window/salframe.cxx
index 751e85012bff..9a3705c4d525 100644
--- a/vcl/win/window/salframe.cxx
+++ b/vcl/win/window/salframe.cxx
@@ -3017,9 +3017,9 @@ void WinSalFrame::UpdateSettings( AllSettings& rSettings )
     WinSalGraphics::updateSettingsNative( rSettings );
 }
 
-const SystemEnvData* WinSalFrame::GetSystemData() const
+const SystemEnvData& WinSalFrame::GetSystemData() const
 {
-    return &maSysData;
+    return maSysData;
 }
 
 void WinSalFrame::Beep()

Reply via email to