Kaydet (Commit) 6d008c9e authored tarafından Noel Grandin's avatar Noel Grandin

hold and return SalPrinter with std::unique_ptr

and remove DestroyPrinter, doesn't not anything beyond delete'ing the
object

Change-Id: I25e14b962e65a0e131fae3ff5771c82920a4e375
Reviewed-on: https://gerrit.libreoffice.org/55498Tested-by: 's avatarJenkins <ci@libreoffice.org>
Reviewed-by: 's avatarNoel Grandin <noel.grandin@collabora.co.uk>
üst 84efebb5
......@@ -182,7 +182,7 @@ class VCL_DLLPUBLIC Printer : public OutputDevice
private:
SalInfoPrinter* mpInfoPrinter;
SalPrinter* mpPrinter;
std::unique_ptr<SalPrinter> mpPrinter;
SalGraphics* mpJobGraphics;
VclPtr<Printer> mpPrev;
VclPtr<Printer> mpNext;
......
......@@ -188,18 +188,13 @@ void SvpSalInstance::DestroyInfoPrinter( SalInfoPrinter* pPrinter )
delete pPrinter;
}
SalPrinter* SvpSalInstance::CreatePrinter( SalInfoPrinter* pInfoPrinter )
std::unique_ptr<SalPrinter> SvpSalInstance::CreatePrinter( SalInfoPrinter* pInfoPrinter )
{
// create and initialize SalPrinter
SvpSalPrinter* pPrinter = new SvpSalPrinter( pInfoPrinter );
pPrinter->m_aJobData = static_cast<SvpSalInfoPrinter*>(pInfoPrinter)->m_aJobData;
return pPrinter;
}
void SvpSalInstance::DestroyPrinter( SalPrinter* pPrinter )
{
delete pPrinter;
return std::unique_ptr<SalPrinter>(pPrinter);
}
void SvpSalInstance::GetPrinterQueueInfo( ImplPrnQueueList* pList )
......
......@@ -151,8 +151,7 @@ public:
virtual SalInfoPrinter* CreateInfoPrinter( SalPrinterQueueInfo* pQueueInfo,
ImplJobSetup* pSetupData ) override;
virtual void DestroyInfoPrinter( SalInfoPrinter* pPrinter ) override;
virtual SalPrinter* CreatePrinter( SalInfoPrinter* pInfoPrinter ) override;
virtual void DestroyPrinter( SalPrinter* pPrinter ) override;
virtual std::unique_ptr<SalPrinter> CreatePrinter( SalInfoPrinter* pInfoPrinter ) override;
virtual void GetPrinterQueueInfo( ImplPrnQueueList* pList ) override;
virtual void GetPrinterQueueState( SalPrinterQueueInfo* pInfo ) override;
......
......@@ -105,8 +105,7 @@ public:
virtual SalInfoPrinter* CreateInfoPrinter( SalPrinterQueueInfo* pQueueInfo,
ImplJobSetup* pSetupData ) override;
virtual void DestroyInfoPrinter( SalInfoPrinter* pPrinter ) override;
virtual SalPrinter* CreatePrinter( SalInfoPrinter* pInfoPrinter ) override;
virtual void DestroyPrinter( SalPrinter* pPrinter ) override;
virtual std::unique_ptr<SalPrinter> CreatePrinter( SalInfoPrinter* pInfoPrinter ) override;
virtual void GetPrinterQueueInfo( ImplPrnQueueList* pList ) override;
virtual void GetPrinterQueueState( SalPrinterQueueInfo* pInfo ) override;
virtual void DeletePrinterQueueInfo( SalPrinterQueueInfo* pInfo ) override;
......
......@@ -73,8 +73,7 @@ public:
virtual SalInfoPrinter* CreateInfoPrinter(SalPrinterQueueInfo* pQueueInfo,
ImplJobSetup* pSetupData) override;
virtual void DestroyInfoPrinter(SalInfoPrinter* pPrinter) override;
virtual SalPrinter* CreatePrinter(SalInfoPrinter* pInfoPrinter) override;
virtual void DestroyPrinter(SalPrinter* pPrinter) override;
virtual std::unique_ptr<SalPrinter> CreatePrinter(SalInfoPrinter* pInfoPrinter) override;
virtual void GetPrinterQueueInfo(ImplPrnQueueList* pList) override;
virtual void GetPrinterQueueState(SalPrinterQueueInfo* pInfo) override;
virtual void DeletePrinterQueueInfo(SalPrinterQueueInfo* pInfo) override;
......
......@@ -117,8 +117,7 @@ public:
virtual SalInfoPrinter* CreateInfoPrinter( SalPrinterQueueInfo* pQueueInfo,
ImplJobSetup* pSetupData ) = 0;
virtual void DestroyInfoPrinter( SalInfoPrinter* pPrinter ) = 0;
virtual SalPrinter* CreatePrinter( SalInfoPrinter* pInfoPrinter ) = 0;
virtual void DestroyPrinter( SalPrinter* pPrinter ) = 0;
virtual std::unique_ptr<SalPrinter> CreatePrinter( SalInfoPrinter* pInfoPrinter ) = 0;
virtual void GetPrinterQueueInfo( ImplPrnQueueList* pList ) = 0;
virtual void GetPrinterQueueState( SalPrinterQueueInfo* pInfo ) = 0;
......
......@@ -60,8 +60,7 @@ public:
virtual SalInfoPrinter* CreateInfoPrinter ( SalPrinterQueueInfo* pQueueInfo,
ImplJobSetup* pSetupData ) override;
virtual void DestroyInfoPrinter ( SalInfoPrinter* pPrinter ) override;
virtual SalPrinter* CreatePrinter ( SalInfoPrinter* pInfoPrinter ) override;
virtual void DestroyPrinter ( SalPrinter* pPrinter ) override;
virtual std::unique_ptr<SalPrinter> CreatePrinter ( SalInfoPrinter* pInfoPrinter ) override;
virtual void GetPrinterQueueInfo ( ImplPrnQueueList* pList ) override;
virtual void GetPrinterQueueState ( SalPrinterQueueInfo* pInfo ) override;
virtual void DeletePrinterQueueInfo ( SalPrinterQueueInfo* pInfo ) override;
......
......@@ -197,7 +197,7 @@ public:
#endif
virtual SalSystem* CreateSalSystem() override;
virtual SalInfoPrinter* CreateInfoPrinter(SalPrinterQueueInfo* pPrinterQueueInfo, ImplJobSetup* pJobSetup) override;
virtual SalPrinter* CreatePrinter( SalInfoPrinter* pInfoPrinter ) override;
virtual std::unique_ptr<SalPrinter> CreatePrinter( SalInfoPrinter* pInfoPrinter ) override;
virtual SalMenu* CreateMenu( bool, Menu* ) override;
virtual void DestroyMenu( SalMenu* pMenu ) override;
virtual SalMenuItem* CreateMenuItem( const SalItemParams* ) override;
......
......@@ -57,8 +57,7 @@ public:
virtual SalInfoPrinter* CreateInfoPrinter( SalPrinterQueueInfo* pQueueInfo,
ImplJobSetup* pSetupData ) override;
virtual void DestroyInfoPrinter( SalInfoPrinter* pPrinter ) override;
virtual SalPrinter* CreatePrinter( SalInfoPrinter* pInfoPrinter ) override;
virtual void DestroyPrinter( SalPrinter* pPrinter ) override;
virtual std::unique_ptr<SalPrinter> CreatePrinter( SalInfoPrinter* pInfoPrinter ) override;
virtual void GetPrinterQueueInfo( ImplPrnQueueList* pList ) override;
virtual void GetPrinterQueueState( SalPrinterQueueInfo* pInfo ) override;
virtual void DeletePrinterQueueInfo( SalPrinterQueueInfo* pInfo ) override;
......
......@@ -24,9 +24,9 @@
#include "unx/gendata.hxx"
SalPrinter* SvpSalInstance::CreatePrinter( SalInfoPrinter* /* pInfoPrinter */ )
std::unique_ptr<SalPrinter> SvpSalInstance::CreatePrinter( SalInfoPrinter* /* pInfoPrinter */ )
{
return NULL;
return nullptr;
}
OUString SvpSalInstance::GetDefaultPrinter()
......@@ -39,11 +39,6 @@ GenPspGraphics *SvpSalInstance::CreatePrintGraphics()
return NULL;
}
void SvpSalInstance::DestroyPrinter( SalPrinter* pPrinter )
{
delete pPrinter;
}
void SvpSalInstance::PostPrintersChanged()
{
}
......@@ -72,9 +67,9 @@ void SvpSalInstance::DeletePrinterQueueInfo( SalPrinterQueueInfo* pInfo )
delete pInfo;
}
SalPrinter* SalGenericInstance::CreatePrinter( SalInfoPrinter* /* pInfoPrinter */ )
std::unique_ptr<SalPrinter> SalGenericInstance::CreatePrinter( SalInfoPrinter* /* pInfoPrinter */ )
{
return NULL;
return nullptr;
}
OUString SalGenericInstance::GetDefaultPrinter()
......@@ -82,11 +77,6 @@ OUString SalGenericInstance::GetDefaultPrinter()
return OUString();
}
void SalGenericInstance::DestroyPrinter( SalPrinter* pPrinter )
{
delete pPrinter;
}
void SalGenericInstance::PostPrintersChanged()
{
}
......
......@@ -795,14 +795,9 @@ void AquaSalInstance::DestroyObject( SalObject* pObject )
delete pObject;
}
SalPrinter* AquaSalInstance::CreatePrinter( SalInfoPrinter* pInfoPrinter )
std::unique_ptr<SalPrinter> AquaSalInstance::CreatePrinter( SalInfoPrinter* pInfoPrinter )
{
return new AquaSalPrinter( dynamic_cast<AquaSalInfoPrinter*>(pInfoPrinter) );
}
void AquaSalInstance::DestroyPrinter( SalPrinter* pPrinter )
{
delete pPrinter;
return std::unique_ptr<SalPrinter>(new AquaSalPrinter( dynamic_cast<AquaSalInfoPrinter*>(pInfoPrinter) ));
}
void AquaSalInstance::GetPrinterQueueInfo( ImplPrnQueueList* pList )
......
......@@ -186,17 +186,15 @@ SalInfoPrinter* Qt5Instance::CreateInfoPrinter(SalPrinterQueueInfo* pQueueInfo,
void Qt5Instance::DestroyInfoPrinter(SalInfoPrinter* pPrinter) { delete pPrinter; }
SalPrinter* Qt5Instance::CreatePrinter(SalInfoPrinter* pInfoPrinter)
std::unique_ptr<SalPrinter> Qt5Instance::CreatePrinter(SalInfoPrinter* pInfoPrinter)
{
// create and initialize SalPrinter
Qt5Printer* pPrinter = new Qt5Printer(pInfoPrinter);
pPrinter->m_aJobData = static_cast<Qt5InfoPrinter*>(pInfoPrinter)->m_aJobData;
return pPrinter;
return std::unique_ptr<SalPrinter>(pPrinter);
}
void Qt5Instance::DestroyPrinter(SalPrinter* pPrinter) { delete pPrinter; }
void Qt5Instance::GetPrinterQueueInfo(ImplPrnQueueList* pList)
{
PrinterInfoManager& rManager(PrinterInfoManager::get());
......
......@@ -1593,8 +1593,7 @@ void Printer::EndJob()
// FIXME: Do not destroy the printer asynchronously as Win95
// can't handle destroying a printer object and printing
// at the same time
ImplGetSVData()->mpDefInst->DestroyPrinter( mpPrinter );
mpPrinter = nullptr;
mpPrinter.reset();
}
}
......
......@@ -616,9 +616,8 @@ bool Printer::StartJob( const OUString& i_rJobName, std::shared_ptr<vcl::Printer
mnError = ImplSalPrinterErrorCodeToVCL(mpPrinter->GetErrorCode());
if ( !mnError )
mnError = PRINTER_GENERALERROR;
pSVData->mpDefInst->DestroyPrinter( mpPrinter );
mbPrinting = false;
mpPrinter = nullptr;
mbPrinting = false;
mpPrinter.reset();
mbJobActive = false;
GDIMetaFile aDummyFile;
......@@ -726,10 +725,8 @@ bool Printer::StartJob( const OUString& i_rJobName, std::shared_ptr<vcl::Printer
i_xController->setJobState( mnError == PRINTER_ABORT
? css::view::PrintableState_JOB_ABORTED
: css::view::PrintableState_JOB_FAILED );
if( mpPrinter )
pSVData->mpDefInst->DestroyPrinter( mpPrinter );
mbPrinting = false;
mpPrinter = nullptr;
mbPrinting = false;
mpPrinter.reset();
return false;
}
......
......@@ -392,19 +392,14 @@ void SalGenericInstance::DestroyInfoPrinter( SalInfoPrinter* pPrinter )
delete pPrinter;
}
SalPrinter* SalGenericInstance::CreatePrinter( SalInfoPrinter* pInfoPrinter )
std::unique_ptr<SalPrinter> SalGenericInstance::CreatePrinter( SalInfoPrinter* pInfoPrinter )
{
mbPrinterInit = true;
// create and initialize SalPrinter
PspSalPrinter* pPrinter = new PspSalPrinter( pInfoPrinter );
pPrinter->m_aJobData = static_cast<PspSalInfoPrinter*>(pInfoPrinter)->m_aJobData;
return pPrinter;
}
void SalGenericInstance::DestroyPrinter( SalPrinter* pPrinter )
{
delete pPrinter;
return std::unique_ptr<SalPrinter>(pPrinter);
}
void SalGenericInstance::GetPrinterQueueInfo( ImplPrnQueueList* pList )
......
......@@ -280,12 +280,12 @@ SalInfoPrinter* GtkInstance::CreateInfoPrinter( SalPrinterQueueInfo* pQueueInfo,
#endif
}
SalPrinter* GtkInstance::CreatePrinter( SalInfoPrinter* pInfoPrinter )
std::unique_ptr<SalPrinter> GtkInstance::CreatePrinter( SalInfoPrinter* pInfoPrinter )
{
EnsureInit();
#if defined ENABLE_GTK_PRINT || GTK_CHECK_VERSION(3,0,0)
mbPrinterInit = true;
return new GtkSalPrinter( pInfoPrinter );
return std::unique_ptr<SalPrinter>(new GtkSalPrinter( pInfoPrinter ));
#else
return Superclass_t::CreatePrinter( pInfoPrinter );
#endif
......
......@@ -1279,16 +1279,11 @@ void WinSalInfoPrinter::GetPageInfo( const ImplJobSetup*,
}
SalPrinter* WinSalInstance::CreatePrinter( SalInfoPrinter* pInfoPrinter )
std::unique_ptr<SalPrinter> WinSalInstance::CreatePrinter( SalInfoPrinter* pInfoPrinter )
{
WinSalPrinter* pPrinter = new WinSalPrinter;
pPrinter->mpInfoPrinter = static_cast<WinSalInfoPrinter*>(pInfoPrinter);
return pPrinter;
}
void WinSalInstance::DestroyPrinter( SalPrinter* pPrinter )
{
delete pPrinter;
return std::unique_ptr<SalPrinter>(pPrinter);
}
BOOL CALLBACK SalPrintAbortProc( HDC hPrnDC, int /* nError */ )
......
Markdown is supported
0% or
You are about to add 0 people to the discussion. Proceed with caution.
Finish editing this message first!
Please register or to comment