2008-08-09 17:31 UTC+0200 Przemyslaw Czerpak (druzus/at/priv.onet.pl)
* harbour/source/vm/extrap.c
* deallocate alternative signal stack on exit
TOFIX: hb_vmSetExceptionHandler() / hb_vmUnsetExceptionHandler()
cover only part of hb_vmInit() and not hb_vmQuit(). Their
calls should be moved to external places where both
hb_vmInit() and hb_vmQuit() are executed.
* harbour/source/rdd/dbfcdx/dbfcdx1.c
! fixed to not respect bitmap filters when structural order
is scanned, f.e. in OrdListAdd() with active bitmap filter.
This commit is contained in:
@@ -8,6 +8,18 @@
|
||||
2008-12-31 13:59 UTC+0100 Foo Bar <foo.bar@foobar.org>
|
||||
*/
|
||||
|
||||
2008-08-09 17:31 UTC+0200 Przemyslaw Czerpak (druzus/at/priv.onet.pl)
|
||||
* harbour/source/vm/extrap.c
|
||||
* deallocate alternative signal stack on exit
|
||||
TOFIX: hb_vmSetExceptionHandler() / hb_vmUnsetExceptionHandler()
|
||||
cover only part of hb_vmInit() and not hb_vmQuit(). Their
|
||||
calls should be moved to external places where both
|
||||
hb_vmInit() and hb_vmQuit() are executed.
|
||||
|
||||
* harbour/source/rdd/dbfcdx/dbfcdx1.c
|
||||
! fixed to not respect bitmap filters when structural order
|
||||
is scanned, f.e. in OrdListAdd() with active bitmap filter.
|
||||
|
||||
2008-08-09 16:52 UTC+0200 Viktor Szakats (harbour.01 syenar hu)
|
||||
* include/hbsetup.h
|
||||
* Refinement to HB_OS_DARWIN autodetection.
|
||||
|
||||
@@ -3975,7 +3975,8 @@ static BOOL hb_cdxPageReadPrevKey( LPCDXPAGE pPage )
|
||||
break;
|
||||
}
|
||||
}
|
||||
while( !hb_cdxCheckRecordScope( pPage->TagParent->pIndex->pArea,
|
||||
while( ( pPage->TagParent->OptFlags & CDX_TYPE_STRUCTURE ) == 0 &&
|
||||
!hb_cdxCheckRecordScope( pPage->TagParent->pIndex->pArea,
|
||||
hb_cdxPageGetKeyRec( pPage, pPage->iCurKey ) ) );
|
||||
if( pPage->iCurKey != 0 )
|
||||
hb_cdxSetCurKey( pPage );
|
||||
@@ -4018,7 +4019,8 @@ static BOOL hb_cdxPageReadNextKey( LPCDXPAGE pPage )
|
||||
break;
|
||||
}
|
||||
}
|
||||
while( !hb_cdxCheckRecordScope( pPage->TagParent->pIndex->pArea,
|
||||
while( ( pPage->TagParent->OptFlags & CDX_TYPE_STRUCTURE ) == 0 &&
|
||||
!hb_cdxCheckRecordScope( pPage->TagParent->pIndex->pArea,
|
||||
hb_cdxPageGetKeyRec( pPage, pPage->iCurKey ) ) );
|
||||
if( pPage->iCurKey != 0 )
|
||||
hb_cdxSetCurKey( pPage );
|
||||
|
||||
@@ -323,7 +323,7 @@ void hb_vmSetExceptionHandler( void )
|
||||
#elif defined( HB_SIGNAL_EXCEPTION_HANDLER )
|
||||
{
|
||||
stack_t ss;
|
||||
ss.ss_sp = ( void * ) malloc( SIGSTKSZ );
|
||||
ss.ss_sp = ( void * ) hb_xgrab( SIGSTKSZ );
|
||||
ss.ss_size = SIGSTKSZ;
|
||||
ss.ss_flags = 0;
|
||||
/* set alternative stack for SIGSEGV executed on stack overflow */
|
||||
@@ -356,5 +356,18 @@ void hb_vmUnsetExceptionHandler( void )
|
||||
rc = DosUnsetExceptionHandler( &s_regRec );
|
||||
HB_SYMBOL_UNUSED( rc );
|
||||
}
|
||||
#elif defined( HB_SIGNAL_EXCEPTION_HANDLER )
|
||||
{
|
||||
stack_t ss, oss;
|
||||
ss.ss_sp = NULL;
|
||||
ss.ss_size = SIGSTKSZ;
|
||||
ss.ss_flags = SS_DISABLE;
|
||||
/* set alternative stack for SIGSEGV executed on stack overflow */
|
||||
if( sigaltstack( &ss, &oss ) == 0 )
|
||||
{
|
||||
if( oss.ss_sp && SS_DISABLE )
|
||||
hb_xfree( oss.ss_sp );
|
||||
}
|
||||
}
|
||||
#endif
|
||||
}
|
||||
|
||||
Reference in New Issue
Block a user