2001-05-25 12:20 UTC-0800 Ron Pinkas <ron@profit-master.com>
* contrib/dot/pp.prg
* Few corrections to NextToken() and CompileRule() to match Clipper behaviour regrding decimal point, and decimal numbers.
* source/pp/ppcore.c
- Removed unused variable as per compiler warning.
* source/vm/hvm.c
! Fixed HB_P_POPFIELD and HB_P_POPVARIABLE to NOT pop top stack element pre-maturely.
Item is now pop only after assignment took place. This fixes problem where the FieldPut rutine had to use the stack,
thus overriding the assigned item.
This commit is contained in:
@@ -1,3 +1,15 @@
|
||||
2001-05-25 12:20 UTC-0800 Ron Pinkas <ron@profit-master.com>
|
||||
* contrib/dot/pp.prg
|
||||
* Few corrections to NextToken() and CompileRule() to match Clipper behaviour regrding decimal point, and decimal numbers.
|
||||
|
||||
* source/pp/ppcore.c
|
||||
- Removed unused variable as per compiler warning.
|
||||
|
||||
* source/vm/hvm.c
|
||||
! Fixed HB_P_POPFIELD and HB_P_POPVARIABLE to NOT pop top stack element pre-maturely.
|
||||
Item is now pop only after assignment took place. This fixes problem where the FieldPut rutine had to use the stack,
|
||||
thus overriding the assigned item.
|
||||
|
||||
2001-05-24 01:09 UTC-0800 Brian Hays <bhays@abacuslaw.com>
|
||||
|
||||
* source/rdd/dbcmd.c
|
||||
|
||||
@@ -1030,8 +1030,6 @@ int hb_pp_ParseExpression( char * sLine, char * sOutLine )
|
||||
|
||||
if( *ptri == '#' )
|
||||
{
|
||||
char *pTmp = sLine;
|
||||
|
||||
hb_pp_ParseDirective( ptri+1 );
|
||||
|
||||
if( ipos > 0 )
|
||||
|
||||
@@ -1138,8 +1138,8 @@ void hb_vmExecute( const BYTE * pCode, PHB_SYMB pSymbols )
|
||||
/* Pops a value from the eval stack and uses it to set
|
||||
* a new value of the given field
|
||||
*/
|
||||
hb_rddPutFieldValue( ( hb_stackItemFromTop(-1) ), pSymbols + ( USHORT ) ( pCode[ w + 1 ] + ( pCode[ w + 2 ] * 256 ) ) );
|
||||
hb_stackDec();
|
||||
hb_rddPutFieldValue( ( hb_stackTopItem() ), pSymbols + ( USHORT ) ( pCode[ w + 1 ] + ( pCode[ w + 2 ] * 256 ) ) );
|
||||
hb_itemClear( ( hb_stackTopItem() ) );
|
||||
HB_TRACE(HB_TR_INFO, ("(hb_vmPopField)"));
|
||||
w += 3;
|
||||
@@ -1181,9 +1181,9 @@ void hb_vmExecute( const BYTE * pCode, PHB_SYMB pSymbols )
|
||||
* then try the memvar variable (it will create PRIVATE
|
||||
* variable if this variable doesn't exist)
|
||||
*/
|
||||
if( hb_rddFieldPut( ( hb_stackItemFromTop(-1) ), pSymbols + uiParams ) == FAILURE )
|
||||
hb_memvarSetValue( pSymbols + uiParams, ( hb_stackItemFromTop(-1) ) );
|
||||
hb_stackDec();
|
||||
if( hb_rddFieldPut( ( hb_stackTopItem() ), pSymbols + uiParams ) == FAILURE )
|
||||
hb_memvarSetValue( pSymbols + uiParams, ( hb_stackTopItem() ) );
|
||||
hb_itemClear( ( hb_stackTopItem() ) );
|
||||
HB_TRACE(HB_TR_INFO, ("(hb_vmPopVariable)"));
|
||||
w += 3;
|
||||
|
||||
Reference in New Issue
Block a user