*** empty log message ***

This commit is contained in:
Antonio Linares
1999-11-03 06:28:03 +00:00
parent f4f2577e56
commit 08ea5c514c
2 changed files with 10 additions and 24 deletions

View File

@@ -628,7 +628,8 @@ HARBOUR HB___CLSINST( void )
PMETHOD pMeth = pClass->pMethods; /* Initialize DATA */
hb_arrayNew( &hb_stack.Return, pClass->uiDatas );
hb_stack.Return.item.asArray.value->uiClass = uiClass;
hb_stack.Return.item.asArray.value->uiClass = uiClass;
hb_stack.Return.item.asArray.value->uiPrevCls = NULL;
for( uiAt = 0; uiAt < uiLimit; uiAt++, pMeth++ )
{
@@ -1145,27 +1146,14 @@ static HARBOUR hb___msgGetData( void )
*/
static HARBOUR hb___msgSuper( void )
{
PHB_ITEM pObject = hb_stack.pBase + 1;
PHB_ITEM pSuper = ( PHB_ITEM ) hb_xgrab( sizeof( HB_ITEM ) );
PHB_BASEARRAY pNewBase = ( PHB_BASEARRAY ) hb_xgrab( sizeof( HB_BASEARRAY ) );
USHORT uiSuperCls = s_pMethod->uiData; /* Get handle of superclass */
PHB_ITEM pObject = hb_stack.pBase + 1;
memcpy( pSuper, pObject, sizeof( HB_ITEM ) ); /* Allocate new structures */
memcpy( pNewBase, pObject->item.asArray.value, sizeof( HB_BASEARRAY ) );
pObject->item.asArray.value->uiPrevCls = pObject->item.asArray.value->uiClass;
pObject->item.asArray.value->uiClass = s_pMethod->uiData;
pSuper->item.asArray.value = pNewBase;
pNewBase->uiPrevCls = pNewBase->uiClass;
pNewBase->uiPrevHolders = pNewBase->uiHolders;
pNewBase->uiClass = uiSuperCls;
pNewBase->uiHolders = 1; /* New item is returned */
pNewBase->bSuperCast = TRUE; /* Do not dispose pItems !! */
/* A bit dirty, but KISS. */
hb_itemCopy( &hb_stack.Return, pSuper );
hb_itemRelease( pSuper );
hb_itemCopy( &hb_stack.Return, pObject );
}
/*
* __msgSetClsData()
*
@@ -1212,4 +1200,3 @@ static HARBOUR hb___msgVirtual( void )
/* hb_ret(); */ /* NOTE: It's safe to comment this out */
;
}

View File

@@ -2342,11 +2342,10 @@ void hb_vmDo( USHORT uiParams )
if( IS_OBJECT( pSelf ) ) /* Object passed */
{
pSelfBase = pSelf->item.asArray.value;
if( pSelfBase->bSuperCast )
if( pSelfBase->uiPrevCls ) /* Is is a Super cast ? */
{
pSelfBase->bSuperCast = FALSE;
pSelfBase->uiClass = pSelfBase->uiPrevCls;
pSelfBase->uiHolders = pSelfBase->uiPrevHolders;
pSelfBase->uiClass = pSelfBase->uiPrevCls;
pSelfBase->uiPrevCls = NULL;
}
}
}
@@ -3713,4 +3712,4 @@ HARBOUR HB___VMVARSGET( void )
{
hb_itemReturn( s_aStatics.item.asArray.value->pItems +
hb_stack.iStatics + hb_parni( 1 ) - 1 );
}
}