ChangeLog 20000130-13:55 GMT+1
This commit is contained in:
@@ -1,3 +1,13 @@
|
||||
20000130-13:55 GMT+1 Ryszard Glab <rglab@imid.med.pl>
|
||||
|
||||
*source/compiler/harbour.l
|
||||
* fixed support for macro variables used in FOR statement
|
||||
|
||||
*source/vm/hvm.c
|
||||
* private variables created during a macro evaluation are not
|
||||
released after a macro evaluation. They have the function/procedure
|
||||
scope.
|
||||
|
||||
20000129-19:15 GMT+1 Victor Szel <info@szelvesz.hu>
|
||||
* bin/bld_tpl.*
|
||||
! Added macro lib.
|
||||
|
||||
@@ -596,7 +596,7 @@ Separator {SpaceTab}
|
||||
/* ************************************************************************ */
|
||||
%}
|
||||
"for" { BEGIN FOR_; }
|
||||
<FOR_>{Separator}+[_a-zA-Z] { /* an identifier after the FOR */
|
||||
<FOR_>{Separator}+[&_a-zA-Z] { /* an identifier or a macro after the FOR */
|
||||
unput( yytext[ yyleng-1 ] );
|
||||
if( i_INDEX_STATE ) BEGIN INDEX; else BEGIN 0;
|
||||
if( hb_comp_iState == LOOKUP )
|
||||
|
||||
@@ -343,7 +343,14 @@ void hb_vmExecute( BYTE * pCode, PHB_SYMB pSymbols )
|
||||
|
||||
HB_TRACE(HB_TR_DEBUG, ("hb_vmExecute(%p, %p)", pCode, pSymbols));
|
||||
|
||||
ulPrivateBase = hb_memvarGetPrivatesBase();
|
||||
/* NOTE: if pSymbols == NULL then hb_vmExecute is called from macro
|
||||
* evaluation. In this case all PRIVATE variables created during
|
||||
* macro evaluation belong to a function/procedure where macro
|
||||
* compiler was called.
|
||||
*/
|
||||
if( pSymbols )
|
||||
ulPrivateBase = hb_memvarGetPrivatesBase();
|
||||
|
||||
while( ( bCode = pCode[ w ] ) != HB_P_ENDPROC )
|
||||
{
|
||||
switch( bCode )
|
||||
@@ -1150,7 +1157,8 @@ void hb_vmExecute( BYTE * pCode, PHB_SYMB pSymbols )
|
||||
}
|
||||
}
|
||||
}
|
||||
hb_memvarSetPrivatesBase( ulPrivateBase );
|
||||
if( pSymbols )
|
||||
hb_memvarSetPrivatesBase( ulPrivateBase );
|
||||
}
|
||||
|
||||
/* ------------------------------- */
|
||||
|
||||
Reference in New Issue
Block a user