From 95fc775be072879640616fc06c77a0f5b7bbb425 Mon Sep 17 00:00:00 2001 From: Przemyslaw Czerpak Date: Wed, 28 Nov 2012 12:20:07 +0000 Subject: [PATCH] 2012-11-28 13:19 UTC+0100 Przemyslaw Czerpak (druzus/at/poczta.onet.pl) * harbour/src/vm/classes.c ! fixed passing be reference pseudo object variables which are not bound with real messages but are redirected to class error handler --- harbour/ChangeLog.txt | 6 ++++++ harbour/src/vm/classes.c | 3 +++ 2 files changed, 9 insertions(+) diff --git a/harbour/ChangeLog.txt b/harbour/ChangeLog.txt index dacc1b7610..f41ee70301 100644 --- a/harbour/ChangeLog.txt +++ b/harbour/ChangeLog.txt @@ -10,6 +10,12 @@ * Change, ! Fix, % Optimization, + Addition, - Removal, ; Comment */ +2012-11-28 13:19 UTC+0100 Przemyslaw Czerpak (druzus/at/poczta.onet.pl) + * harbour/src/vm/classes.c + ! fixed passing be reference pseudo object variables which + are not bound with real messages but are redirected to + class error handler + 2012-11-28 01:16 UTC+0100 Viktor Szakats (harbour syenar.net) * contrib/hbct/dummy.c * contrib/hbmemio/memio.c diff --git a/harbour/src/vm/classes.c b/harbour/src/vm/classes.c index fee958d4bd..73d5b4ffbd 100644 --- a/harbour/src/vm/classes.c +++ b/harbour/src/vm/classes.c @@ -2170,6 +2170,9 @@ HB_BOOL hb_objGetVarRef( PHB_ITEM pObject, PHB_SYMB pMessage, PCLASS pClass = s_pClasses[ pStack->uiClass ]; PMETHOD pMethod = pClass->pMethods + pStack->uiMethod; + if( pMethod->pMessage == s___msgOnError.pDynSym ) + return hb_vmMsgReference( pObject, pMessage->pDynSym, NULL ); + if( ! pMethod->pAccMsg ) pMethod->pAccMsg = hb_dynsymGetCase( pMessage->szName + 1 );