diff options
author | Noel Grandin <noel.grandin@collabora.co.uk> | 2018-06-08 14:41:16 +0200 |
---|---|---|
committer | Noel Grandin <noel.grandin@collabora.co.uk> | 2018-06-09 13:12:47 +0200 |
commit | 7d521a85858bacdb7b5db359036ccf6f01b709c3 (patch) | |
tree | ee359fd27d55a0916e18e504d925949aa5b2a378 /vcl | |
parent | b7abdafcfc42722ab060529864a2109d1e4198c0 (diff) |
hold and return SalMenu by std::unique_ptr
and drop DestroyMenu, all the implementations just delete the object
Change-Id: I673997ea1a9c5216b100cafdc70a8f697732769b
Reviewed-on: https://gerrit.libreoffice.org/55501
Tested-by: Jenkins <ci@libreoffice.org>
Reviewed-by: Noel Grandin <noel.grandin@collabora.co.uk>
Diffstat (limited to 'vcl')
-rw-r--r-- | vcl/inc/osx/salinst.h | 3 | ||||
-rw-r--r-- | vcl/inc/qt5/Qt5Instance.hxx | 3 | ||||
-rw-r--r-- | vcl/inc/salinst.hxx | 3 | ||||
-rw-r--r-- | vcl/inc/unx/gtk/gtkinst.hxx | 3 | ||||
-rw-r--r-- | vcl/inc/win/salinst.h | 3 | ||||
-rw-r--r-- | vcl/osx/salmenu.cxx | 9 | ||||
-rw-r--r-- | vcl/qt5/Qt5Instance.cxx | 6 | ||||
-rw-r--r-- | vcl/source/app/salvtables.cxx | 7 | ||||
-rw-r--r-- | vcl/source/window/menu.cxx | 4 | ||||
-rw-r--r-- | vcl/unx/gtk/gtkinst.cxx | 13 | ||||
-rw-r--r-- | vcl/win/window/salmenu.cxx | 9 |
11 files changed, 16 insertions, 47 deletions
diff --git a/vcl/inc/osx/salinst.h b/vcl/inc/osx/salinst.h index a19e9e423f9b..fa15a5cb7bca 100644 --- a/vcl/inc/osx/salinst.h +++ b/vcl/inc/osx/salinst.h @@ -118,8 +118,7 @@ public: virtual void AcquireYieldMutex( sal_uInt32 nCount = 1 ) override; virtual bool DoYield(bool bWait, bool bHandleAllCurrentEvents) override; virtual bool AnyInput( VclInputFlags nType ) override; - virtual SalMenu* CreateMenu( bool bMenuBar, Menu* pVCLMenu ) override; - virtual void DestroyMenu( SalMenu* ) override; + virtual std::unique_ptr<SalMenu> CreateMenu( bool bMenuBar, Menu* pVCLMenu ) override; virtual std::unique_ptr<SalMenuItem> CreateMenuItem( const SalItemParams & rItemData ) override; virtual OpenGLContext* CreateOpenGLContext() override; virtual OUString GetConnectionIdentifier() override; diff --git a/vcl/inc/qt5/Qt5Instance.hxx b/vcl/inc/qt5/Qt5Instance.hxx index 16e22098cd09..06f9c7d4102c 100644 --- a/vcl/inc/qt5/Qt5Instance.hxx +++ b/vcl/inc/qt5/Qt5Instance.hxx @@ -80,8 +80,7 @@ public: virtual OUString GetDefaultPrinter() override; virtual void PostPrintersChanged() override; - virtual SalMenu* CreateMenu(bool, Menu*) override; - virtual void DestroyMenu(SalMenu* pMenu) override; + virtual std::unique_ptr<SalMenu> CreateMenu(bool, Menu*) override; virtual std::unique_ptr<SalMenuItem> CreateMenuItem(const SalItemParams&) override; virtual SalTimer* CreateSalTimer() override; diff --git a/vcl/inc/salinst.hxx b/vcl/inc/salinst.hxx index 3924ee3d497f..fa4fa92d3289 100644 --- a/vcl/inc/salinst.hxx +++ b/vcl/inc/salinst.hxx @@ -152,8 +152,7 @@ public: virtual bool AnyInput( VclInputFlags nType ) = 0; // menus - virtual SalMenu* CreateMenu( bool bMenuBar, Menu* pMenu ); - virtual void DestroyMenu( SalMenu* pMenu); + virtual std::unique_ptr<SalMenu> CreateMenu( bool bMenuBar, Menu* pMenu ); virtual std::unique_ptr<SalMenuItem> CreateMenuItem( const SalItemParams& pItemData ); // may return NULL to disable session management, only used by X11 backend diff --git a/vcl/inc/unx/gtk/gtkinst.hxx b/vcl/inc/unx/gtk/gtkinst.hxx index 499bacadd5b4..5f8534ae262f 100644 --- a/vcl/inc/unx/gtk/gtkinst.hxx +++ b/vcl/inc/unx/gtk/gtkinst.hxx @@ -198,8 +198,7 @@ public: virtual SalSystem* CreateSalSystem() override; virtual SalInfoPrinter* CreateInfoPrinter(SalPrinterQueueInfo* pPrinterQueueInfo, ImplJobSetup* pJobSetup) override; virtual std::unique_ptr<SalPrinter> CreatePrinter( SalInfoPrinter* pInfoPrinter ) override; - virtual SalMenu* CreateMenu( bool, Menu* ) override; - virtual void DestroyMenu( SalMenu* pMenu ) override; + virtual std::unique_ptr<SalMenu> CreateMenu( bool, Menu* ) override; virtual std::unique_ptr<SalMenuItem> CreateMenuItem( const SalItemParams& ) override; virtual SalTimer* CreateSalTimer() override; virtual void AddToRecentDocumentList(const OUString& rFileUrl, const OUString& rMimeType, const OUString& rDocumentService) override; diff --git a/vcl/inc/win/salinst.h b/vcl/inc/win/salinst.h index e96fbc5b56b0..f0df23433d10 100644 --- a/vcl/inc/win/salinst.h +++ b/vcl/inc/win/salinst.h @@ -72,8 +72,7 @@ public: virtual bool DoYield(bool bWait, bool bHandleAllCurrentEvents) override; virtual bool AnyInput( VclInputFlags nType ) override; - virtual SalMenu* CreateMenu( bool bMenuBar, Menu* ) override; - virtual void DestroyMenu( SalMenu* ) override; + virtual std::unique_ptr<SalMenu> CreateMenu( bool bMenuBar, Menu* ) override; virtual std::unique_ptr<SalMenuItem> CreateMenuItem( const SalItemParams & rItemData ) override; virtual OpenGLContext* CreateOpenGLContext() override; virtual OUString GetConnectionIdentifier() override; diff --git a/vcl/osx/salmenu.cxx b/vcl/osx/salmenu.cxx index ff400fdd4810..1cbdd979d56e 100644 --- a/vcl/osx/salmenu.cxx +++ b/vcl/osx/salmenu.cxx @@ -218,19 +218,14 @@ SAL_WNODEPRECATED_DECLARATIONS_POP } } -SalMenu* AquaSalInstance::CreateMenu( bool bMenuBar, Menu* pVCLMenu ) +std::unique_ptr<SalMenu> AquaSalInstance::CreateMenu( bool bMenuBar, Menu* pVCLMenu ) { initAppMenu(); AquaSalMenu *pAquaSalMenu = new AquaSalMenu( bMenuBar ); pAquaSalMenu->mpVCLMenu = pVCLMenu; - return pAquaSalMenu; -} - -void AquaSalInstance::DestroyMenu( SalMenu* pSalMenu ) -{ - delete pSalMenu; + return std::unique_ptr<SalMenu>(pAquaSalMenu); } std::unique_ptr<SalMenuItem> AquaSalInstance::CreateMenuItem( const SalItemParams & rItemData ) diff --git a/vcl/qt5/Qt5Instance.cxx b/vcl/qt5/Qt5Instance.cxx index 705137c16c50..6bc3694883b3 100644 --- a/vcl/qt5/Qt5Instance.cxx +++ b/vcl/qt5/Qt5Instance.cxx @@ -111,15 +111,13 @@ Qt5Instance::CreateVirtualDevice(SalGraphics* pGraphics, long& nDX, long& nDY, D } } -SalMenu* Qt5Instance::CreateMenu(bool bMenuBar, Menu* pVCLMenu) +std::unique_ptr<SalMenu> Qt5Instance::CreateMenu(bool bMenuBar, Menu* pVCLMenu) { Qt5Menu* pSalMenu = new Qt5Menu(bMenuBar); pSalMenu->SetMenu(pVCLMenu); - return pSalMenu; + return std::unique_ptr<SalMenu>(pSalMenu); } -void Qt5Instance::DestroyMenu(SalMenu* pMenu) { delete pMenu; } - std::unique_ptr<SalMenuItem> Qt5Instance::CreateMenuItem(const SalItemParams& rItemData) { return std::unique_ptr<SalMenuItem>(new Qt5MenuItem(&rItemData)); diff --git a/vcl/source/app/salvtables.cxx b/vcl/source/app/salvtables.cxx index d5ac7c95e513..00ff6c6a9090 100644 --- a/vcl/source/app/salvtables.cxx +++ b/vcl/source/app/salvtables.cxx @@ -87,17 +87,12 @@ std::unique_ptr<SalSession> SalInstance::CreateSalSession() return nullptr; } -SalMenu* SalInstance::CreateMenu( bool, Menu* ) +std::unique_ptr<SalMenu> SalInstance::CreateMenu( bool, Menu* ) { // default: no native menus return nullptr; } -void SalInstance::DestroyMenu( SalMenu* pMenu ) -{ - OSL_ENSURE( pMenu == nullptr, "DestroyMenu called with non-native menus" ); -} - std::unique_ptr<SalMenuItem> SalInstance::CreateMenuItem( const SalItemParams & ) { return nullptr; diff --git a/vcl/source/window/menu.cxx b/vcl/source/window/menu.cxx index ce19d83b85de..cf509a91374a 100644 --- a/vcl/source/window/menu.cxx +++ b/vcl/source/window/menu.cxx @@ -2302,9 +2302,7 @@ OUString Menu::GetAccessibleName( sal_uInt16 nItemId ) const void Menu::ImplClearSalMenu() { - if( mpSalMenu ) - ImplGetSVData()->mpDefInst->DestroyMenu( mpSalMenu ); - mpSalMenu = nullptr; + mpSalMenu.reset(); } void Menu::GetSystemMenuData( SystemMenuData* pData ) const diff --git a/vcl/unx/gtk/gtkinst.cxx b/vcl/unx/gtk/gtkinst.cxx index e61acedf3cd9..4cf31b82312a 100644 --- a/vcl/unx/gtk/gtkinst.cxx +++ b/vcl/unx/gtk/gtkinst.cxx @@ -357,18 +357,12 @@ SalBitmap* GtkInstance::CreateSalBitmap() #ifdef ENABLE_GMENU_INTEGRATION -SalMenu* GtkInstance::CreateMenu( bool bMenuBar, Menu* pVCLMenu ) +std::unique_ptr<SalMenu> GtkInstance::CreateMenu( bool bMenuBar, Menu* pVCLMenu ) { EnsureInit(); GtkSalMenu* pSalMenu = new GtkSalMenu( bMenuBar ); pSalMenu->SetMenu( pVCLMenu ); - return pSalMenu; -} - -void GtkInstance::DestroyMenu( SalMenu* pMenu ) -{ - EnsureInit(); - delete pMenu; + return std::unique_ptr<SalMenu>(pSalMenu); } std::unique_ptr<SalMenuItem> GtkInstance::CreateMenuItem( const SalItemParams & rItemData ) @@ -379,8 +373,7 @@ std::unique_ptr<SalMenuItem> GtkInstance::CreateMenuItem( const SalItemParams & #else // not ENABLE_GMENU_INTEGRATION -SalMenu* GtkInstance::CreateMenu( bool, Menu* ) { return nullptr; } -void GtkInstance::DestroyMenu( SalMenu* ) {} +std::unique_ptr<SalMenu> GtkInstance::CreateMenu( bool, Menu* ) { return nullptr; } std::unique_ptr<SalMenuItem> GtkInstance::CreateMenuItem( const SalItemParams & ) { return nullptr; } #endif diff --git a/vcl/win/window/salmenu.cxx b/vcl/win/window/salmenu.cxx index 56c8ca2ff92d..0b14967bdc61 100644 --- a/vcl/win/window/salmenu.cxx +++ b/vcl/win/window/salmenu.cxx @@ -43,7 +43,7 @@ bool SalData::IsKnownMenuHandle( HMENU hMenu ) // WinSalInst factory methods -SalMenu* WinSalInstance::CreateMenu( bool bMenuBar, Menu* ) +std::unique_ptr<SalMenu> WinSalInstance::CreateMenu( bool bMenuBar, Menu* ) { WinSalMenu *pSalMenu = new WinSalMenu(); @@ -57,12 +57,7 @@ SalMenu* WinSalInstance::CreateMenu( bool bMenuBar, Menu* ) if( pSalMenu->mhMenu ) GetSalData()->mhMenuSet.insert( pSalMenu->mhMenu ); - return pSalMenu; -} - -void WinSalInstance::DestroyMenu( SalMenu* pSalMenu ) -{ - delete pSalMenu; + return std::unique_ptr<SalMenu>(pSalMenu); } std::unique_ptr<SalMenuItem> WinSalInstance::CreateMenuItem( const SalItemParams & rItemData ) |