From 61aa97c1be23398acb7e9160763b621f63c13d88 Mon Sep 17 00:00:00 2001 From: Michael Meeks Date: Tue, 3 Jan 2017 22:00:32 +0000 Subject: vcl: hold VclPtrs to avoid possible lifecycle related crashers. Makes code on common EnableInput crash reporter trace safer. Change-Id: Ibcf218d0d2460383d12e19f48aaf0ab08e541532 Reviewed-on: https://gerrit.libreoffice.org/32706 Tested-by: Jenkins Reviewed-by: Michael Meeks --- vcl/source/window/window.cxx | 26 +++++++++++++------------- 1 file changed, 13 insertions(+), 13 deletions(-) (limited to 'vcl') diff --git a/vcl/source/window/window.cxx b/vcl/source/window/window.cxx index e3c102ba7be3..bd1401bb04ab 100644 --- a/vcl/source/window/window.cxx +++ b/vcl/source/window/window.cxx @@ -1413,7 +1413,7 @@ bool Window::ImplUpdatePos() mnOutOffY = mpWindowImpl->mnY + pParent->mnOutOffY; } - vcl::Window* pChild = mpWindowImpl->mpFirstChild; + VclPtr< vcl::Window > pChild = mpWindowImpl->mpFirstChild; while ( pChild ) { if ( pChild->ImplUpdatePos() ) @@ -1432,7 +1432,7 @@ void Window::ImplUpdateSysObjPos() if ( mpWindowImpl->mpSysObj ) mpWindowImpl->mpSysObj->SetPosSize( mnOutOffX, mnOutOffY, mnOutWidth, mnOutHeight ); - vcl::Window* pChild = mpWindowImpl->mpFirstChild; + VclPtr< vcl::Window > pChild = mpWindowImpl->mpFirstChild; while ( pChild ) { pChild->ImplUpdateSysObjPos(); @@ -1962,7 +1962,7 @@ bool Window::IsLocked() const if ( mpWindowImpl->mnLockCount != 0 ) return true; - vcl::Window* pChild = mpWindowImpl->mpFirstChild; + VclPtr pChild = mpWindowImpl->mpFirstChild; while ( pChild ) { if ( pChild->IsLocked() ) @@ -2161,7 +2161,7 @@ void Window::CollectChildren(::std::vector& rAllChildren ) { rAllChildren.push_back( this ); - vcl::Window* pChild = mpWindowImpl->mpFirstChild; + VclPtr< vcl::Window > pChild = mpWindowImpl->mpFirstChild; while ( pChild ) { pChild->CollectChildren( rAllChildren ); @@ -2475,7 +2475,7 @@ void Window::Enable( bool bEnable, bool bChild ) if ( bChild ) { - vcl::Window* pChild = mpWindowImpl->mpFirstChild; + VclPtr< vcl::Window > pChild = mpWindowImpl->mpFirstChild; while ( pChild ) { pChild->Enable( bEnable, bChild ); @@ -2491,7 +2491,7 @@ void Window::SetCallHandlersOnInputDisabled( bool bCall ) { mpWindowImpl->mbCallHandlersDuringInputDisabled = bCall; - vcl::Window* pChild = mpWindowImpl->mpFirstChild; + VclPtr< vcl::Window > pChild = mpWindowImpl->mpFirstChild; while ( pChild ) { pChild->SetCallHandlersOnInputDisabled( bCall ); @@ -2548,7 +2548,7 @@ void Window::EnableInput( bool bEnable, bool bChild ) if ( bChild ) { - vcl::Window* pChild = mpWindowImpl->mpFirstChild; + VclPtr< vcl::Window > pChild = mpWindowImpl->mpFirstChild; while ( pChild ) { pChild->EnableInput( bEnable, bChild ); @@ -2647,7 +2647,7 @@ void Window::AlwaysEnableInput( bool bAlways, bool bChild ) if ( bChild ) { - vcl::Window* pChild = mpWindowImpl->mpFirstChild; + VclPtr< vcl::Window > pChild = mpWindowImpl->mpFirstChild; while ( pChild ) { pChild->AlwaysEnableInput( bAlways, bChild ); @@ -2676,7 +2676,7 @@ void Window::AlwaysDisableInput( bool bAlways, bool bChild ) if ( bChild ) { - vcl::Window* pChild = mpWindowImpl->mpFirstChild; + VclPtr< vcl::Window > pChild = mpWindowImpl->mpFirstChild; while ( pChild ) { pChild->AlwaysDisableInput( bAlways, bChild ); @@ -3420,7 +3420,7 @@ void Window::DrawSelectionBackground( const Rectangle& rRect, bool Window::IsScrollable() const { // check for scrollbars - vcl::Window *pChild = mpWindowImpl->mpFirstChild; + VclPtr< vcl::Window > pChild = mpWindowImpl->mpFirstChild; while( pChild ) { if( pChild->GetType() == WINDOW_SCROLLBAR ) @@ -3493,14 +3493,14 @@ bool Window::HasActiveChildFrame() if( pFrameWin != mpWindowImpl->mpFrameWindow ) { bool bDecorated = false; - vcl::Window *pChildFrame = pFrameWin->ImplGetWindow(); + VclPtr< vcl::Window > pChildFrame = pFrameWin->ImplGetWindow(); // #i15285# unfortunately WB_MOVEABLE is the same as WB_TABSTOP which can // be removed for ToolBoxes to influence the keyboard accessibility // thus WB_MOVEABLE is no indicator for decoration anymore // but FloatingWindows carry this information in their TitleType... // TODO: avoid duplicate WinBits !!! if( pChildFrame && pChildFrame->ImplIsFloatingWindow() ) - bDecorated = static_cast(pChildFrame)->GetTitleType() != FloatWinTitleType::NONE; + bDecorated = static_cast(pChildFrame.get())->GetTitleType() != FloatWinTitleType::NONE; if( bDecorated || (pFrameWin->mpWindowImpl->mnStyle & (WB_MOVEABLE | WB_SIZEABLE) ) ) if( pChildFrame && pChildFrame->IsVisible() && pChildFrame->IsActive() ) { @@ -3542,7 +3542,7 @@ void Window::EnableNativeWidget( bool bEnable ) } // push down, useful for compound controls - vcl::Window *pChild = mpWindowImpl->mpFirstChild; + VclPtr< vcl::Window > pChild = mpWindowImpl->mpFirstChild; while( pChild ) { pChild->EnableNativeWidget( bEnable ); -- cgit