diff --git a/harbour/ChangeLog b/harbour/ChangeLog index e95243201c..ab8e44e935 100644 --- a/harbour/ChangeLog +++ b/harbour/ChangeLog @@ -8,6 +8,12 @@ 2008-12-31 13:59 UTC+0100 Foo Bar (foo.bar foobar.org) */ +2008-10-28 10:24 UTC+0100 Przemyslaw Czerpak (druzus/at/priv.onet.pl) + * harbour/include/hbxvm.h + * harbour/source/vm/hvm.c + * harbour/source/compiler/gencc.c + + added finished by mistake support for hidden strings in -gc3 mode + 2008-10-28 09:44 UTC+0200 Viktor Szakats (harbour.01 syenar hu) * contrib/examples/guestbk/inifiles.prg * contrib/examples/guestbk/testcgi.prg diff --git a/harbour/include/hbxvm.h b/harbour/include/hbxvm.h index 00a3e2c49a..31d5f44862 100644 --- a/harbour/include/hbxvm.h +++ b/harbour/include/hbxvm.h @@ -208,7 +208,7 @@ extern HB_EXPORT BOOL hb_xvmMacroPopAliased( BYTE bFlags ); extern HB_EXPORT BOOL hb_xvmMacroSymbol( void ); extern HB_EXPORT BOOL hb_xvmMacroText( void ); -extern HB_EXPORT void hb_xvmPushStringHidden( char * szText, ULONG length ); +extern HB_EXPORT void hb_xvmPushStringHidden( int iMethod, const char * szText, ULONG ulSize ); extern HB_EXPORT void hb_xvmPushDouble( double dNumber, int iWidth, int iDec ); #ifdef HB_LONG_LONG_OFF extern HB_EXPORT void hb_xvmPushLongLong( double dNumber ); diff --git a/harbour/source/compiler/gencc.c b/harbour/source/compiler/gencc.c index a4ce4691df..d4e1657664 100644 --- a/harbour/source/compiler/gencc.c +++ b/harbour/source/compiler/gencc.c @@ -1343,7 +1343,8 @@ static HB_GENC_FUNC( hb_p_pushstrhidden ) HB_GENC_LABEL(); - fprintf( cargo->yyc, "\thb_xvmPushStringHidden( " ); + fprintf( cargo->yyc, "\thb_xvmPushStringHidden( %d, ", + pFunc->pCode[ lPCodePos + 1 ] ); hb_compGenCString( cargo->yyc, &pFunc->pCode[ lPCodePos + 4 ], usLen ); fprintf( cargo->yyc, ", %hu );\n", usLen ); diff --git a/harbour/source/vm/hvm.c b/harbour/source/vm/hvm.c index f79e56bca1..c7c8c4acfc 100644 --- a/harbour/source/vm/hvm.c +++ b/harbour/source/vm/hvm.c @@ -10316,6 +10316,16 @@ HB_EXPORT void hb_xvmPushLongLong( LONGLONG llNumber ) } #endif +HB_EXPORT void hb_xvmPushStringHidden( int iMethod, const char * szText, ULONG ulSize ) +{ + char * szString; + + HB_TRACE(HB_TR_DEBUG, ("hb_xvmPushStringHidden(%d, %s, %lu)", iMethod, szText, ulSize)); + + szString = hb_compDecodeString( iMethod, szText, &ulSize ); + hb_itemPutCLPtr( hb_stackAllocItem(), szString, ulSize ); +} + HB_EXPORT void hb_xvmLocalName( USHORT uiLocal, char * szLocalName ) { HB_TRACE(HB_TR_DEBUG, ("hb_xvmLocalName(%hu, %s)", uiLocal, szLocalName));