2008-09-24 20:30 UTC+0200 Przemyslaw Czerpak (druzus/at/priv.onet.pl)

* harbour/source/vm/estack.c
    ! fixed stack preloading - it should be after checking if stack
      exist :)
This commit is contained in:
Przemyslaw Czerpak
2008-09-24 18:31:00 +00:00
parent 8387f4be99
commit e58b37da88
2 changed files with 26 additions and 13 deletions

View File

@@ -8,6 +8,11 @@
2008-12-31 13:59 UTC+0100 Foo Bar (foo.bar foobar.org)
*/
2008-09-24 20:30 UTC+0200 Przemyslaw Czerpak (druzus/at/priv.onet.pl)
* harbour/source/vm/estack.c
! fixed stack preloading - it should be after checking if stack
exist :)
2008-09-24 18:27 UTC+0200 Przemyslaw Czerpak (druzus/at/priv.onet.pl)
* harbour/bin/hb-func.sh
* reverted modification for import attributes - this will be changed

View File

@@ -757,10 +757,10 @@ char * hb_stackDateBuffer( void )
BYTE * hb_stackDirBuffer( void )
{
HB_STACK_TLS_PRELOAD
#if defined( HB_MT_VM )
if( hb_stack_ready() )
{
HB_STACK_TLS_PRELOAD
if( !hb_stack.byDirBuffer )
hb_stack.byDirBuffer = ( BYTE * ) hb_xgrab( _POSIX_PATH_MAX + 1 );
return hb_stack.byDirBuffer;
@@ -771,10 +771,12 @@ BYTE * hb_stackDirBuffer( void )
PHB_IOERRORS hb_stackIOErrors( void )
{
HB_STACK_TLS_PRELOAD
#if defined( HB_MT_VM )
if( hb_stack_ready() )
{
HB_STACK_TLS_PRELOAD
return &hb_stack.IOErrors;
}
#endif
return &s_IOErrors;
}
@@ -932,7 +934,6 @@ LONG hb_stackBaseProcOffset( int iLevel )
void hb_stackBaseProcInfo( char * szProcName, USHORT * puiProcLine )
{
HB_STACK_TLS_PRELOAD
/*
* This function is called by FM module and has to be ready for execution
* before hb_stack initialization, [druzus]
@@ -940,19 +941,26 @@ void hb_stackBaseProcInfo( char * szProcName, USHORT * puiProcLine )
*/
#if defined( HB_MT_VM )
if( hb_stack_ready() && hb_stack.pPos > hb_stack.pBase )
#else
if( hb_stack.pPos > hb_stack.pBase )
#endif
{
hb_strncpy( szProcName, ( * hb_stack.pBase )->item.asSymbol.value->szName,
HB_SYMBOL_NAME_LEN );
* puiProcLine = ( * hb_stack.pBase )->item.asSymbol.stackstate->uiLineNo;
}
else
if( !hb_stack_ready() )
{
szProcName[ 0 ] = '\0';
* puiProcLine = 0;
return;
}
#endif
{
HB_STACK_TLS_PRELOAD
if( hb_stack.pPos > hb_stack.pBase )
{
hb_strncpy( szProcName, ( * hb_stack.pBase )->item.asSymbol.value->szName,
HB_SYMBOL_NAME_LEN );
* puiProcLine = ( * hb_stack.pBase )->item.asSymbol.stackstate->uiLineNo;
}
else
{
szProcName[ 0 ] = '\0';
* puiProcLine = 0;
}
}
}