2009-02-18 10:25 UTC+0100 Przemyslaw Czerpak (druzus/at/priv.onet.pl)

* harbour/include/hbapi.h
  * harbour/source/vm/cmdarg.c
  * harbour/source/vm/hvm.c
    * added hb_cmdargUpdate() function which makes final argc/argv updating
      (code moved from hb_cmdargInit())
    ! use hb_cmdargUpdate() - it fixes GPF in MT mode when some fs* functions
      were called before allocating HVM stack
    ; TOFIX: change some hb_setGet*() functions to work without HVM stack.

  * harbour/source/rtl/hbtoken.c
    * formatting
This commit is contained in:
Przemyslaw Czerpak
2009-02-18 09:20:39 +00:00
parent 409012d5e6
commit 4fd0cafdd2
5 changed files with 41 additions and 16 deletions

View File

@@ -8,6 +8,19 @@
2009-12-31 13:59 UTC+0100 Foo Bar (foo.bar foobar.org)
*/
2009-02-18 10:25 UTC+0100 Przemyslaw Czerpak (druzus/at/priv.onet.pl)
* harbour/include/hbapi.h
* harbour/source/vm/cmdarg.c
* harbour/source/vm/hvm.c
* added hb_cmdargUpdate() function which makes final argc/argv updating
(code moved from hb_cmdargInit())
! use hb_cmdargUpdate() - it fixes GPF in MT mode when some fs* functions
were called before allocating HVM stack
; TOFIX: change some hb_setGet*() functions to work without HVM stack.
* harbour/source/rtl/hbtoken.c
* formatting
2009-02-18 02:03 UTC+0100 Viktor Szakats (harbour.01 syenar hu)
* utils/hbmk/hbmk2.prg
! Fixed not recognising hbp lines if the filter was at BOL.

View File

@@ -908,6 +908,7 @@ extern HB_EXPORT PHB_SYMB hb_symbolNew( const char * szName ); /* create a new
/* Command line and environment argument management */
extern HB_EXPORT void hb_cmdargInit( int argc, char * argv[] ); /* initialize command line argument API's */
extern void hb_cmdargUpdate( void ); /* update arguments after HVM initialization */
extern int hb_cmdargARGC( void ); /* retrieve command line argument count */
extern char ** hb_cmdargARGV( void ); /* retrieve command line argument buffer pointer */
extern const char * hb_cmdargARGVN( int argc ); /* retrieve given command line argument */

View File

@@ -146,7 +146,7 @@ static PHB_ITEM hb_tokenArray( const char * szLine, ULONG ulLen,
{
ULONG ul, ulStart, ulToken;
char cQuote = 0;
for( ul = ulStart = ulToken = 0; ul < ulLen; ++ul )
{
if( cQuote )

View File

@@ -104,6 +104,26 @@ void hb_cmdargInit( int argc, char * argv[] )
s_argc = argc;
s_argv = argv;
}
int hb_cmdargARGC( void )
{
return s_argc;
}
char ** hb_cmdargARGV( void )
{
return s_argv;
}
const char * hb_cmdargARGVN( int argc )
{
return argc >= 0 && argc < s_argc ? s_argv[ argc ] : NULL;
}
void hb_cmdargUpdate( void )
{
HB_TRACE(HB_TR_DEBUG, ("hb_cmdargUpdate()"));
#if defined( HB_OS_WIN )
@@ -188,21 +208,6 @@ void hb_cmdargInit( int argc, char * argv[] )
#endif
}
int hb_cmdargARGC( void )
{
return s_argc;
}
char ** hb_cmdargARGV( void )
{
return s_argv;
}
const char * hb_cmdargARGVN( int argc )
{
return argc >= 0 && argc < s_argc ? s_argv[ argc ] : NULL;
}
BOOL hb_cmdargIsInternal( const char * szArg, int * piLen )
{
HB_TRACE(HB_TR_DEBUG, ("hb_cmdargIsInternal(%s, %p)", szArg, piLen));

View File

@@ -681,6 +681,10 @@ static void hb_vmStackRelease( void )
HB_VM_UNLOCK
/* NOTE: releasing pThItm may force pState freeing if parent
* thread does not keep thread pointer item. So it's
* important to not access it later. [druzus]
*/
if( pThItm )
hb_itemRelease( pThItm );
@@ -871,6 +875,8 @@ void hb_vmInit( BOOL bStartMainProc )
hb_setInitialize( hb_stackSetStruct() );
}
hb_cmdargUpdate();
hb_clsInit(); /* initialize Classy/OO system */
hb_errInit();