From c5bbae5a06f88412f1998d263d07a82df421ece6 Mon Sep 17 00:00:00 2001 From: Antonio Linares Date: Mon, 21 Jan 2002 13:05:13 +0000 Subject: [PATCH] improved HB_P_SEND for execution speed --- harbour/source/vm/hvm.c | 15 ++++++++++++--- 1 file changed, 12 insertions(+), 3 deletions(-) diff --git a/harbour/source/vm/hvm.c b/harbour/source/vm/hvm.c index 33bef699fc..c857ffbd14 100644 --- a/harbour/source/vm/hvm.c +++ b/harbour/source/vm/hvm.c @@ -604,11 +604,20 @@ void HB_EXPORT hb_vmExecute( const BYTE * pCode, PHB_SYMB pSymbols ) break; case HB_P_SEND: - hb_itemClear( &hb_stack.Return ); + if( ( &hb_stack.Return )->type ) + hb_itemClear( &hb_stack.Return ); + hb_vmSend( pCode[ w + 1 ] + ( pCode[ w + 2 ] * 256 ) ); - hb_itemCopy( hb_stackTopItem(), &hb_stack.Return ); - hb_stackPush(); + w += 3; + + if( pCode[ 3 ] == HB_P_POP ) + w++; + else + { + hb_itemCopy( hb_stackTopItem(), &hb_stack.Return ); + hb_stackPush(); + } break; case HB_P_SENDSHORT: