2008-07-02 14:35 UTC-0800 Pritpal Bedi (pritpal@vouchcac.com)
* contrib/gtwvg/gtwvg.c
* source/rtl/gtwvt/gtwvt.c
! Changed the wat EXIT procedure works.
; The change is provided by Ron Pinkas so I have implemented as is.
Before also I was not finding any problems on Harbour but
appln was GPFing on Exit with GTWVG.
; TOCHECK: Viktor see if it resolves the EXIT problem you are reporting
This commit is contained in:
@@ -8,6 +8,15 @@
|
||||
2008-12-31 13:59 UTC+0100 Foo Bar <foo.bar@foobar.org>
|
||||
*/
|
||||
|
||||
2008-07-02 14:35 UTC-0800 Pritpal Bedi (pritpal@vouchcac.com)
|
||||
* contrib/gtwvg/gtwvg.c
|
||||
* source/rtl/gtwvt/gtwvt.c
|
||||
! Changed the wat EXIT procedure works.
|
||||
; The change is provided by Ron Pinkas so I have implemented as is.
|
||||
Before also I was not finding any problems on Harbour but
|
||||
appln was GPFing on Exit with GTWVG.
|
||||
; TOCHECK: Viktor see if it resolves the EXIT problem you are reporting
|
||||
|
||||
2008-07-02 22:42 UTC+0200 Viktor Szakats (harbour.01 syenar hu)
|
||||
* contrib/hbsqlit3/Makefile
|
||||
* contrib/Makefile
|
||||
|
||||
@@ -170,12 +170,41 @@ static BOOL hb_gt_wvt_Alloc( PHB_GTWVT pWVT )
|
||||
|
||||
static void hb_gt_wvt_Free( PHB_GTWVT pWVT )
|
||||
{
|
||||
int iIndex;
|
||||
|
||||
--s_wvtCount;
|
||||
s_wvtWindows[pWVT->iHandle] = NULL;
|
||||
|
||||
if( pWVT->pszSelectCopy )
|
||||
hb_xfree( pWVT->pszSelectCopy );
|
||||
|
||||
// Detach PRG callback
|
||||
pWVT->pSymWVT_PAINT = NULL;
|
||||
pWVT->pSymWVT_SETFOCUS = NULL;
|
||||
pWVT->pSymWVT_KILLFOCUS = NULL;
|
||||
pWVT->pSymWVT_MOUSE = NULL;
|
||||
pWVT->pSymWVT_TIMER = NULL;
|
||||
pWVT->pSymWVT_KEY = NULL;
|
||||
for ( iIndex = 0; iIndex < WVT_DLGML_MAX; iIndex++ )
|
||||
{
|
||||
if ( pWVT->pFunc[ iIndex ] != NULL && pWVT->iType[ iIndex ] == 2 )
|
||||
{
|
||||
hb_itemRelease( ( PHB_ITEM ) pWVT->pFunc[ iIndex ] );
|
||||
pWVT->pFunc[ iIndex ] = NULL;
|
||||
}
|
||||
if ( pWVT->pcbFunc[ iIndex ] != NULL )
|
||||
{
|
||||
hb_itemRelease( ( PHB_ITEM ) pWVT->pcbFunc[ iIndex ] );
|
||||
pWVT->pcbFunc[ iIndex ] = NULL;
|
||||
}
|
||||
}
|
||||
|
||||
if( pWVT->hWnd )
|
||||
{
|
||||
DestroyWindow( pWVT->hWnd );
|
||||
pWVT->hWnd = NULL;
|
||||
}
|
||||
|
||||
hb_xfree( pWVT );
|
||||
}
|
||||
|
||||
@@ -183,19 +212,14 @@ static void hb_gt_wvt_FreeAll( void )
|
||||
{
|
||||
if( s_wvtCount > 0 )
|
||||
{
|
||||
int iPos;
|
||||
int iPos, iIndex;
|
||||
|
||||
for ( iPos = 1; iPos < WVT_MAX_WINDOWS; iPos++ )
|
||||
{
|
||||
if( s_wvtWindows[ iPos ] != NULL )
|
||||
if( !s_wvtWindows[ iPos ] == NULL )
|
||||
{
|
||||
PHB_GTWVT pWVT;
|
||||
|
||||
pWVT = s_wvtWindows[ iPos ];
|
||||
|
||||
DestroyWindow( pWVT->hWnd );
|
||||
pWVT->hWnd = NULL;
|
||||
hb_gt_wvt_Free( pWVT );
|
||||
HB_GTSUPER_EXIT( pWVT->pGT );
|
||||
hb_gt_wvt_Free( s_wvtWindows[ iPos ] );
|
||||
HB_GTSUPER_EXIT( s_wvtWindows[ iPos ]->pGT );
|
||||
}
|
||||
}
|
||||
}
|
||||
@@ -1922,19 +1946,14 @@ static void hb_gt_wvt_Exit( PHB_GT pGT )
|
||||
pWVT = HB_GTWVT_GET( pGT );
|
||||
HB_GTSUPER_EXIT( pGT );
|
||||
|
||||
hb_gt_wvt_FreeAll(); /* MW */
|
||||
hb_gt_wvt_FreeAll();
|
||||
|
||||
if( pWVT )
|
||||
{
|
||||
if( pWVT->hWnd )
|
||||
{
|
||||
hb_wvt_gtExitGui( pWVT );
|
||||
DestroyWindow( pWVT->hWnd );
|
||||
pWVT->hWnd = NULL;
|
||||
}
|
||||
if( pWVT->pszSelectCopy )
|
||||
hb_xfree( pWVT->pszSelectCopy );
|
||||
|
||||
UnregisterClass( s_szClassName, ( HINSTANCE ) s_hInstance );
|
||||
hb_gt_wvt_Free( pWVT );
|
||||
}
|
||||
|
||||
@@ -150,12 +150,20 @@ static BOOL hb_gt_wvt_Alloc( PHB_GTWVT pWVT )
|
||||
|
||||
static void hb_gt_wvt_Free( PHB_GTWVT pWVT )
|
||||
{
|
||||
int iIndex;
|
||||
|
||||
--s_wvtCount;
|
||||
s_wvtWindows[pWVT->iHandle] = NULL;
|
||||
|
||||
if( pWVT->pszSelectCopy )
|
||||
hb_xfree( pWVT->pszSelectCopy );
|
||||
|
||||
if( pWVT->hWnd )
|
||||
{
|
||||
DestroyWindow( pWVT->hWnd );
|
||||
pWVT->hWnd = NULL;
|
||||
}
|
||||
|
||||
hb_xfree( pWVT );
|
||||
}
|
||||
|
||||
@@ -1562,7 +1570,7 @@ static HWND hb_gt_wvt_CreateWindow( HINSTANCE hInstance, HINSTANCE hPrevInstance
|
||||
NULL, /* menu */
|
||||
hInstance, /* instance */
|
||||
NULL ); /* lpParam */
|
||||
|
||||
|
||||
if( hWnd )
|
||||
{
|
||||
ShowWindow( hWnd, iCmdShow );
|
||||
@@ -1657,11 +1665,6 @@ static void hb_gt_wvt_Exit( PHB_GT pGT )
|
||||
|
||||
if( pWVT )
|
||||
{
|
||||
if( pWVT->hWnd )
|
||||
{
|
||||
DestroyWindow( pWVT->hWnd );
|
||||
pWVT->hWnd = NULL;
|
||||
}
|
||||
UnregisterClass( s_szClassName, ( HINSTANCE ) s_hInstance );
|
||||
hb_gt_wvt_Free( pWVT );
|
||||
}
|
||||
|
||||
Reference in New Issue
Block a user