From 60fe730339d97ce092453353929e97862c5cb719 Mon Sep 17 00:00:00 2001 From: Julian Smart Date: Thu, 13 Jan 2000 09:40:24 +0000 Subject: [PATCH] Removed ::UpdateWindow from scrolwin.cpp; corrected default extension appending; corrected bug in dcprint.cpp that tried to access deleted memory git-svn-id: https://svn.wxwidgets.org/svn/wx/wxWidgets/trunk@5369 c3d73ce0-8a6f-49c7-b76d-6d57e0e08775 --- distrib/msw/tmake/b32.t | 1 + docs/bugs.txt | 22 ++++++++++++++++++++++ src/generic/scrolwin.cpp | 4 ++-- src/msw/dcprint.cpp | 7 ++++--- src/msw/filedlg.cpp | 2 +- src/msw/makefile.b32 | 1 + 6 files changed, 31 insertions(+), 6 deletions(-) diff --git a/distrib/msw/tmake/b32.t b/distrib/msw/tmake/b32.t index def9fe1333..c81b74c2f7 100644 --- a/distrib/msw/tmake/b32.t +++ b/distrib/msw/tmake/b32.t @@ -325,6 +325,7 @@ $(CFG): makefile.b32 -H=$(WXDIR)\src\msw\wx32.csm -3 -d +-a1 # byte alignment -R- -X -w-par diff --git a/docs/bugs.txt b/docs/bugs.txt index 4352dc8587..db2b75abb0 100644 --- a/docs/bugs.txt +++ b/docs/bugs.txt @@ -326,6 +326,28 @@ WORKAROUND: Change the declaration to void * or long visitor_email_address: rjl@zk3.dec.com wxWINDOWS+VERSION: 2.1.10 +DATE+FIXED: 12/01/2000 +DATE+IDENTIFIED: 12/01/2000 +DETAILS: When I try to Print or create +wxPrintPreview object in the +printing sample, it fails. +The reason is the wxGetDefaultDeviceName +function in file msw/dcprint.cpp. In line 253 +the memory is freed, and then +the pointer to the freed memory +is used. +FIXED+BY: Alexey V. Exarevsky (patched into wxWin 12/1/2000 by JACS) +IDENTIFIED+BY: Alexey V. Exarevsky +PLATFORMS: wxMSW, compiled by VC++ 6.0 +SHORT+DESCRIPTION: Print/Print preveiw to default printer in NT +Submit: Submit +WORKAROUND: I have moved lines that free +memory below the lines that +use lpszDeviceName and +lpszPortName +visitor_email_address: ave@relex.ru +wxWINDOWS+VERSION: 2.1.11 + ---------------------------END OF BUGLIST------------------------- diff --git a/src/generic/scrolwin.cpp b/src/generic/scrolwin.cpp index a582eb959f..caec770609 100644 --- a/src/generic/scrolwin.cpp +++ b/src/generic/scrolwin.cpp @@ -157,8 +157,8 @@ void wxScrolledWindow::SetScrollbars (int pixelsPerUnitX, int pixelsPerUnitY, m_targetWindow->Refresh(); #ifdef __WXMSW__ - // Necessary? - UpdateWindow ((HWND) m_targetWindow->GetHWND()); + // Necessary? + // UpdateWindow ((HWND) m_targetWindow->GetHWND()); #endif #ifdef __WXMAC__ m_targetWindow->MacUpdateImmediately() ; diff --git a/src/msw/dcprint.cpp b/src/msw/dcprint.cpp index 05daa7826d..35c9be54be 100644 --- a/src/msw/dcprint.cpp +++ b/src/msw/dcprint.cpp @@ -247,12 +247,13 @@ static bool wxGetDefaultDeviceName(wxString& deviceName, wxString& portName) lpszDriverName = (LPSTR)lpDevNames + lpDevNames->wDriverOffset; lpszDeviceName = (LPSTR)lpDevNames + lpDevNames->wDeviceOffset; lpszPortName = (LPSTR)lpDevNames + lpDevNames->wOutputOffset; - GlobalUnlock(pd.hDevNames); - GlobalFree(pd.hDevNames); - pd.hDevNames=NULL; deviceName = lpszDeviceName; portName = lpszPortName; + + GlobalUnlock(pd.hDevNames); + GlobalFree(pd.hDevNames); + pd.hDevNames=NULL; } if (pd.hDevMode) diff --git a/src/msw/filedlg.cpp b/src/msw/filedlg.cpp index 0bc3273b38..17612e6fca 100644 --- a/src/msw/filedlg.cpp +++ b/src/msw/filedlg.cpp @@ -356,7 +356,7 @@ int wxFileDialog::ShowModal() m_filterIndex = (int)of.nFilterIndex - 1; - if ( of.nFileExtension && fileNameBuffer[ of.nFileExtension-1] != wxT('.') ) + if ( !of.nFileExtension || (of.nFileExtension && fileNameBuffer[ of.nFileExtension-1] != wxT('.')) ) { // user has typed an filename // without an extension: diff --git a/src/msw/makefile.b32 b/src/msw/makefile.b32 index 5a93432c83..b8fb7f9e5e 100644 --- a/src/msw/makefile.b32 +++ b/src/msw/makefile.b32 @@ -913,6 +913,7 @@ $(CFG): makefile.b32 -H=$(WXDIR)\src\msw\wx32.csm -3 -d +-a1 # byte alignment -R- -X -w-par -- 2.45.2