*** empty log message ***
This commit is contained in:
@@ -196,10 +196,8 @@ typedef struct _HB_BASEARRAY
|
||||
PHB_ITEM pItems; /* pointer to the array items */
|
||||
ULONG ulLen; /* number of items in the array */
|
||||
USHORT uiHolders; /* number of holders of this array */
|
||||
USHORT uiPrevHolders; /* for fixing after access super */
|
||||
USHORT uiClass; /* offset to the classes base if it is an object */
|
||||
USHORT uiPrevCls; /* for fixing after access super */
|
||||
BOOL bSuperCast; /* is it a super cast ? */
|
||||
} HB_BASEARRAY, * PHB_BASEARRAY, * HB_BASEARRAY_PTR;
|
||||
|
||||
/* stack managed by the virtual machine */
|
||||
@@ -418,4 +416,3 @@ extern char * hb_version( USHORT uiMode );
|
||||
#endif
|
||||
|
||||
#endif /* HB_EXTEND_H_ */
|
||||
|
||||
|
||||
@@ -76,7 +76,7 @@ BOOL hb_arrayNew( PHB_ITEM pItem, ULONG ulLen ) /* creates a new array */
|
||||
pBaseArray->ulLen = ulLen;
|
||||
pBaseArray->uiHolders = 1;
|
||||
pBaseArray->uiClass = 0;
|
||||
pBaseArray->bSuperCast = FALSE;
|
||||
pBaseArray->uiPrevCls = NULL;
|
||||
|
||||
for( ulPos = 0; ulPos < ulLen; ulPos++ )
|
||||
( pBaseArray->pItems + ulPos )->type = IT_NIL;
|
||||
@@ -638,14 +638,12 @@ BOOL hb_arrayRelease( PHB_ITEM pArray )
|
||||
ULONG ulLen = pBaseArray->ulLen;
|
||||
ULONG ulPos;
|
||||
|
||||
if( !pBaseArray->bSuperCast )
|
||||
{
|
||||
for( ulPos = 0; ulPos < ulLen; ulPos++ )
|
||||
hb_itemClear( pBaseArray->pItems + ulPos );
|
||||
for( ulPos = 0; ulPos < ulLen; ulPos++ )
|
||||
hb_itemClear( pBaseArray->pItems + ulPos );
|
||||
|
||||
if( pBaseArray->pItems )
|
||||
hb_xfree( pBaseArray->pItems );
|
||||
|
||||
if( pBaseArray->pItems )
|
||||
hb_xfree( pBaseArray->pItems );
|
||||
}
|
||||
hb_xfree( pBaseArray );
|
||||
|
||||
pArray->type = IT_NIL;
|
||||
|
||||
24
harbour/tests/clasinh.prg
Normal file
24
harbour/tests/clasinh.prg
Normal file
@@ -0,0 +1,24 @@
|
||||
#include "hbclass.ch"
|
||||
|
||||
function main()
|
||||
local oObject, oBase
|
||||
oObject := TAnyClass():New()
|
||||
oBase := TClassBase():New()
|
||||
return nil
|
||||
|
||||
class TClassBase
|
||||
method New()
|
||||
method Test() INLINE Alert( "Test" )
|
||||
endclass
|
||||
|
||||
method New() class TClassBase
|
||||
return Self
|
||||
|
||||
class TAnyClass from TClassBase
|
||||
method New()
|
||||
endclass
|
||||
|
||||
method New() class TAnyClass
|
||||
super:New()
|
||||
super:Test()
|
||||
return Self
|
||||
Reference in New Issue
Block a user