Improved hb_vmMessage() for execution speed

This commit is contained in:
Antonio Linares
2002-01-21 12:10:28 +00:00
parent e3c0a1bc91
commit 1f33d683dc

View File

@@ -2760,13 +2760,15 @@ static void hb_vmArrayNew( HB_ITEM_PTR pArray, USHORT uiDimension )
void hb_vmMessage( PHB_SYMB pSymMsg ) /* sends a message to an object */
{
PHB_ITEM pItemMsg = hb_stackItemFromTop( -1 );
HB_TRACE(HB_TR_DEBUG, ("hb_vmMessage(%p, %s)", pSymMsg, pSymMsg->szName));
hb_itemCopy( hb_stackTopItem(), hb_stackItemFromTop( -1 ) ); /* moves the object forward */
hb_itemClear( hb_stackItemFromTop( -1 ) );
( hb_stackItemFromTop( -1 ) )->type = HB_IT_SYMBOL;
( hb_stackItemFromTop( -1 ) )->item.asSymbol.value = pSymMsg;
( hb_stackItemFromTop( -1 ) )->item.asSymbol.stackbase = hb_stackTopOffset() - 1;
hb_itemCopy( hb_stackTopItem(), pItemMsg ); /* moves the object forward */
hb_itemClear( pItemMsg );
pItemMsg->type = HB_IT_SYMBOL;
pItemMsg->item.asSymbol.value = pSymMsg;
pItemMsg->item.asSymbol.stackbase = hb_stackTopOffset() - 1;
hb_stackPush();
}