Kaydet (Commit) 338beca1 authored tarafından Caolán McNamara's avatar Caolán McNamara

coverity#440750 Dereference after null check

Change-Id: I155e9fabaf26df71758c4b8da92664a35956accb
üst 5071777a
...@@ -287,16 +287,15 @@ bool ImplHandleMouseEvent( Window* pWindow, sal_uInt16 nSVEvent, bool bMouseLeav ...@@ -287,16 +287,15 @@ bool ImplHandleMouseEvent( Window* pWindow, sal_uInt16 nSVEvent, bool bMouseLeav
{ {
ImplSVData* pSVData = ImplGetSVData(); ImplSVData* pSVData = ImplGetSVData();
Point aMousePos( nX, nY ); Point aMousePos( nX, nY );
Window* pChild; Window* pChild(NULL);
bool nRet; bool bRet(false);
sal_uInt16 nClicks; sal_uInt16 nClicks(0);
ImplFrameData* pWinFrameData = pWindow->ImplGetFrameData(); ImplFrameData* pWinFrameData = pWindow->ImplGetFrameData();
sal_uInt16 nOldCode = pWinFrameData->mnMouseCode; sal_uInt16 nOldCode = pWinFrameData->mnMouseCode;
// we need a mousemove event, befor we get a mousebuttondown or a // we need a mousemove event, befor we get a mousebuttondown or a
// mousebuttonup event // mousebuttonup event
if ( (nSVEvent == EVENT_MOUSEBUTTONDOWN) || if ( (nSVEvent == EVENT_MOUSEBUTTONDOWN) || (nSVEvent == EVENT_MOUSEBUTTONUP) )
(nSVEvent == EVENT_MOUSEBUTTONUP) )
{ {
if ( (nSVEvent == EVENT_MOUSEBUTTONUP) && pSVData->maHelpData.mbExtHelpMode ) if ( (nSVEvent == EVENT_MOUSEBUTTONUP) && pSVData->maHelpData.mbExtHelpMode )
Help::EndExtHelp(); Help::EndExtHelp();
...@@ -594,6 +593,8 @@ bool ImplHandleMouseEvent( Window* pWindow, sal_uInt16 nSVEvent, bool bMouseLeav ...@@ -594,6 +593,8 @@ bool ImplHandleMouseEvent( Window* pWindow, sal_uInt16 nSVEvent, bool bMouseLeav
return false; return false;
} }
else else
{
if (pChild)
{ {
// mouse click // mouse click
if ( nSVEvent == EVENT_MOUSEBUTTONDOWN ) if ( nSVEvent == EVENT_MOUSEBUTTONDOWN )
...@@ -631,12 +632,16 @@ bool ImplHandleMouseEvent( Window* pWindow, sal_uInt16 nSVEvent, bool bMouseLeav ...@@ -631,12 +632,16 @@ bool ImplHandleMouseEvent( Window* pWindow, sal_uInt16 nSVEvent, bool bMouseLeav
pChild->ImplGetFrameData()->mnMouseDownTime = nMsgTime; pChild->ImplGetFrameData()->mnMouseDownTime = nMsgTime;
} }
nClicks = pChild->ImplGetFrameData()->mnClickCount; nClicks = pChild->ImplGetFrameData()->mnClickCount;
}
pSVData->maAppData.mnLastInputTime = Time::GetSystemTicks(); pSVData->maAppData.mnLastInputTime = Time::GetSystemTicks();
} }
DBG_ASSERT( pChild, "ImplHandleMouseEvent: pChild == NULL" ); DBG_ASSERT( pChild, "ImplHandleMouseEvent: pChild == NULL" );
if (!pChild)
return false;
// create mouse event // create mouse event
Point aChildPos = pChild->ImplFrameToOutput( aMousePos ); Point aChildPos = pChild->ImplFrameToOutput( aMousePos );
MouseEvent aMEvt( aChildPos, nClicks, nMode, nCode, nCode ); MouseEvent aMEvt( aChildPos, nClicks, nMode, nCode, nCode );
...@@ -668,6 +673,9 @@ bool ImplHandleMouseEvent( Window* pWindow, sal_uInt16 nSVEvent, bool bMouseLeav ...@@ -668,6 +673,9 @@ bool ImplHandleMouseEvent( Window* pWindow, sal_uInt16 nSVEvent, bool bMouseLeav
bool bCallHelpRequest = true; bool bCallHelpRequest = true;
DBG_ASSERT( pChild, "ImplHandleMouseEvent: pChild is NULL" ); DBG_ASSERT( pChild, "ImplHandleMouseEvent: pChild is NULL" );
if (!pChild)
return false;
ImplDelData aDelData; ImplDelData aDelData;
NotifyEvent aNEvt( nSVEvent, pChild, &aMEvt ); NotifyEvent aNEvt( nSVEvent, pChild, &aMEvt );
pChild->ImplAddDel( &aDelData ); pChild->ImplAddDel( &aDelData );
...@@ -685,10 +693,10 @@ bool ImplHandleMouseEvent( Window* pWindow, sal_uInt16 nSVEvent, bool bMouseLeav ...@@ -685,10 +693,10 @@ bool ImplHandleMouseEvent( Window* pWindow, sal_uInt16 nSVEvent, bool bMouseLeav
} }
if ( ImplCallPreNotify( aNEvt ) || aDelData.IsDead() ) if ( ImplCallPreNotify( aNEvt ) || aDelData.IsDead() )
nRet = true; bRet = true;
else else
{ {
nRet = false; bRet = false;
if ( nSVEvent == EVENT_MOUSEMOVE ) if ( nSVEvent == EVENT_MOUSEMOVE )
{ {
if ( pSVData->maWinData.mpTrackWin ) if ( pSVData->maWinData.mpTrackWin )
...@@ -703,7 +711,7 @@ bool ImplHandleMouseEvent( Window* pWindow, sal_uInt16 nSVEvent, bool bMouseLeav ...@@ -703,7 +711,7 @@ bool ImplHandleMouseEvent( Window* pWindow, sal_uInt16 nSVEvent, bool bMouseLeav
pSVData->maWinData.mpTrackTimer->Start(); pSVData->maWinData.mpTrackTimer->Start();
} }
bCallHelpRequest = false; bCallHelpRequest = false;
nRet = true; bRet = true;
} }
else else
{ {
...@@ -730,7 +738,7 @@ bool ImplHandleMouseEvent( Window* pWindow, sal_uInt16 nSVEvent, bool bMouseLeav ...@@ -730,7 +738,7 @@ bool ImplHandleMouseEvent( Window* pWindow, sal_uInt16 nSVEvent, bool bMouseLeav
{ {
if ( pSVData->maWinData.mpTrackWin && if ( pSVData->maWinData.mpTrackWin &&
!(pSVData->maWinData.mnTrackFlags & STARTTRACK_MOUSEBUTTONDOWN) ) !(pSVData->maWinData.mnTrackFlags & STARTTRACK_MOUSEBUTTONDOWN) )
nRet = true; bRet = true;
else else
{ {
pChild->ImplGetWindowImpl()->mbMouseButtonDown = false; pChild->ImplGetWindowImpl()->mbMouseButtonDown = false;
...@@ -742,7 +750,7 @@ bool ImplHandleMouseEvent( Window* pWindow, sal_uInt16 nSVEvent, bool bMouseLeav ...@@ -742,7 +750,7 @@ bool ImplHandleMouseEvent( Window* pWindow, sal_uInt16 nSVEvent, bool bMouseLeav
if ( pSVData->maWinData.mpTrackWin ) if ( pSVData->maWinData.mpTrackWin )
{ {
pChild->EndTracking(); pChild->EndTracking();
nRet = true; bRet = true;
} }
else else
{ {
...@@ -767,19 +775,19 @@ bool ImplHandleMouseEvent( Window* pWindow, sal_uInt16 nSVEvent, bool bMouseLeav ...@@ -767,19 +775,19 @@ bool ImplHandleMouseEvent( Window* pWindow, sal_uInt16 nSVEvent, bool bMouseLeav
{ {
if ( bCallHelpRequest && !pSVData->maHelpData.mbKeyboardHelp ) if ( bCallHelpRequest && !pSVData->maHelpData.mbKeyboardHelp )
ImplHandleMouseHelpRequest( pChild, pChild->OutputToScreenPixel( aMEvt.GetPosPixel() ) ); ImplHandleMouseHelpRequest( pChild, pChild->OutputToScreenPixel( aMEvt.GetPosPixel() ) );
nRet = true; bRet = true;
} }
else if ( !nRet ) else if ( !bRet )
{ {
if ( nSVEvent == EVENT_MOUSEBUTTONDOWN ) if ( nSVEvent == EVENT_MOUSEBUTTONDOWN )
{ {
if ( !pChild->ImplGetWindowImpl()->mbMouseButtonDown ) if ( !pChild->ImplGetWindowImpl()->mbMouseButtonDown )
nRet = true; bRet = true;
} }
else else
{ {
if ( !pChild->ImplGetWindowImpl()->mbMouseButtonUp ) if ( !pChild->ImplGetWindowImpl()->mbMouseButtonUp )
nRet = true; bRet = true;
} }
} }
...@@ -796,14 +804,14 @@ bool ImplHandleMouseEvent( Window* pWindow, sal_uInt16 nSVEvent, bool bMouseLeav ...@@ -796,14 +804,14 @@ bool ImplHandleMouseEvent( Window* pWindow, sal_uInt16 nSVEvent, bool bMouseLeav
if ( !bDrag ) if ( !bDrag )
{ {
// Command-Events // Command-Events
if ( /*!nRet &&*/ (nClicks == 1) && (nSVEvent == EVENT_MOUSEBUTTONDOWN) && if ( /*!bRet &&*/ (nClicks == 1) && (nSVEvent == EVENT_MOUSEBUTTONDOWN) &&
(nCode == MOUSE_MIDDLE) ) (nCode == MOUSE_MIDDLE) )
{ {
sal_uInt16 nMiddleAction = pChild->GetSettings().GetMouseSettings().GetMiddleButtonAction(); sal_uInt16 nMiddleAction = pChild->GetSettings().GetMouseSettings().GetMiddleButtonAction();
if ( nMiddleAction == MOUSE_MIDDLE_AUTOSCROLL ) if ( nMiddleAction == MOUSE_MIDDLE_AUTOSCROLL )
nRet = !ImplCallCommand( pChild, COMMAND_STARTAUTOSCROLL, NULL, true, &aChildPos ); bRet = !ImplCallCommand( pChild, COMMAND_STARTAUTOSCROLL, NULL, true, &aChildPos );
else if ( nMiddleAction == MOUSE_MIDDLE_PASTESELECTION ) else if ( nMiddleAction == MOUSE_MIDDLE_PASTESELECTION )
nRet = !ImplCallCommand( pChild, COMMAND_PASTESELECTION, NULL, true, &aChildPos ); bRet = !ImplCallCommand( pChild, COMMAND_PASTESELECTION, NULL, true, &aChildPos );
} }
else else
{ {
...@@ -836,14 +844,14 @@ bool ImplHandleMouseEvent( Window* pWindow, sal_uInt16 nSVEvent, bool bMouseLeav ...@@ -836,14 +844,14 @@ bool ImplHandleMouseEvent( Window* pWindow, sal_uInt16 nSVEvent, bool bMouseLeav
Application::PostUserEvent( Link( pEv, ContextMenuEventLink ) ); Application::PostUserEvent( Link( pEv, ContextMenuEventLink ) );
} }
else else
nRet = ! ImplCallCommand( pChild, COMMAND_CONTEXTMENU, NULL, true, &aChildPos ); bRet = ! ImplCallCommand( pChild, COMMAND_CONTEXTMENU, NULL, true, &aChildPos );
} }
} }
} }
} }
} }
return nRet; return bRet;
} }
// ----------------------------------------------------------------------- // -----------------------------------------------------------------------
......
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