From 61b4f5ac8e14dd7bcfe7598582462d5c9e91458d Mon Sep 17 00:00:00 2001 From: Przemyslaw Czerpak Date: Sun, 27 Aug 2006 18:55:41 +0000 Subject: [PATCH] 2006-08-27 20:54 UTC+0200 Przemyslaw Czerpak (druzus/at/priv.onet.pl) * harbour/source/vm/classes.c ! fixed bug in super casting introduced in my last commit --- harbour/ChangeLog | 4 ++++ harbour/source/vm/classes.c | 22 +++++++++------------- 2 files changed, 13 insertions(+), 13 deletions(-) diff --git a/harbour/ChangeLog b/harbour/ChangeLog index f986c95a07..a7fd4abdd7 100644 --- a/harbour/ChangeLog +++ b/harbour/ChangeLog @@ -8,6 +8,10 @@ 2002-12-01 13:30 UTC+0100 Foo Bar */ +2006-08-27 20:54 UTC+0200 Przemyslaw Czerpak (druzus/at/priv.onet.pl) + * harbour/source/vm/classes.c + ! fixed bug in super casting introduced in my last commit + 2006-08-24 10:02 UTC+0300 Chen Kedem * TODO + Add three known issues to the To-Fix list diff --git a/harbour/source/vm/classes.c b/harbour/source/vm/classes.c index 1bf4f74ecc..8015ea5a72 100644 --- a/harbour/source/vm/classes.c +++ b/harbour/source/vm/classes.c @@ -818,15 +818,11 @@ char * hb_objGetRealClsName( PHB_ITEM pObject, char * szName ) static void hb_objRevertSuperCast( PHB_ITEM pObject ) { - PHB_BASEARRAY pObjBase; PHB_ITEM pRealObj; - pObjBase = pObject->item.asArray.value; - pRealObj = hb_itemNew( pObjBase->pItems ); - /* and take back the good pObjBase */ - pObjBase = pRealObj->item.asArray.value; + pRealObj = hb_itemNew( pObject->item.asArray.value->pItems ); /* Now I should exchnage it with the current stacked value */ - hb_itemSwap( pObject, pRealObj ); + hb_itemMove( pObject, pRealObj ); /* and release the fake one */ hb_itemRelease( pRealObj ); } @@ -2397,7 +2393,7 @@ static HARBOUR hb___msgClsParent( void ) static HARBOUR hb___msgEvalInline( void ) { PCLASS pClass = s_pClasses + - hb_stackSelfItem()->item.asArray.value->uiClass - 1; + hb_stackBaseItem()->item.asSymbol.stackstate->uiClass - 1; PMETHOD pMethod = pClass->pMethods + hb_stackBaseItem()->item.asSymbol.stackstate->uiMethod; USHORT uiPCount = hb_pcount(); @@ -2502,7 +2498,7 @@ static HARBOUR hb___msgSuper( void ) static HARBOUR hb___msgGetClsData( void ) { PCLASS pClass = s_pClasses + - hb_stackSelfItem()->item.asArray.value->uiClass - 1; + hb_stackBaseItem()->item.asSymbol.stackstate->uiClass - 1; PMETHOD pMethod = pClass->pMethods + hb_stackBaseItem()->item.asSymbol.stackstate->uiMethod; @@ -2518,7 +2514,7 @@ static HARBOUR hb___msgGetClsData( void ) static HARBOUR hb___msgSetClsData( void ) { PCLASS pClass = s_pClasses + - hb_stackSelfItem()->item.asArray.value->uiClass - 1; + hb_stackBaseItem()->item.asSymbol.stackstate->uiClass - 1; PMETHOD pMethod = pClass->pMethods + hb_stackBaseItem()->item.asSymbol.stackstate->uiMethod; PHB_ITEM pReturn = hb_stackItemFromBase( 1 ); @@ -2535,7 +2531,7 @@ static HARBOUR hb___msgSetClsData( void ) static HARBOUR hb___msgGetShrData( void ) { PCLASS pClass = s_pClasses + - hb_stackSelfItem()->item.asArray.value->uiClass - 1; + hb_stackBaseItem()->item.asSymbol.stackstate->uiClass - 1; PMETHOD pMethod = pClass->pMethods + hb_stackBaseItem()->item.asSymbol.stackstate->uiMethod; USHORT uiSprCls = pMethod->uiSprClass; @@ -2555,7 +2551,7 @@ static HARBOUR hb___msgGetShrData( void ) static HARBOUR hb___msgSetShrData( void ) { PCLASS pClass = s_pClasses + - hb_stackSelfItem()->item.asArray.value->uiClass - 1; + hb_stackBaseItem()->item.asSymbol.stackstate->uiClass - 1; PMETHOD pMethod = pClass->pMethods + hb_stackBaseItem()->item.asSymbol.stackstate->uiMethod; USHORT uiSprCls = pMethod->uiSprClass; @@ -2580,7 +2576,7 @@ static HARBOUR hb___msgGetData( void ) { PHB_ITEM pObject = hb_stackSelfItem(); PCLASS pClass = s_pClasses + - pObject->item.asArray.value->uiClass - 1; + hb_stackBaseItem()->item.asSymbol.stackstate->uiClass - 1; PMETHOD pMethod = pClass->pMethods + hb_stackBaseItem()->item.asSymbol.stackstate->uiMethod; ULONG ulIndex = pMethod->uiData; @@ -2606,7 +2602,7 @@ static HARBOUR hb___msgSetData( void ) PHB_ITEM pReturn = hb_stackItemFromBase( 1 ); PHB_ITEM pObject = hb_stackSelfItem(); PCLASS pClass = s_pClasses + - pObject->item.asArray.value->uiClass - 1; + hb_stackBaseItem()->item.asSymbol.stackstate->uiClass - 1; PMETHOD pMethod = pClass->pMethods + hb_stackBaseItem()->item.asSymbol.stackstate->uiMethod; ULONG ulIndex = pMethod->uiData;