diff --git a/harbour/ChangeLog b/harbour/ChangeLog index de9924b5c2..c394ae32aa 100644 --- a/harbour/ChangeLog +++ b/harbour/ChangeLog @@ -1,3 +1,10 @@ +20000420-23:58 GMT+1 Victor Szakats + * source/compiler/genc.c + ! STATICS and SFRAME fixed with -gc0 mode. + + * source/compiler/genhrb.c + ! STATICS fixed. (please check) + 20000420-23:33 GMT+1 Victor Szakats * tests/Makefile diff --git a/harbour/source/compiler/genc.c b/harbour/source/compiler/genc.c index 74c41c6a45..1d284347e1 100644 --- a/harbour/source/compiler/genc.c +++ b/harbour/source/compiler/genc.c @@ -1429,21 +1429,22 @@ static void hb_compGenCCompact( PFUNCTION pFunc ) /* we only generate it if there are statics used in this function */ if( pFunc->bFlags & FUN_USES_STATICS ) { - hb_fputc( pFunc->pCode[ lPCodePos++ ] ); - hb_fputc( pFunc->pCode[ lPCodePos++ ] ); - hb_fputc( pFunc->pCode[ lPCodePos++ ] ); + hb_compSymbolFind( hb_comp_pInitFunc->szName, &w ); + hb_fputc( pFunc->pCode[ lPCodePos ] ); + hb_fputc( HB_LOBYTE( w ) ); + hb_fputc( HB_HIBYTE( w ) ); } - else - lPCodePos += 3; - + lPCodePos += 3; break; case HB_P_STATICS: - hb_fputc( pFunc->pCode[ lPCodePos++ ] ); - hb_fputc( pFunc->pCode[ lPCodePos++ ] ); - hb_fputc( pFunc->pCode[ lPCodePos++ ] ); - hb_fputc( pFunc->pCode[ lPCodePos++ ] ); - hb_fputc( pFunc->pCode[ lPCodePos++ ] ); + hb_compSymbolFind( hb_comp_pInitFunc->szName, &w ); + hb_fputc( pFunc->pCode[ lPCodePos ] ); + hb_fputc( HB_LOBYTE( w ) ); + hb_fputc( HB_HIBYTE( w ) ); + hb_fputc( pFunc->pCode[ lPCodePos + 3 ] ); + hb_fputc( pFunc->pCode[ lPCodePos + 4 ] ); + lPCodePos += 5; break; default: diff --git a/harbour/source/compiler/genhrb.c b/harbour/source/compiler/genhrb.c index 570cf416e4..eeae2e6bdb 100644 --- a/harbour/source/compiler/genhrb.c +++ b/harbour/source/compiler/genhrb.c @@ -345,7 +345,6 @@ void hb_compGenPortObj( PHB_FNAME pFileName ) fputc( pFunc->pCode[ lPCodePos++ ], yyc ); fputc( pFunc->pCode[ lPCodePos++ ], yyc ); fputc( pFunc->pCode[ lPCodePos++ ], yyc ); - lPCodePos += 5; break; default: