2014-10-07 00:38 UTC+0200 Przemyslaw Czerpak (druzus/at/poczta.onet.pl)
* include/hbdefs.h
* use strict aliasing friendly conversions in MSC builds which support
intrinsic version of _byteswap_*() functions.
It should also pacify some of MSC warnings.
* include/hbdefs.h
* src/rdd/dbffpt/dbffpt1.c
* minor formatting
* contrib/gtwvg/wvgcore.c
! fixed HANDLE to LONG casting - it's bug in 64 bit builds
This commit is contained in:
@@ -10,6 +10,19 @@
|
||||
* Change, ! Fix, % Optimization, + Addition, - Removal, ; Comment
|
||||
*/
|
||||
|
||||
2014-10-07 00:38 UTC+0200 Przemyslaw Czerpak (druzus/at/poczta.onet.pl)
|
||||
* include/hbdefs.h
|
||||
* use strict aliasing friendly conversions in MSC builds which support
|
||||
intrinsic version of _byteswap_*() functions.
|
||||
It should also pacify some of MSC warnings.
|
||||
|
||||
* include/hbdefs.h
|
||||
* src/rdd/dbffpt/dbffpt1.c
|
||||
* minor formatting
|
||||
|
||||
* contrib/gtwvg/wvgcore.c
|
||||
! fixed HANDLE to LONG casting - it's bug in 64 bit builds
|
||||
|
||||
2014-10-06 22:35 UTC+0200 Przemyslaw Czerpak (druzus/at/poczta.onet.pl)
|
||||
* include/hbcomp.h
|
||||
* include/hbcompdf.h
|
||||
|
||||
@@ -2756,7 +2756,7 @@ HB_FUNC( WVT_LOADPICTUREEX )
|
||||
hb_strfree( hImage );
|
||||
if( iPicture )
|
||||
{
|
||||
hb_retnl( ( HB_PTRDIFF ) iPicture );
|
||||
hb_retnint( ( HB_PTRDIFF ) iPicture );
|
||||
}
|
||||
#endif
|
||||
}
|
||||
@@ -2796,7 +2796,7 @@ HB_FUNC( WVT_LOADPICTUREFROMRESOURCEEX )
|
||||
hb_strfree( hSection );
|
||||
if( iPicture )
|
||||
{
|
||||
hb_retnl( ( HB_PTRDIFF ) iPicture );
|
||||
hb_retnint( ( HB_PTRDIFF ) iPicture );
|
||||
}
|
||||
#endif
|
||||
}
|
||||
|
||||
279
include/hbdefs.h
279
include/hbdefs.h
@@ -72,7 +72,10 @@
|
||||
defined( HB_OS_BSD ) || defined( HB_OS_SUNOS ) || \
|
||||
defined( HB_OS_BEOS ) || defined( HB_OS_QNX ) || \
|
||||
defined( HB_OS_VXWORKS ) || defined( HB_OS_MINIX ) ) )
|
||||
#include <stdint.h>
|
||||
# include <stdint.h>
|
||||
# if defined( _MSC_VER ) && _MSC_VER >= 1400
|
||||
# include <intrin.h>
|
||||
# endif
|
||||
/* NOTE: Hack to avoid collision between stdint.h and unistd.h. [vszakats] */
|
||||
# if defined( HB_OS_VXWORKS ) && defined( _INTPTR ) && ! defined( _INTPTR_T )
|
||||
# define _INTPTR_T
|
||||
@@ -806,13 +809,25 @@ typedef HB_U32 HB_FATTR;
|
||||
#endif
|
||||
|
||||
/* Macros to store/retrieve integer and double values at/from byte address */
|
||||
#if defined( __GNUC__ )
|
||||
#if defined( __GNUC__ ) || ( defined( _MSC_VER ) && ( _MSC_VER >= 1400 ) )
|
||||
|
||||
# if ( __GNUC__ > 4 || ( __GNUC__ == 4 && __GNUC_MINOR__ >= 3 ) ) && \
|
||||
! defined( __ICC ) && ! defined( __OPENCC__ ) && ! defined( __PCC__ )
|
||||
# define HB_BUILTIN_BSWAP 1
|
||||
# define HB_BUILTIN_BSWAP32( n ) __builtin_bswap32( n )
|
||||
# define HB_BUILTIN_BSWAP64( n ) __builtin_bswap64( n )
|
||||
# elif defined( _MSC_VER )
|
||||
# define HB_BUILTIN_BSWAP32( n ) _byteswap_ulong( n )
|
||||
# define HB_BUILTIN_BSWAP64( n ) _byteswap_uint64( n )
|
||||
# endif
|
||||
|
||||
# if defined( _MSC_VER )
|
||||
# define _HB_CAST16 ( HB_U16 )
|
||||
# define _HB_CAST32 ( HB_U32 )
|
||||
# define _HB_CAST64 ( HB_U64 )
|
||||
# else
|
||||
# define HB_BUILTIN_BSWAP 0
|
||||
# define _HB_CAST16
|
||||
# define _HB_CAST32
|
||||
# define _HB_CAST64
|
||||
# endif
|
||||
|
||||
typedef union
|
||||
@@ -849,40 +864,41 @@ typedef HB_U32 HB_FATTR;
|
||||
{
|
||||
double val;
|
||||
HB_BYTE buf[ 8 ];
|
||||
# if ! defined( HB_LONG_LONG_OFF ) || defined( HB_ARCH_64BIT )
|
||||
# if ( ! defined( HB_LONG_LONG_OFF ) || defined( HB_ARCH_64BIT ) ) && \
|
||||
defined( HB_BUILTIN_BSWAP64 )
|
||||
HB_U64 i64;
|
||||
# endif
|
||||
} HB_DBLCAST, * PHB_DBLCAST;
|
||||
|
||||
static __inline__ void * _hb_get_ptr( const HB_BYTE * buf )
|
||||
static HB_FORCEINLINE void * _hb_get_ptr( const HB_BYTE * buf )
|
||||
{
|
||||
HB_PTRCAST u;
|
||||
memcpy( u.buf, buf, sizeof( void * ) );
|
||||
return u.val;
|
||||
}
|
||||
|
||||
static __inline__ void _hb_put_ptr( HB_BYTE * buf, void * val )
|
||||
static HB_FORCEINLINE void _hb_put_ptr( HB_BYTE * buf, void * val )
|
||||
{
|
||||
HB_PTRCAST u;
|
||||
u.val = val;
|
||||
memcpy( buf, u.buf, sizeof( void * ) );
|
||||
}
|
||||
|
||||
static __inline__ HB_U16 _hb_get_std_uint16( const HB_BYTE * buf )
|
||||
static HB_FORCEINLINE HB_U16 _hb_get_std_uint16( const HB_BYTE * buf )
|
||||
{
|
||||
HB_U16CAST u;
|
||||
memcpy( u.buf, buf, sizeof( u.buf ) );
|
||||
return u.val;
|
||||
}
|
||||
|
||||
static __inline__ void _hb_put_std_uint16( HB_BYTE * buf, HB_U16 val )
|
||||
static HB_FORCEINLINE void _hb_put_std_uint16( HB_BYTE * buf, HB_U16 val )
|
||||
{
|
||||
HB_U16CAST u;
|
||||
u.val = val;
|
||||
memcpy( buf, u.buf, sizeof( u.buf ) );
|
||||
}
|
||||
|
||||
static __inline__ HB_U16 _hb_get_rev_uint16( const HB_BYTE * buf )
|
||||
static HB_FORCEINLINE HB_U16 _hb_get_rev_uint16( const HB_BYTE * buf )
|
||||
{
|
||||
HB_U16CAST u;
|
||||
u.buf[ 0 ] = buf[ 1 ];
|
||||
@@ -890,7 +906,7 @@ typedef HB_U32 HB_FATTR;
|
||||
return u.val;
|
||||
}
|
||||
|
||||
static __inline__ void _hb_put_rev_uint16( HB_BYTE * buf, HB_U16 val )
|
||||
static HB_FORCEINLINE void _hb_put_rev_uint16( HB_BYTE * buf, HB_U16 val )
|
||||
{
|
||||
HB_U16CAST u;
|
||||
u.val = val;
|
||||
@@ -898,26 +914,26 @@ typedef HB_U32 HB_FATTR;
|
||||
buf[ 1 ] = u.buf[ 0 ];
|
||||
}
|
||||
|
||||
static __inline__ HB_U32 _hb_get_std_uint32( const HB_BYTE * buf )
|
||||
static HB_FORCEINLINE HB_U32 _hb_get_std_uint32( const HB_BYTE * buf )
|
||||
{
|
||||
HB_U32CAST u;
|
||||
memcpy( u.buf, buf, sizeof( u.buf ) );
|
||||
return u.val;
|
||||
}
|
||||
|
||||
static __inline__ void _hb_put_std_uint32( HB_BYTE * buf, HB_U32 val )
|
||||
static HB_FORCEINLINE void _hb_put_std_uint32( HB_BYTE * buf, HB_U32 val )
|
||||
{
|
||||
HB_U32CAST u;
|
||||
u.val = val;
|
||||
memcpy( buf, u.buf, sizeof( u.buf ) );
|
||||
}
|
||||
|
||||
static __inline__ HB_U32 _hb_get_rev_uint32( const HB_BYTE * buf )
|
||||
static HB_FORCEINLINE HB_U32 _hb_get_rev_uint32( const HB_BYTE * buf )
|
||||
{
|
||||
HB_U32CAST u;
|
||||
# if HB_BUILTIN_BSWAP
|
||||
# if defined( HB_BUILTIN_BSWAP32 )
|
||||
memcpy( u.buf, buf, sizeof( u.buf ) );
|
||||
return __builtin_bswap32( u.val );
|
||||
return HB_BUILTIN_BSWAP32( u.val );
|
||||
# else
|
||||
u.buf[ 0 ] = buf[ 3 ];
|
||||
u.buf[ 1 ] = buf[ 2 ];
|
||||
@@ -927,11 +943,11 @@ typedef HB_U32 HB_FATTR;
|
||||
# endif
|
||||
}
|
||||
|
||||
static __inline__ void _hb_put_rev_uint32( HB_BYTE * buf, HB_U32 val )
|
||||
static HB_FORCEINLINE void _hb_put_rev_uint32( HB_BYTE * buf, HB_U32 val )
|
||||
{
|
||||
HB_U32CAST u;
|
||||
# if HB_BUILTIN_BSWAP
|
||||
u.val = __builtin_bswap32( val );
|
||||
# if defined( HB_BUILTIN_BSWAP32 )
|
||||
u.val = HB_BUILTIN_BSWAP32( val );
|
||||
memcpy( buf, u.buf, sizeof( u.buf ) );
|
||||
# else
|
||||
u.val = val;
|
||||
@@ -943,26 +959,26 @@ typedef HB_U32 HB_FATTR;
|
||||
}
|
||||
|
||||
# if ! defined( HB_LONG_LONG_OFF ) || defined( HB_ARCH_64BIT )
|
||||
static __inline__ HB_U64 _hb_get_std_uint64( const HB_BYTE * buf )
|
||||
static HB_FORCEINLINE HB_U64 _hb_get_std_uint64( const HB_BYTE * buf )
|
||||
{
|
||||
HB_U64CAST u;
|
||||
memcpy( u.buf, buf, sizeof( u.buf ) );
|
||||
return u.val;
|
||||
}
|
||||
|
||||
static __inline__ void _hb_put_std_uint64( HB_BYTE * buf, HB_U64 val )
|
||||
static HB_FORCEINLINE void _hb_put_std_uint64( HB_BYTE * buf, HB_U64 val )
|
||||
{
|
||||
HB_U64CAST u;
|
||||
u.val = val;
|
||||
memcpy( buf, u.buf, sizeof( u.buf ) );
|
||||
}
|
||||
|
||||
static __inline__ HB_U64 _hb_get_rev_uint64( const HB_BYTE * buf )
|
||||
static HB_FORCEINLINE HB_U64 _hb_get_rev_uint64( const HB_BYTE * buf )
|
||||
{
|
||||
HB_U64CAST u;
|
||||
# if HB_BUILTIN_BSWAP
|
||||
# if defined( HB_BUILTIN_BSWAP64 )
|
||||
memcpy( u.buf, buf, sizeof( u.buf ) );
|
||||
return __builtin_bswap64( u.val );
|
||||
return HB_BUILTIN_BSWAP64( u.val );
|
||||
# else
|
||||
u.buf[ 0 ] = buf[ 7 ];
|
||||
u.buf[ 1 ] = buf[ 6 ];
|
||||
@@ -976,11 +992,11 @@ typedef HB_U32 HB_FATTR;
|
||||
# endif
|
||||
}
|
||||
|
||||
static __inline__ void _hb_put_rev_uint64( HB_BYTE * buf, HB_U64 val )
|
||||
static HB_FORCEINLINE void _hb_put_rev_uint64( HB_BYTE * buf, HB_U64 val )
|
||||
{
|
||||
HB_U64CAST u;
|
||||
# if HB_BUILTIN_BSWAP
|
||||
u.val = __builtin_bswap64( val );
|
||||
# if defined( HB_BUILTIN_BSWAP64 )
|
||||
u.val = HB_BUILTIN_BSWAP64( val );
|
||||
memcpy( buf, u.buf, sizeof( u.buf ) );
|
||||
# else
|
||||
u.val = val;
|
||||
@@ -996,27 +1012,27 @@ typedef HB_U32 HB_FATTR;
|
||||
}
|
||||
# endif
|
||||
|
||||
static __inline__ double _hb_get_std_double( const HB_BYTE * buf )
|
||||
static HB_FORCEINLINE double _hb_get_std_double( const HB_BYTE * buf )
|
||||
{
|
||||
HB_DBLCAST u;
|
||||
memcpy( u.buf, buf, sizeof( u.buf ) );
|
||||
return u.val;
|
||||
}
|
||||
|
||||
static __inline__ void _hb_put_std_double( HB_BYTE * buf, double val )
|
||||
static HB_FORCEINLINE void _hb_put_std_double( HB_BYTE * buf, double val )
|
||||
{
|
||||
HB_DBLCAST u;
|
||||
u.val = val;
|
||||
memcpy( buf, u.buf, sizeof( u.buf ) );
|
||||
}
|
||||
|
||||
static __inline__ double _hb_get_rev_double( const HB_BYTE * buf )
|
||||
static HB_FORCEINLINE double _hb_get_rev_double( const HB_BYTE * buf )
|
||||
{
|
||||
HB_DBLCAST u;
|
||||
# if ( ! defined( HB_LONG_LONG_OFF ) || defined( HB_ARCH_64BIT ) ) && \
|
||||
HB_BUILTIN_BSWAP
|
||||
defined( HB_BUILTIN_BSWAP64 )
|
||||
memcpy( u.buf, buf, sizeof( u.buf ) );
|
||||
u.i64 = __builtin_bswap64( u.i64 );
|
||||
u.i64 = HB_BUILTIN_BSWAP64( u.i64 );
|
||||
return u.val;
|
||||
# else
|
||||
u.buf[ 0 ] = buf[ 7 ];
|
||||
@@ -1031,13 +1047,13 @@ typedef HB_U32 HB_FATTR;
|
||||
# endif
|
||||
}
|
||||
|
||||
static __inline__ void _hb_put_rev_double( HB_BYTE * buf, double val )
|
||||
static HB_FORCEINLINE void _hb_put_rev_double( HB_BYTE * buf, double val )
|
||||
{
|
||||
HB_DBLCAST u;
|
||||
# if ( ! defined( HB_LONG_LONG_OFF ) || defined( HB_ARCH_64BIT ) ) && \
|
||||
HB_BUILTIN_BSWAP
|
||||
defined( HB_BUILTIN_BSWAP64 )
|
||||
u.val = val;
|
||||
u.i64 = __builtin_bswap64( u.i64 );
|
||||
u.i64 = HB_BUILTIN_BSWAP64( u.i64 );
|
||||
memcpy( buf, u.buf, sizeof( u.buf ) );
|
||||
# else
|
||||
u.val = val;
|
||||
@@ -1060,38 +1076,38 @@ typedef HB_U32 HB_FATTR;
|
||||
# if defined( HB_BIG_ENDIAN )
|
||||
|
||||
# define HB_GET_BE_UINT16( p ) _hb_get_std_uint16( ( const HB_BYTE * ) ( p ) )
|
||||
# define HB_PUT_BE_UINT16( p, w ) _hb_put_std_uint16( ( HB_BYTE * ) ( p ), w )
|
||||
# define HB_PUT_BE_UINT16( p, w ) _hb_put_std_uint16( ( HB_BYTE * ) ( p ), _HB_CAST16 w )
|
||||
# define HB_GET_BE_UINT32( p ) _hb_get_std_uint32( ( const HB_BYTE * ) ( p ) )
|
||||
# define HB_PUT_BE_UINT32( p, l ) _hb_put_std_uint32( ( HB_BYTE * ) ( p ), l )
|
||||
# define HB_PUT_BE_UINT32( p, l ) _hb_put_std_uint32( ( HB_BYTE * ) ( p ), _HB_CAST32 l )
|
||||
# define HB_GET_BE_UINT64( p ) _hb_get_std_uint64( ( const HB_BYTE * ) ( p ) )
|
||||
# define HB_PUT_BE_UINT64( p, q ) _hb_put_std_uint64( ( HB_BYTE * ) ( p ), q )
|
||||
# define HB_PUT_BE_UINT64( p, q ) _hb_put_std_uint64( ( HB_BYTE * ) ( p ), _HB_CAST64 q )
|
||||
|
||||
# define HB_GET_LE_UINT16( p ) _hb_get_rev_uint16( ( const HB_BYTE * ) ( p ) )
|
||||
# define HB_PUT_LE_UINT16( p, w ) _hb_put_rev_uint16( ( HB_BYTE * ) ( p ), w )
|
||||
# define HB_PUT_LE_UINT16( p, w ) _hb_put_rev_uint16( ( HB_BYTE * ) ( p ), _HB_CAST16 w )
|
||||
# define HB_GET_LE_UINT32( p ) _hb_get_rev_uint32( ( const HB_BYTE * ) ( p ) )
|
||||
# define HB_PUT_LE_UINT32( p, l ) _hb_put_rev_uint32( ( HB_BYTE * ) ( p ), l )
|
||||
# define HB_PUT_LE_UINT32( p, l ) _hb_put_rev_uint32( ( HB_BYTE * ) ( p ), _HB_CAST32 l )
|
||||
# define HB_GET_LE_UINT64( p ) _hb_get_rev_uint64( ( const HB_BYTE * ) ( p ) )
|
||||
# define HB_PUT_LE_UINT64( p, q ) _hb_put_rev_uint64( ( HB_BYTE * ) ( p ), q )
|
||||
# define HB_PUT_LE_UINT64( p, q ) _hb_put_rev_uint64( ( HB_BYTE * ) ( p ), _HB_CAST64 q )
|
||||
|
||||
# else /* HB_LITTLE_ENDIAN */
|
||||
|
||||
# define HB_GET_BE_UINT16( p ) _hb_get_rev_uint16( ( const HB_BYTE * ) ( p ) )
|
||||
# define HB_PUT_BE_UINT16( p, w ) _hb_put_rev_uint16( ( HB_BYTE * ) ( p ), w )
|
||||
# define HB_PUT_BE_UINT16( p, w ) _hb_put_rev_uint16( ( HB_BYTE * ) ( p ), _HB_CAST16 w )
|
||||
# define HB_GET_BE_UINT32( p ) _hb_get_rev_uint32( ( const HB_BYTE * ) ( p ) )
|
||||
# define HB_PUT_BE_UINT32( p, l ) _hb_put_rev_uint32( ( HB_BYTE * ) ( p ), l )
|
||||
# define HB_PUT_BE_UINT32( p, l ) _hb_put_rev_uint32( ( HB_BYTE * ) ( p ), _HB_CAST32 l )
|
||||
# define HB_GET_BE_UINT64( p ) _hb_get_rev_uint64( ( const HB_BYTE * ) ( p ) )
|
||||
# define HB_PUT_BE_UINT64( p, q ) _hb_put_rev_uint64( ( HB_BYTE * ) ( p ), q )
|
||||
# define HB_PUT_BE_UINT64( p, q ) _hb_put_rev_uint64( ( HB_BYTE * ) ( p ), _HB_CAST64 q )
|
||||
|
||||
# define HB_GET_LE_UINT16( p ) _hb_get_std_uint16( ( const HB_BYTE * ) ( p ) )
|
||||
# define HB_PUT_LE_UINT16( p, w ) _hb_put_std_uint16( ( HB_BYTE * ) ( p ), w )
|
||||
# define HB_PUT_LE_UINT16( p, w ) _hb_put_std_uint16( ( HB_BYTE * ) ( p ), _HB_CAST16 w )
|
||||
# define HB_GET_LE_UINT32( p ) _hb_get_std_uint32( ( const HB_BYTE * ) ( p ) )
|
||||
# define HB_PUT_LE_UINT32( p, l ) _hb_put_std_uint32( ( HB_BYTE * ) ( p ), l )
|
||||
# define HB_PUT_LE_UINT32( p, l ) _hb_put_std_uint32( ( HB_BYTE * ) ( p ), _HB_CAST32 l )
|
||||
# define HB_GET_LE_UINT64( p ) _hb_get_std_uint64( ( const HB_BYTE * ) ( p ) )
|
||||
# define HB_PUT_LE_UINT64( p, q ) _hb_put_std_uint64( ( HB_BYTE * ) ( p ), q )
|
||||
# define HB_PUT_LE_UINT64( p, q ) _hb_put_std_uint64( ( HB_BYTE * ) ( p ), _HB_CAST64 q )
|
||||
|
||||
# endif
|
||||
|
||||
#else /* ! __GNUC__ */
|
||||
#else /* ! __GNUC__ || _MSC_VER < 1400 */
|
||||
|
||||
# define HB_GET_STD_DOUBLE( p ) hb_get_std_double( ( const HB_BYTE * ) ( p ) )
|
||||
# define HB_GET_REV_DOUBLE( p ) hb_get_rev_double( ( const HB_BYTE * ) ( p ) )
|
||||
@@ -1140,42 +1156,42 @@ typedef HB_U32 HB_FATTR;
|
||||
# else
|
||||
|
||||
#define HB_GET_LE_UINT16( p ) ( ( HB_U16 ) \
|
||||
( ( ( HB_U16 ) (( const HB_BYTE * )( p ))[0] ) | \
|
||||
( ( HB_U16 ) (( const HB_BYTE * )( p ))[1] << 8 ) ) )
|
||||
( ( ( HB_U16 ) (( const HB_BYTE * )( p ))[ 0 ] ) | \
|
||||
( ( HB_U16 ) (( const HB_BYTE * )( p ))[ 1 ] << 8 ) ) )
|
||||
#define HB_GET_LE_UINT32( p ) ( ( HB_U32 ) \
|
||||
( ( ( HB_U32 ) (( const HB_BYTE * )( p ))[0] ) | \
|
||||
( ( HB_U32 ) (( const HB_BYTE * )( p ))[1] << 8 ) | \
|
||||
( ( HB_U32 ) (( const HB_BYTE * )( p ))[2] << 16 ) | \
|
||||
( ( HB_U32 ) (( const HB_BYTE * )( p ))[3] << 24 ) ) )
|
||||
( ( ( HB_U32 ) (( const HB_BYTE * )( p ))[ 0 ] ) | \
|
||||
( ( HB_U32 ) (( const HB_BYTE * )( p ))[ 1 ] << 8 ) | \
|
||||
( ( HB_U32 ) (( const HB_BYTE * )( p ))[ 2 ] << 16 ) | \
|
||||
( ( HB_U32 ) (( const HB_BYTE * )( p ))[ 3 ] << 24 ) ) )
|
||||
#define HB_GET_LE_UINT64( p ) ( ( HB_U64 ) \
|
||||
( ( ( HB_U64 ) (( const HB_BYTE * )( p ))[0] ) | \
|
||||
( ( HB_U64 ) (( const HB_BYTE * )( p ))[1] << 8 ) | \
|
||||
( ( HB_U64 ) (( const HB_BYTE * )( p ))[2] << 16 ) | \
|
||||
( ( HB_U64 ) (( const HB_BYTE * )( p ))[3] << 24 ) | \
|
||||
( ( HB_U64 ) (( const HB_BYTE * )( p ))[4] << 32 ) | \
|
||||
( ( HB_U64 ) (( const HB_BYTE * )( p ))[5] << 40 ) | \
|
||||
( ( HB_U64 ) (( const HB_BYTE * )( p ))[6] << 48 ) | \
|
||||
( ( HB_U64 ) (( const HB_BYTE * )( p ))[7] << 56 ) ) )
|
||||
( ( ( HB_U64 ) (( const HB_BYTE * )( p ))[ 0 ] ) | \
|
||||
( ( HB_U64 ) (( const HB_BYTE * )( p ))[ 1 ] << 8 ) | \
|
||||
( ( HB_U64 ) (( const HB_BYTE * )( p ))[ 2 ] << 16 ) | \
|
||||
( ( HB_U64 ) (( const HB_BYTE * )( p ))[ 3 ] << 24 ) | \
|
||||
( ( HB_U64 ) (( const HB_BYTE * )( p ))[ 4 ] << 32 ) | \
|
||||
( ( HB_U64 ) (( const HB_BYTE * )( p ))[ 5 ] << 40 ) | \
|
||||
( ( HB_U64 ) (( const HB_BYTE * )( p ))[ 6 ] << 48 ) | \
|
||||
( ( HB_U64 ) (( const HB_BYTE * )( p ))[ 7 ] << 56 ) ) )
|
||||
|
||||
#define HB_PUT_LE_UINT16( p, w ) do { \
|
||||
(( HB_BYTE * )( p ))[0] = ( HB_BYTE )( w ); \
|
||||
(( HB_BYTE * )( p ))[1] = ( HB_BYTE )( (w) >> 8 ); \
|
||||
(( HB_BYTE * )( p ))[ 0 ] = ( HB_BYTE )( w ); \
|
||||
(( HB_BYTE * )( p ))[ 1 ] = ( HB_BYTE )( (w) >> 8 ); \
|
||||
} while( 0 )
|
||||
#define HB_PUT_LE_UINT32( p, l ) do { \
|
||||
(( HB_BYTE * )( p ))[0] = ( HB_BYTE )( l ); \
|
||||
(( HB_BYTE * )( p ))[1] = ( HB_BYTE )( (l) >> 8 ); \
|
||||
(( HB_BYTE * )( p ))[2] = ( HB_BYTE )( (l) >> 16 ); \
|
||||
(( HB_BYTE * )( p ))[3] = ( HB_BYTE )( (l) >> 24 ); \
|
||||
(( HB_BYTE * )( p ))[ 0 ] = ( HB_BYTE )( l ); \
|
||||
(( HB_BYTE * )( p ))[ 1 ] = ( HB_BYTE )( (l) >> 8 ); \
|
||||
(( HB_BYTE * )( p ))[ 2 ] = ( HB_BYTE )( (l) >> 16 ); \
|
||||
(( HB_BYTE * )( p ))[ 3 ] = ( HB_BYTE )( (l) >> 24 ); \
|
||||
} while( 0 )
|
||||
#define HB_PUT_LE_UINT64( p, q ) do { \
|
||||
(( HB_BYTE * )( p ))[0] = ( HB_BYTE )( q ); \
|
||||
(( HB_BYTE * )( p ))[1] = ( HB_BYTE )( (q) >> 8 ); \
|
||||
(( HB_BYTE * )( p ))[2] = ( HB_BYTE )( (q) >> 16 ); \
|
||||
(( HB_BYTE * )( p ))[3] = ( HB_BYTE )( (q) >> 24 ); \
|
||||
(( HB_BYTE * )( p ))[4] = ( HB_BYTE )( (q) >> 32 ); \
|
||||
(( HB_BYTE * )( p ))[5] = ( HB_BYTE )( (q) >> 40 ); \
|
||||
(( HB_BYTE * )( p ))[6] = ( HB_BYTE )( (q) >> 48 ); \
|
||||
(( HB_BYTE * )( p ))[7] = ( HB_BYTE )( (q) >> 56 ); \
|
||||
(( HB_BYTE * )( p ))[ 0 ] = ( HB_BYTE )( q ); \
|
||||
(( HB_BYTE * )( p ))[ 1 ] = ( HB_BYTE )( (q) >> 8 ); \
|
||||
(( HB_BYTE * )( p ))[ 2 ] = ( HB_BYTE )( (q) >> 16 ); \
|
||||
(( HB_BYTE * )( p ))[ 3 ] = ( HB_BYTE )( (q) >> 24 ); \
|
||||
(( HB_BYTE * )( p ))[ 4 ] = ( HB_BYTE )( (q) >> 32 ); \
|
||||
(( HB_BYTE * )( p ))[ 5 ] = ( HB_BYTE )( (q) >> 40 ); \
|
||||
(( HB_BYTE * )( p ))[ 6 ] = ( HB_BYTE )( (q) >> 48 ); \
|
||||
(( HB_BYTE * )( p ))[ 7 ] = ( HB_BYTE )( (q) >> 56 ); \
|
||||
} while( 0 )
|
||||
# endif
|
||||
|
||||
@@ -1191,42 +1207,42 @@ typedef HB_U32 HB_FATTR;
|
||||
# else
|
||||
|
||||
#define HB_GET_BE_UINT16( p ) ( ( HB_U16 ) \
|
||||
( ( ( HB_U16 ) (( const HB_BYTE * )( p ))[0] << 8 ) | \
|
||||
( ( HB_U16 ) (( const HB_BYTE * )( p ))[1] ) ) )
|
||||
( ( ( HB_U16 ) (( const HB_BYTE * )( p ))[ 0 ] << 8 ) | \
|
||||
( ( HB_U16 ) (( const HB_BYTE * )( p ))[ 1 ] ) ) )
|
||||
#define HB_GET_BE_UINT32( p ) ( ( HB_U32 ) \
|
||||
( ( ( HB_U32 ) (( const HB_BYTE * )( p ))[0] << 24 ) | \
|
||||
( ( HB_U32 ) (( const HB_BYTE * )( p ))[1] << 16 ) | \
|
||||
( ( HB_U32 ) (( const HB_BYTE * )( p ))[2] << 8 ) | \
|
||||
( ( HB_U32 ) (( const HB_BYTE * )( p ))[3] ) ) )
|
||||
( ( ( HB_U32 ) (( const HB_BYTE * )( p ))[ 0 ] << 24 ) | \
|
||||
( ( HB_U32 ) (( const HB_BYTE * )( p ))[ 1 ] << 16 ) | \
|
||||
( ( HB_U32 ) (( const HB_BYTE * )( p ))[ 2 ] << 8 ) | \
|
||||
( ( HB_U32 ) (( const HB_BYTE * )( p ))[ 3 ] ) ) )
|
||||
#define HB_GET_BE_UINT64( p ) ( ( HB_U64 ) \
|
||||
( ( ( HB_U64 ) (( const HB_BYTE * )( p ))[0] << 56 ) | \
|
||||
( ( HB_U64 ) (( const HB_BYTE * )( p ))[1] << 48 ) | \
|
||||
( ( HB_U64 ) (( const HB_BYTE * )( p ))[2] << 40 ) | \
|
||||
( ( HB_U64 ) (( const HB_BYTE * )( p ))[3] << 32 ) | \
|
||||
( ( HB_U64 ) (( const HB_BYTE * )( p ))[4] << 24 ) | \
|
||||
( ( HB_U64 ) (( const HB_BYTE * )( p ))[5] << 16 ) | \
|
||||
( ( HB_U64 ) (( const HB_BYTE * )( p ))[6] << 8 ) | \
|
||||
( ( HB_U64 ) (( const HB_BYTE * )( p ))[7] ) ) )
|
||||
( ( ( HB_U64 ) (( const HB_BYTE * )( p ))[ 0 ] << 56 ) | \
|
||||
( ( HB_U64 ) (( const HB_BYTE * )( p ))[ 1 ] << 48 ) | \
|
||||
( ( HB_U64 ) (( const HB_BYTE * )( p ))[ 2 ] << 40 ) | \
|
||||
( ( HB_U64 ) (( const HB_BYTE * )( p ))[ 3 ] << 32 ) | \
|
||||
( ( HB_U64 ) (( const HB_BYTE * )( p ))[ 4 ] << 24 ) | \
|
||||
( ( HB_U64 ) (( const HB_BYTE * )( p ))[ 5 ] << 16 ) | \
|
||||
( ( HB_U64 ) (( const HB_BYTE * )( p ))[ 6 ] << 8 ) | \
|
||||
( ( HB_U64 ) (( const HB_BYTE * )( p ))[ 7 ] ) ) )
|
||||
|
||||
#define HB_PUT_BE_UINT16( p, w ) do { \
|
||||
(( HB_BYTE * )( p ))[0] = ( HB_BYTE )( (w) >> 8 ); \
|
||||
(( HB_BYTE * )( p ))[1] = ( HB_BYTE )( w ); \
|
||||
(( HB_BYTE * )( p ))[ 0 ] = ( HB_BYTE )( (w) >> 8 ); \
|
||||
(( HB_BYTE * )( p ))[ 1 ] = ( HB_BYTE )( w ); \
|
||||
} while( 0 )
|
||||
#define HB_PUT_BE_UINT32( p, l ) do { \
|
||||
(( HB_BYTE * )( p ))[0] = ( HB_BYTE )( (l) >> 24 ); \
|
||||
(( HB_BYTE * )( p ))[1] = ( HB_BYTE )( (l) >> 16 ); \
|
||||
(( HB_BYTE * )( p ))[2] = ( HB_BYTE )( (l) >> 8 ); \
|
||||
(( HB_BYTE * )( p ))[3] = ( HB_BYTE )( l ); \
|
||||
(( HB_BYTE * )( p ))[ 0 ] = ( HB_BYTE )( (l) >> 24 ); \
|
||||
(( HB_BYTE * )( p ))[ 1 ] = ( HB_BYTE )( (l) >> 16 ); \
|
||||
(( HB_BYTE * )( p ))[ 2 ] = ( HB_BYTE )( (l) >> 8 ); \
|
||||
(( HB_BYTE * )( p ))[ 3 ] = ( HB_BYTE )( l ); \
|
||||
} while( 0 )
|
||||
#define HB_PUT_BE_UINT64( p, q ) do { \
|
||||
(( HB_BYTE * )( p ))[0] = ( HB_BYTE )( (q) >> 56 ); \
|
||||
(( HB_BYTE * )( p ))[1] = ( HB_BYTE )( (q) >> 48 ); \
|
||||
(( HB_BYTE * )( p ))[2] = ( HB_BYTE )( (q) >> 40 ); \
|
||||
(( HB_BYTE * )( p ))[3] = ( HB_BYTE )( (q) >> 32 ); \
|
||||
(( HB_BYTE * )( p ))[4] = ( HB_BYTE )( (q) >> 24 ); \
|
||||
(( HB_BYTE * )( p ))[5] = ( HB_BYTE )( (q) >> 16 ); \
|
||||
(( HB_BYTE * )( p ))[6] = ( HB_BYTE )( (q) >> 8 ); \
|
||||
(( HB_BYTE * )( p ))[7] = ( HB_BYTE )( q ); \
|
||||
(( HB_BYTE * )( p ))[ 0 ] = ( HB_BYTE )( (q) >> 56 ); \
|
||||
(( HB_BYTE * )( p ))[ 1 ] = ( HB_BYTE )( (q) >> 48 ); \
|
||||
(( HB_BYTE * )( p ))[ 2 ] = ( HB_BYTE )( (q) >> 40 ); \
|
||||
(( HB_BYTE * )( p ))[ 3 ] = ( HB_BYTE )( (q) >> 32 ); \
|
||||
(( HB_BYTE * )( p ))[ 4 ] = ( HB_BYTE )( (q) >> 24 ); \
|
||||
(( HB_BYTE * )( p ))[ 5 ] = ( HB_BYTE )( (q) >> 16 ); \
|
||||
(( HB_BYTE * )( p ))[ 6 ] = ( HB_BYTE )( (q) >> 8 ); \
|
||||
(( HB_BYTE * )( p ))[ 7 ] = ( HB_BYTE )( q ); \
|
||||
} while( 0 )
|
||||
# endif
|
||||
|
||||
@@ -1366,32 +1382,32 @@ typedef HB_U32 HB_FATTR;
|
||||
* so we always have to build them from HB_BYTEs and cannot use C casting
|
||||
*/
|
||||
#define HB_GET_LE_INT24( p ) ( ( HB_I32 ) \
|
||||
( ( ( HB_I32 ) (( const HB_BYTE * )( p ))[0] ) | \
|
||||
( ( HB_I32 ) (( const HB_BYTE * )( p ))[1] << 8 ) | \
|
||||
( ( HB_I32 ) (( const HB_BYTE * )( p ))[2] << 16 ) | \
|
||||
( ( HB_I32 ) ((( const HB_BYTE * )( p ))[2] & 0x80 ? 0xFF : 0x00 ) << 24 ) ) )
|
||||
( ( ( HB_I32 ) (( const HB_BYTE * )( p ))[ 0 ] ) | \
|
||||
( ( HB_I32 ) (( const HB_BYTE * )( p ))[ 1 ] << 8 ) | \
|
||||
( ( HB_I32 ) (( const HB_BYTE * )( p ))[ 2 ] << 16 ) | \
|
||||
( ( HB_I32 ) ((( const HB_BYTE * )( p ))[ 2 ] & 0x80 ? 0xFF : 0x00 ) << 24 ) ) )
|
||||
#define HB_GET_LE_UINT24( p ) ( ( HB_U32 ) \
|
||||
( ( ( HB_U32 ) (( const HB_BYTE * )( p ))[0] ) | \
|
||||
( ( HB_U32 ) (( const HB_BYTE * )( p ))[1] << 8 ) | \
|
||||
( ( HB_U32 ) (( const HB_BYTE * )( p ))[2] << 16 ) ) )
|
||||
( ( ( HB_U32 ) (( const HB_BYTE * )( p ))[ 0 ] ) | \
|
||||
( ( HB_U32 ) (( const HB_BYTE * )( p ))[ 1 ] << 8 ) | \
|
||||
( ( HB_U32 ) (( const HB_BYTE * )( p ))[ 2 ] << 16 ) ) )
|
||||
#define HB_PUT_LE_UINT24( p, u ) do { \
|
||||
(( HB_BYTE * )( p ))[0] = ( HB_BYTE )( u ); \
|
||||
(( HB_BYTE * )( p ))[1] = ( HB_BYTE )( (u) >> 8 ); \
|
||||
(( HB_BYTE * )( p ))[2] = ( HB_BYTE )( (u) >> 16 ); \
|
||||
(( HB_BYTE * )( p ))[ 0 ] = ( HB_BYTE )( u ); \
|
||||
(( HB_BYTE * )( p ))[ 1 ] = ( HB_BYTE )( (u) >> 8 ); \
|
||||
(( HB_BYTE * )( p ))[ 2 ] = ( HB_BYTE )( (u) >> 16 ); \
|
||||
} while( 0 )
|
||||
#define HB_GET_BE_INT24( p ) ( ( HB_I32 ) \
|
||||
( ( ( HB_I32 ) (( const HB_BYTE * )( p ))[2] ) | \
|
||||
( ( HB_I32 ) (( const HB_BYTE * )( p ))[1] << 8 ) | \
|
||||
( ( HB_I32 ) (( const HB_BYTE * )( p ))[0] << 16 ) | \
|
||||
( ( HB_I32 ) ((( const HB_BYTE * )( p ))[0] & 0x80 ? 0xFF : 0x00 ) << 24 ) ) )
|
||||
( ( ( HB_I32 ) (( const HB_BYTE * )( p ))[ 2 ] ) | \
|
||||
( ( HB_I32 ) (( const HB_BYTE * )( p ))[ 1 ] << 8 ) | \
|
||||
( ( HB_I32 ) (( const HB_BYTE * )( p ))[ 0 ] << 16 ) | \
|
||||
( ( HB_I32 ) ((( const HB_BYTE * )( p ))[ 0 ] & 0x80 ? 0xFF : 0x00 ) << 24 ) ) )
|
||||
#define HB_GET_BE_UINT24( p ) ( ( HB_U32 ) \
|
||||
( ( ( HB_U32 ) (( const HB_BYTE * )( p ))[2] ) | \
|
||||
( ( HB_U32 ) (( const HB_BYTE * )( p ))[1] << 8 ) | \
|
||||
( ( HB_U32 ) (( const HB_BYTE * )( p ))[0] << 16 ) ) )
|
||||
( ( ( HB_U32 ) (( const HB_BYTE * )( p ))[ 2 ] ) | \
|
||||
( ( HB_U32 ) (( const HB_BYTE * )( p ))[ 1 ] << 8 ) | \
|
||||
( ( HB_U32 ) (( const HB_BYTE * )( p ))[ 0 ] << 16 ) ) )
|
||||
#define HB_PUT_BE_UINT24( p, u ) do { \
|
||||
(( HB_BYTE * )( p ))[2] = ( HB_BYTE )( u ); \
|
||||
(( HB_BYTE * )( p ))[1] = ( HB_BYTE )( (u) >> 8 ); \
|
||||
(( HB_BYTE * )( p ))[0] = ( HB_BYTE )( (u) >> 16 ); \
|
||||
(( HB_BYTE * )( p ))[ 2 ] = ( HB_BYTE )( u ); \
|
||||
(( HB_BYTE * )( p ))[ 1 ] = ( HB_BYTE )( (u) >> 8 ); \
|
||||
(( HB_BYTE * )( p ))[ 0 ] = ( HB_BYTE )( (u) >> 16 ); \
|
||||
} while( 0 )
|
||||
|
||||
|
||||
@@ -1476,28 +1492,20 @@ typedef HB_U32 HB_FATTR;
|
||||
input to a module definition file. See emxdev.doc
|
||||
in the RSXNT doc/ directory for more information. */
|
||||
#define HB_EXPORT_ATTR
|
||||
|
||||
#elif defined( __GNUC__ ) && defined( HB_OS_WIN )
|
||||
#define HB_EXPORT_ATTR __attribute__ (( dllexport ))
|
||||
|
||||
#elif defined( __GNUC__ ) && defined( HB_OS_LINUX ) && __GNUC__ >= 3
|
||||
#define HB_EXPORT_ATTR __attribute__ ((visibility ("default")))
|
||||
|
||||
#elif defined( __BORLANDC__ )
|
||||
#define HB_EXPORT_ATTR __declspec( dllexport )
|
||||
|
||||
#elif defined( __WATCOMC__ )
|
||||
#define HB_EXPORT_ATTR __declspec( dllexport )
|
||||
|
||||
#elif defined( ASANLM ) || defined( ASANT )
|
||||
#define HB_EXPORT_ATTR
|
||||
|
||||
#elif defined( HB_OS_WIN )
|
||||
#define HB_EXPORT_ATTR _declspec( dllexport )
|
||||
|
||||
#else
|
||||
#define HB_EXPORT_ATTR
|
||||
|
||||
#endif
|
||||
|
||||
#if defined( HB_DYNLIB )
|
||||
@@ -1515,25 +1523,18 @@ typedef HB_U32 HB_FATTR;
|
||||
input to a module definition file. See emxdev.doc
|
||||
in the RSXNT doc/ directory for more information. */
|
||||
#define HB_IMPORT_ATTR
|
||||
|
||||
#elif defined( __GNUC__ ) && defined( HB_OS_WIN )
|
||||
#define HB_IMPORT_ATTR __attribute__ (( dllimport ))
|
||||
|
||||
#elif defined( __BORLANDC__ )
|
||||
#define HB_IMPORT_ATTR __declspec( dllimport )
|
||||
|
||||
#elif defined( __WATCOMC__ )
|
||||
#define HB_IMPORT_ATTR __declspec( dllimport )
|
||||
|
||||
#elif defined( ASANLM ) || defined( ASANT )
|
||||
#define HB_IMPORT_ATTR
|
||||
|
||||
#elif defined( HB_OS_WIN )
|
||||
#define HB_IMPORT_ATTR _declspec( dllimport )
|
||||
|
||||
#else
|
||||
#define HB_IMPORT_ATTR
|
||||
|
||||
#endif
|
||||
|
||||
#define HB_IMPORT HB_IMPORT_ATTR
|
||||
|
||||
@@ -2848,10 +2848,10 @@ static HB_ERRCODE hb_fptGetMemo( FPTAREAP pArea, HB_USHORT uiIndex, PHB_ITEM pIt
|
||||
hb_itemPutDL( pItem, ( long ) HB_GET_LE_UINT32( pBuffer ) );
|
||||
break;
|
||||
case FPTIT_FLEX_CHAR:
|
||||
hb_itemPutNI( pItem, ( signed char ) pBuffer[0] );
|
||||
hb_itemPutNI( pItem, ( signed char ) pBuffer[ 0 ] );
|
||||
break;
|
||||
case FPTIT_FLEX_UCHAR:
|
||||
hb_itemPutNI( pItem, ( unsigned char ) pBuffer[0] );
|
||||
hb_itemPutNI( pItem, ( unsigned char ) pBuffer[ 0 ] );
|
||||
break;
|
||||
case FPTIT_FLEX_SHORT:
|
||||
hb_itemPutNI( pItem, ( short ) HB_GET_LE_UINT16( pBuffer ) );
|
||||
@@ -4813,7 +4813,7 @@ static HB_ERRCODE hb_fptPack( FPTAREAP pArea )
|
||||
{
|
||||
HB_FOFFSET size = hb_fileSize( pArea->pMemoTmpFile );
|
||||
HB_ULONG ulNextBlock;
|
||||
HB_BYTE buffer[4];
|
||||
HB_BYTE buffer[ 4 ];
|
||||
|
||||
ulNextBlock = ( HB_ULONG ) ( ( size + pArea->ulNewBlockSize - 1 ) /
|
||||
pArea->ulNewBlockSize );
|
||||
|
||||
Reference in New Issue
Block a user