summaryrefslogtreecommitdiff
path: root/vcl/source
diff options
context:
space:
mode:
authorNoel Grandin <noel.grandin@collabora.co.uk>2018-10-30 10:48:22 +0200
committerNoel Grandin <noel.grandin@collabora.co.uk>2018-11-01 06:45:13 +0100
commit478f3f019f780ae6f2464ea7ccd7a52a0ea9361c (patch)
treee81f14953311213ec3ada5e2c566b436cd918528 /vcl/source
parent9375e542f23fa35e02185996b8113dcc9ab29bcf (diff)
loplugin:useuniqueptr in SalFrame::PostEvent
Change-Id: Ib066b1d6df90f330f2f93ec639bd7bc59a08c024 Reviewed-on: https://gerrit.libreoffice.org/62507 Tested-by: Jenkins Reviewed-by: Noel Grandin <noel.grandin@collabora.co.uk>
Diffstat (limited to 'vcl/source')
-rw-r--r--vcl/source/app/svapp.cxx17
-rw-r--r--vcl/source/window/event.cxx12
2 files changed, 14 insertions, 15 deletions
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<void*,void>& rLink, void* pCaller,
bool bReferenceLink )
{
- ImplSVEvent* pSVEvent = new ImplSVEvent;
+ vcl::Window* pDefWindow = ImplGetDefaultWindow();
+ if ( pDefWindow == nullptr )
+ return nullptr;
+
+ std::unique_ptr<ImplSVEvent> pSVEvent(new ImplSVEvent);
pSVEvent->mpData = pCaller;
pSVEvent->maLink = rLink;
pSVEvent->mpWindow = nullptr;
@@ -963,13 +967,10 @@ ImplSVEvent * Application::PostUserEvent( const Link<void*,void>& rLink, void* p
pSVEvent->mpInstanceRef = static_cast<vcl::Window *>(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<VclWindowEvent&,void>& rEventL
ImplSVEvent * Window::PostUserEvent( const Link<void*,void>& rLink, void* pCaller, bool bReferenceLink )
{
- ImplSVEvent* pSVEvent = new ImplSVEvent;
+ std::unique_ptr<ImplSVEvent> pSVEvent(new ImplSVEvent);
pSVEvent->mpData = pCaller;
pSVEvent->maLink = rLink;
pSVEvent->mpWindow = this;
@@ -335,12 +335,10 @@ ImplSVEvent * Window::PostUserEvent( const Link<void*,void>& rLink, void* pCalle
pSVEvent->mpInstanceRef = static_cast<vcl::Window *>(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 )