From 478f3f019f780ae6f2464ea7ccd7a52a0ea9361c Mon Sep 17 00:00:00 2001 From: Noel Grandin Date: Tue, 30 Oct 2018 10:48:22 +0200 Subject: loplugin:useuniqueptr in SalFrame::PostEvent Change-Id: Ib066b1d6df90f330f2f93ec639bd7bc59a08c024 Reviewed-on: https://gerrit.libreoffice.org/62507 Tested-by: Jenkins Reviewed-by: Noel Grandin --- vcl/source/app/svapp.cxx | 17 +++++++++-------- vcl/source/window/event.cxx | 12 +++++------- 2 files changed, 14 insertions(+), 15 deletions(-) (limited to 'vcl/source') diff --git a/vcl/source/app/svapp.cxx b/vcl/source/app/svapp.cxx index fb8ec12d28d7..7c1219795d6b 100644 --- a/vcl/source/app/svapp.cxx +++ b/vcl/source/app/svapp.cxx @@ -948,7 +948,11 @@ void Application::RemoveMouseAndKeyEvents( vcl::Window* pWin ) ImplSVEvent * Application::PostUserEvent( const Link& rLink, void* pCaller, bool bReferenceLink ) { - ImplSVEvent* pSVEvent = new ImplSVEvent; + vcl::Window* pDefWindow = ImplGetDefaultWindow(); + if ( pDefWindow == nullptr ) + return nullptr; + + std::unique_ptr pSVEvent(new ImplSVEvent); pSVEvent->mpData = pCaller; pSVEvent->maLink = rLink; pSVEvent->mpWindow = nullptr; @@ -963,13 +967,10 @@ ImplSVEvent * Application::PostUserEvent( const Link& rLink, void* p pSVEvent->mpInstanceRef = static_cast(rLink.GetInstance()); } - vcl::Window* pDefWindow = ImplGetDefaultWindow(); - if ( pDefWindow == nullptr || !pDefWindow->ImplGetFrame()->PostEvent( pSVEvent ) ) - { - delete pSVEvent; - pSVEvent = nullptr; - } - return pSVEvent; + auto pTmpEvent = pSVEvent.get(); + if (!pDefWindow->ImplGetFrame()->PostEvent( std::move(pSVEvent) )) + return nullptr; + return pTmpEvent; } void Application::RemoveUserEvent( ImplSVEvent * nUserEvent ) diff --git a/vcl/source/window/event.cxx b/vcl/source/window/event.cxx index 81a0558e3321..399dddd3abaa 100644 --- a/vcl/source/window/event.cxx +++ b/vcl/source/window/event.cxx @@ -321,7 +321,7 @@ void Window::RemoveChildEventListener( const Link& rEventL ImplSVEvent * Window::PostUserEvent( const Link& rLink, void* pCaller, bool bReferenceLink ) { - ImplSVEvent* pSVEvent = new ImplSVEvent; + std::unique_ptr pSVEvent(new ImplSVEvent); pSVEvent->mpData = pCaller; pSVEvent->maLink = rLink; pSVEvent->mpWindow = this; @@ -335,12 +335,10 @@ ImplSVEvent * Window::PostUserEvent( const Link& rLink, void* pCalle pSVEvent->mpInstanceRef = static_cast(rLink.GetInstance()); } - if ( !mpWindowImpl->mpFrame->PostEvent( pSVEvent ) ) - { - delete pSVEvent; - pSVEvent = nullptr; - } - return pSVEvent; + auto pTmpEvent = pSVEvent.get(); + if (!mpWindowImpl->mpFrame->PostEvent( std::move(pSVEvent) )) + return nullptr; + return pTmpEvent; } void Window::RemoveUserEvent( ImplSVEvent * nUserEvent ) -- cgit