documentmap: ViewZoneDlg: fixed uninitialized variables

The real problem is `_viewZoneCanvas`, which can be used unitialized by `drawZone`.
This commit is contained in:
milipili 2015-05-30 23:34:58 +02:00
parent 0ce219566a
commit 9f5f8d13c5
2 changed files with 12 additions and 7 deletions

View File

@ -440,10 +440,14 @@ BOOL CALLBACK ViewZoneDlg::run_dlgProc(UINT message, WPARAM wParam, LPARAM lPara
case WM_INITDIALOG :
{
_viewZoneCanvas = ::GetDlgItem(_hSelf, IDC_VIEWZONECANVAS);
if (NULL != _viewZoneCanvas)
{
::SetWindowLongPtrW(_viewZoneCanvas, GWL_USERDATA, reinterpret_cast<LONG>(this));
_canvasDefaultProc = reinterpret_cast<WNDPROC>(::SetWindowLongPtr(_viewZoneCanvas, GWL_WNDPROC, reinterpret_cast<LONG>(canvasStaticProc)));
return TRUE;
}
break;
}
case WM_LBUTTONDOWN:
{
@ -466,7 +470,7 @@ BOOL CALLBACK ViewZoneDlg::run_dlgProc(UINT message, WPARAM wParam, LPARAM lPara
case WM_SIZE:
{
if (_viewZoneCanvas)
if (NULL != _viewZoneCanvas)
{
int width = LOWORD(lParam);
int height = HIWORD(lParam);
@ -479,8 +483,8 @@ BOOL CALLBACK ViewZoneDlg::run_dlgProc(UINT message, WPARAM wParam, LPARAM lPara
{
//Have to perform the scroll first, because the first/last line do not get updated untill after the scroll has been parsed
::SendMessage(_hParent, DOCUMENTMAP_MOUSEWHEEL, wParam, lParam);
}
return TRUE;
}
case WM_DESTROY :
{

View File

@ -53,7 +53,7 @@ enum moveMode {
class ViewZoneDlg : public StaticDialog
{
public :
ViewZoneDlg() : StaticDialog() {};
ViewZoneDlg() : StaticDialog(), _viewZoneCanvas(NULL), _canvasDefaultProc(nullptr), _higherY(0), _lowerY(0) {}
void doDialog();
@ -63,6 +63,7 @@ public :
void drawZone(long hY, long lY) {
_higherY = hY;
_lowerY = lY;
if (NULL != _viewZoneCanvas)
::InvalidateRect(_viewZoneCanvas, NULL, TRUE);
};