From b42709f9554be51d624ac9b5eb4c5a40b85466d2 Mon Sep 17 00:00:00 2001 From: Ron Pinkas Date: Fri, 20 Jul 2001 19:47:26 +0000 Subject: [PATCH] 2001-07-20 22:45 UTC-0800 Ron Pinkas * include/hbexpra.c % Wrapped hb_compExprSetGetBlock() unneeded with simplex build, with #ifndef SIMPLEX * include/hbexprb.c * Disabled support for HB_PUSHMACROARG within hb_compExprUseAssign() * include/hbexprc.c * Disabled support for HB_PUSHMACROARG within hb_compExprPushOperEq() --- harbour/ChangeLog | 11 ++++++++++- harbour/include/hbexpra.c | 3 +++ harbour/include/hbexprb.c | 7 +++++++ harbour/include/hbexprc.c | 8 ++++++++ 4 files changed, 28 insertions(+), 1 deletion(-) diff --git a/harbour/ChangeLog b/harbour/ChangeLog index 17be66b0a6..5f82efc9bd 100644 --- a/harbour/ChangeLog +++ b/harbour/ChangeLog @@ -1,3 +1,13 @@ +2001-07-20 22:45 UTC-0800 Ron Pinkas + * include/hbexpra.c + % Wrapped hb_compExprSetGetBlock() unneeded with simplex build, with #ifndef SIMPLEX + + * include/hbexprb.c + * Disabled support for HB_PUSHMACROARG within hb_compExprUseAssign() + + * include/hbexprc.c + * Disabled support for HB_PUSHMACROARG within hb_compExprPushOperEq() + 2001-07-20 15:10 GMT+2 Martin Vopgel * source/rtl/math.c * include/hbmath.h @@ -18,7 +28,6 @@ * contrib/libct/makefile.bc ! typo fixed - 2001-07-20 13:35 GMT+3 Alexander Kresin * source/rtl/memofile.c ! A bug fixed, which appeared while reading an empty file diff --git a/harbour/include/hbexpra.c b/harbour/include/hbexpra.c index 0d9d65152c..07117d1066 100644 --- a/harbour/include/hbexpra.c +++ b/harbour/include/hbexpra.c @@ -840,6 +840,7 @@ HB_EXPR_PTR hb_compExprReduce( HB_EXPR_PTR pExpr ) } #endif +#ifndef SIMPLEX /* Creates a set/get codeblock for passed expression used in __GET * * {|| IIF( PCOUNT()==0, , :=HB_PARAM(1) )} @@ -890,3 +891,5 @@ HB_EXPR_PTR hb_compExprSetGetBlock( HB_EXPR_PTR pExpr ) */ return hb_compExprAddListExpr( hb_compExprNewCodeBlock(), pIIF ); } + +#endif diff --git a/harbour/include/hbexprb.c b/harbour/include/hbexprb.c index 8f995ca5d6..3ac607b1d3 100644 --- a/harbour/include/hbexprb.c +++ b/harbour/include/hbexprb.c @@ -1723,11 +1723,18 @@ static HB_EXPR_FUNC( hb_compExprUseAssign ) else { /* it assigns a value and leaves it on the stack */ + + /* Temporarily disable HB_P_MACROPUSHARG support. */ + BOOL bArg = hb_exp_bArgList; hb_exp_bArgList = FALSE; + HB_EXPR_USE( pSelf->value.asOperator.pRight, HB_EA_PUSH_PCODE ); /* QUESTION: Can we replace DUPLICATE+POP with a single PUT opcode */ HB_EXPR_GENPCODE1( hb_compGenPCode1, HB_P_DUPLICATE ); HB_EXPR_USE( pSelf->value.asOperator.pLeft, HB_EA_POP_PCODE ); + + /* Restore HB_P_MACROPUSHARG support. */ + hb_exp_bArgList = bArg; } } break; diff --git a/harbour/include/hbexprc.c b/harbour/include/hbexprc.c index 75ca36b7bd..7e4e96a250 100644 --- a/harbour/include/hbexprc.c +++ b/harbour/include/hbexprc.c @@ -88,6 +88,10 @@ void hb_compExprPushOperEq( HB_EXPR_PTR pSelf, BYTE bOpEq, HB_MACRO_DECL ) void hb_compExprPushOperEq( HB_EXPR_PTR pSelf, BYTE bOpEq ) #endif { + extern BOOL hb_exp_bArgList; + /* Temporarily disable HB_P_MACROPUSHARG support. */ + BOOL bArg = hb_exp_bArgList; hb_exp_bArgList = FALSE; + /* NOTE: an object instance variable needs special handling */ if( pSelf->value.asOperator.pLeft->ExprType == HB_ET_SEND ) @@ -161,6 +165,10 @@ void hb_compExprPushOperEq( HB_EXPR_PTR pSelf, BYTE bOpEq ) /* pop the new value into variable and leave the copy on the stack */ HB_EXPR_USE( pSelf->value.asOperator.pLeft, HB_EA_POP_PCODE ); } + + /* Restore HB_P_MACROPUSHARG support. */ + hb_exp_bArgList = bArg; + } /* Generates pcodes for = syntax