vcl/inc/salinst.hxx                 |    2 +-
 vcl/inc/unx/geninst.h               |    1 -
 vcl/inc/win/salinst.h               |    1 -
 vcl/ios/dummies.cxx                 |    5 -----
 vcl/osx/salinst.cxx                 |    2 +-
 vcl/source/app/salvtables.cxx       |    2 ++
 vcl/unx/generic/print/genprnpsp.cxx |    5 -----
 vcl/win/gdi/salprn.cxx              |    6 ------
 8 files changed, 4 insertions(+), 20 deletions(-)

New commits:
commit da263655e8f10b1a33416daaaed82ac5fb1877b2
Author:     Michael Weghorn <[email protected]>
AuthorDate: Mon Mar 2 02:49:56 2026 +0100
Commit:     Michael Weghorn <[email protected]>
CommitDate: Mon Mar 2 17:13:52 2026 +0100

    vcl: Deduplicate SalInstance::DestroyInfoPrinter implementations
    
    So far, SalInstance::DestroyInfoPrinter was purely virtual,
    and most implementations were doing the same: Calling
    `delete` on the passed arg.
    
    Deduplicate that, by implementating that logic right
    in the SalInstance base class instead and dropping
    overrides doing the same.
    
    Change-Id: Ib139b53fba3eeaf70d29bc67d8a06e9656fd2b69
    Reviewed-on: https://gerrit.libreoffice.org/c/core/+/200745
    Tested-by: Jenkins
    Reviewed-by: Michael Weghorn <[email protected]>

diff --git a/vcl/inc/salinst.hxx b/vcl/inc/salinst.hxx
index 01fe719f77dd..e91e48ea8da2 100644
--- a/vcl/inc/salinst.hxx
+++ b/vcl/inc/salinst.hxx
@@ -143,7 +143,7 @@ public:
     // JobSetup
     virtual SalInfoPrinter* CreateInfoPrinter( SalPrinterQueueInfo* pQueueInfo,
                                                ImplJobSetup* pSetupData ) = 0;
-    virtual void            DestroyInfoPrinter( SalInfoPrinter* pPrinter ) = 0;
+    virtual void DestroyInfoPrinter(SalInfoPrinter* pPrinter);
     virtual std::unique_ptr<SalPrinter> CreatePrinter( SalInfoPrinter* 
pInfoPrinter ) = 0;
 
     virtual void            GetPrinterQueueInfo( ImplPrnQueueList* pList ) = 0;
diff --git a/vcl/inc/unx/geninst.h b/vcl/inc/unx/geninst.h
index 1c19fa1ab6c7..7e9c5388ce87 100644
--- a/vcl/inc/unx/geninst.h
+++ b/vcl/inc/unx/geninst.h
@@ -59,7 +59,6 @@ public:
     // Printing
     virtual SalInfoPrinter*     CreateInfoPrinter      ( SalPrinterQueueInfo* 
pQueueInfo,
                                                          ImplJobSetup* 
pSetupData ) override;
-    virtual void                DestroyInfoPrinter     ( SalInfoPrinter* 
pPrinter ) override;
     virtual std::unique_ptr<SalPrinter> CreatePrinter  ( SalInfoPrinter* 
pInfoPrinter ) override;
     virtual void                GetPrinterQueueInfo    ( ImplPrnQueueList* 
pList ) override;
     virtual void                GetPrinterQueueState   ( SalPrinterQueueInfo* 
pInfo ) override;
diff --git a/vcl/inc/win/salinst.h b/vcl/inc/win/salinst.h
index 731bf1fb49d0..0342b951e204 100644
--- a/vcl/inc/win/salinst.h
+++ b/vcl/inc/win/salinst.h
@@ -61,7 +61,6 @@ public:
                                                      DeviceFormat eFormat, 
const SystemGraphicsData& rData ) override;
     virtual SalInfoPrinter* CreateInfoPrinter( SalPrinterQueueInfo* pQueueInfo,
                                                ImplJobSetup* pSetupData ) 
override;
-    virtual void            DestroyInfoPrinter( SalInfoPrinter* pPrinter ) 
override;
     virtual std::unique_ptr<SalPrinter> CreatePrinter( SalInfoPrinter* 
pInfoPrinter ) override;
     virtual void            GetPrinterQueueInfo( ImplPrnQueueList* pList ) 
override;
     virtual void            GetPrinterQueueState( SalPrinterQueueInfo* pInfo ) 
override;
diff --git a/vcl/ios/dummies.cxx b/vcl/ios/dummies.cxx
index fbd8d049be0d..eb58769ed38e 100644
--- a/vcl/ios/dummies.cxx
+++ b/vcl/ios/dummies.cxx
@@ -77,11 +77,6 @@ SalInfoPrinter* SalGenericInstance::CreateInfoPrinter( 
SalPrinterQueueInfo* /* p
     return NULL;
 }
 
-void SalGenericInstance::DestroyInfoPrinter( SalInfoPrinter* pPrinter )
-{
-    delete pPrinter;
-}
-
 void SalGenericInstance::GetPrinterQueueInfo( ImplPrnQueueList* /* pList */ )
 {
 }
diff --git a/vcl/osx/salinst.cxx b/vcl/osx/salinst.cxx
index 96a7778fc27d..53ef9f4a2f12 100644
--- a/vcl/osx/salinst.cxx
+++ b/vcl/osx/salinst.cxx
@@ -923,7 +923,7 @@ void AquaSalInstance::DestroyInfoPrinter( SalInfoPrinter* 
pPrinter )
     // #i113170# may not be the main thread if called from UNO API
     SalData::ensureThreadAutoreleasePool();
 
-    delete pPrinter;
+    SalInstance::DestroyInfoPrinter(pPrinter);
 }
 
 // We need to re-encode file urls because osl_getFileURLFromSystemPath converts
diff --git a/vcl/source/app/salvtables.cxx b/vcl/source/app/salvtables.cxx
index 40eef1de9aaf..1a59acc8be4f 100644
--- a/vcl/source/app/salvtables.cxx
+++ b/vcl/source/app/salvtables.cxx
@@ -146,6 +146,8 @@ SalInstance::~SalInstance() {}
 
 comphelper::SolarMutex* SalInstance::GetYieldMutex() { return 
m_pYieldMutex.get(); }
 
+void SalInstance::DestroyInfoPrinter(SalInfoPrinter* pPrinter) { delete 
pPrinter; }
+
 sal_uInt32 SalInstance::ReleaseYieldMutex(bool all) { return 
m_pYieldMutex->release(all); }
 
 void SalInstance::AcquireYieldMutex(sal_uInt32 nCount) { 
m_pYieldMutex->acquire(nCount); }
diff --git a/vcl/unx/generic/print/genprnpsp.cxx 
b/vcl/unx/generic/print/genprnpsp.cxx
index 728600bee82c..79dbc9bab204 100644
--- a/vcl/unx/generic/print/genprnpsp.cxx
+++ b/vcl/unx/generic/print/genprnpsp.cxx
@@ -291,11 +291,6 @@ SalInfoPrinter* SalGenericInstance::CreateInfoPrinter( 
SalPrinterQueueInfo*    p
     return pPrinter;
 }
 
-void SalGenericInstance::DestroyInfoPrinter( SalInfoPrinter* pPrinter )
-{
-    delete pPrinter;
-}
-
 std::unique_ptr<SalPrinter> SalGenericInstance::CreatePrinter( SalInfoPrinter* 
pInfoPrinter )
 {
     mbPrinterInit = true;
diff --git a/vcl/win/gdi/salprn.cxx b/vcl/win/gdi/salprn.cxx
index 45cc7add34a7..80d54935a91c 100644
--- a/vcl/win/gdi/salprn.cxx
+++ b/vcl/win/gdi/salprn.cxx
@@ -1053,12 +1053,6 @@ SalInfoPrinter* WinSalInstance::CreateInfoPrinter( 
SalPrinterQueueInfo* pQueueIn
     return pPrinter;
 }
 
-void WinSalInstance::DestroyInfoPrinter( SalInfoPrinter* pPrinter )
-{
-    delete pPrinter;
-}
-
-
 WinSalInfoPrinter::WinSalInfoPrinter() :
     m_hDC(nullptr),
     m_pGraphics(nullptr),

Reply via email to