diff --git a/extensions/source/update/check/updatecheckjob.cxx b/extensions/source/update/check/updatecheckjob.cxx index cd52e1f02063..0ba47146b27d 100644 --- a/extensions/source/update/check/updatecheckjob.cxx +++ b/extensions/source/update/check/updatecheckjob.cxx @@ -68,7 +68,11 @@ class UpdateCheckJob : public: - UpdateCheckJob(const uno::Reference& xContext); + UpdateCheckJob( + css::uno::Reference const & context, + css::uno::Reference const & desktop): + m_xContext(context), m_xDesktop(desktop) + {} static uno::Sequence< OUString > getServiceNames(); static OUString getImplName(); @@ -150,19 +154,6 @@ void InitUpdateCheckJobThread::setTerminating() { m_aCondition.set(); } -//------------------------------------------------------------------------------ -//------------------------------------------------------------------------------ -//------------------------------------------------------------------------------ - -UpdateCheckJob::UpdateCheckJob( const uno::Reference& xContext ) : - m_xContext(xContext) -{ - m_xDesktop.set( frame::Desktop::create(xContext) ); - m_xDesktop->addTerminateListener( this ); -} - -//------------------------------------------------------------------------------ - UpdateCheckJob::~UpdateCheckJob() { } @@ -330,7 +321,11 @@ void SAL_CALL UpdateCheckJob::notifyTermination( lang::EventObject const & ) static uno::Reference SAL_CALL createJobInstance(const uno::Reference& xContext) { - return *new UpdateCheckJob(xContext); + css::uno::Reference desktop( + css::frame::Desktop::create(xContext)); + rtl::Reference job(new UpdateCheckJob(xContext, desktop)); + desktop->addTerminateListener(job.get()); + return static_cast(job.get()); } //------------------------------------------------------------------------------