From 61dffc7bb745259cd635cf2212a2b1875f25e760 Mon Sep 17 00:00:00 2001 From: Przemyslaw Czerpak Date: Fri, 7 Jul 2006 16:45:32 +0000 Subject: [PATCH] 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 --- harbour/ChangeLog | 8 ++++++++ harbour/include/hbapi.h | 6 +++--- harbour/include/hbvmpub.h | 2 ++ harbour/source/vm/classes.c | 2 +- 4 files changed, 14 insertions(+), 4 deletions(-) diff --git a/harbour/ChangeLog b/harbour/ChangeLog index 3b3ff296f4..0f89f03496 100644 --- a/harbour/ChangeLog +++ b/harbour/ChangeLog @@ -8,6 +8,14 @@ 2002-12-01 13:30 UTC+0100 Foo Bar */ + ! 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() diff --git a/harbour/include/hbapi.h b/harbour/include/hbapi.h index f28fd00c77..e9e09213d4 100644 --- a/harbour/include/hbapi.h +++ b/harbour/include/hbapi.h @@ -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 diff --git a/harbour/include/hbvmpub.h b/harbour/include/hbvmpub.h index 7965e0c585..3b7c4f7e61 100644 --- a/harbour/include/hbvmpub.h +++ b/harbour/include/hbvmpub.h @@ -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; diff --git a/harbour/source/vm/classes.c b/harbour/source/vm/classes.c index c5b7d1893f..e379a4815a 100644 --- a/harbour/source/vm/classes.c +++ b/harbour/source/vm/classes.c @@ -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 ) ); */