2006-07-07 18:45 UTC+0200 Przemyslaw Czerpak (druzus/at/priv.onet.pl)

* harbour/include/hbapi.h
  * harbour/include/hbvmpub.h
  * harbour/source/vm/classes.c
    + added HB_ARRAY_OBJ() and changed HB_IS_OBJECT() to use it
      instead of HB_OBJ_CLASS() - it allows to use HB_IS_OBJECT()
      without including hbapicls.h
This commit is contained in:
Przemyslaw Czerpak
2006-07-07 16:45:32 +00:00
parent e4f4ea7783
commit 61dffc7bb7
4 changed files with 14 additions and 4 deletions

View File

@@ -8,6 +8,14 @@
2002-12-01 13:30 UTC+0100 Foo Bar <foo.bar@foobar.org>
*/
! AFIELDS() made fully CA-Cl*pper compatible.
* harbour/contrib/libct/ctc.c
! Warning fixed.
2006-07-07 18:45 UTC+0200 Przemyslaw Czerpak (druzus/at/priv.onet.pl)
* harbour/include/hbapi.h
* harbour/include/hbvmpub.h
* harbour/source/vm/classes.c
+ added HB_ARRAY_OBJ() and changed HB_IS_OBJECT() to use it
instead of HB_OBJ_CLASS() - it allows to use HB_IS_OBJECT()

View File

@@ -140,7 +140,7 @@ HB_EXTERN_BEGIN
#define HB_IS_COMPLEX( p ) ( ( HB_ITEM_TYPE( p ) & HB_IT_COMPLEX ) != 0 )
#define HB_IS_GCITEM( p ) ( ( HB_ITEM_TYPE( p ) & HB_IT_GCITEM ) != 0 )
#define HB_IS_BADITEM( p ) ( ( HB_ITEM_TYPE( p ) & HB_IT_COMPLEX ) != 0 && ( HB_ITEM_TYPE( p ) & ~( HB_IT_COMPLEX | HB_IT_MEMOFLAG ) ) != 0 )
#define HB_IS_OBJECT( p ) ( HB_IS_ARRAY( p ) && HB_OBJ_CLASS( p ) != 0 )
#define HB_IS_OBJECT( p ) ( HB_IS_ARRAY( p ) && HB_ARRAY_OBJ( p ) )
#define HB_IS_NUMBER( p ) HB_IS_NUMERIC( p )
#elif 0
@@ -170,7 +170,7 @@ HB_EXTERN_BEGIN
#define HB_IS_COMPLEX( p ) ( ( HB_ITEM_TYPE( p ) & HB_IT_COMPLEX ) != 0 )
#define HB_IS_GCITEM( p ) ( ( HB_ITEM_TYPE( p ) & HB_IT_GCITEM ) != 0 )
#define HB_IS_BADITEM( p ) ( ( HB_ITEM_TYPE( p ) & HB_IT_COMPLEX ) != 0 && ( HB_ITEM_TYPE( p ) & ~( HB_IT_COMPLEX | HB_IT_MEMOFLAG ) ) != 0 )
#define HB_IS_OBJECT( p ) ( HB_IS_ARRAY( p ) && HB_OBJ_CLASS( p ) != 0 )
#define HB_IS_OBJECT( p ) ( HB_IS_ARRAY( p ) && HB_ARRAY_OBJ( p ) )
#define HB_IS_NUMBER( p ) HB_IS_NUMERIC( p )
#else
@@ -198,7 +198,7 @@ HB_EXTERN_BEGIN
#define HB_IS_COMPLEX( p ) ( ( HB_ITEM_TYPE( p ) & HB_IT_COMPLEX ) != 0 )
#define HB_IS_GCITEM( p ) ( ( HB_ITEM_TYPE( p ) & HB_IT_GCITEM ) != 0 )
#define HB_IS_BADITEM( p ) ( ( HB_ITEM_TYPE( p ) & HB_IT_COMPLEX ) != 0 && ( HB_ITEM_TYPE( p ) & ~( HB_IT_COMPLEX | HB_IT_MEMOFLAG ) ) != 0 )
#define HB_IS_OBJECT( p ) ( HB_IS_ARRAY( p ) && HB_OBJ_CLASS( p ) != 0 )
#define HB_IS_OBJECT( p ) ( HB_IS_ARRAY( p ) && HB_ARRAY_OBJ( p ) )
#define HB_IS_NUMBER( p ) HB_IS_NUMERIC( p )
#endif

View File

@@ -63,6 +63,7 @@ struct _HB_SYMB;
# define HB_ITEM_TYPE( p ) ( ( p )->type )
# define HB_OBJ_CLASS( p ) ( ( p )->item.asArray.value->uiClass )
# define HB_ARRAY_OBJ( p ) ( ( p )->item.asArray.value->uiClass != 0 )
# if defined(__GNUC__)
# define HB_ITEM_NIL { HB_IT_NIL, {} }
@@ -122,6 +123,7 @@ struct _HB_SYMB;
/* # define HB_ITEM_TYPE( p ) ( hb_itemType( p ) ) */
# define HB_OBJ_CLASS( p ) ( hb_objGetClass( p ) )
# define HB_ARRAY_OBJ( p ) ( hb_arrayIsObject( pSrcArray ) )
/* basic types */
typedef void * PHB_ITEM;

View File

@@ -1895,7 +1895,7 @@ HB_FUNC( __OBJCLONE )
if( pSrcObject )
{
pDstObject= hb_arrayClone( pSrcObject ) ;
pDstObject= hb_arrayClone( pSrcObject );
/* pDstObject->item.asArray.value->puiClsTree = NULL; */
/* pDstObject->item.asArray.value->puiClsTree = ( USHORT * ) hb_xgrab( sizeof( USHORT ) ); */