2010-06-18 10:58 UTC+0200 Viktor Szakats (harbour.01 syenar.hu)

* include/hbdefs.h
    + HB_SIZE/HB_ISIZ set to 64-bit value on Win64 targets.
      This change should finally fix the many casting errors appearing 
      in Win64 builds of Harbour, plus it enables to use proper 64-bit 
      sizes for strings and arrays.
    ; TODO: Test and fix and places where this may cause a problem.
            Delete all now unnecessary casting from size_t to HB_SIZE.
            (f.e. '( HB_SIZE ) strlen(')
This commit is contained in:
Viktor Szakats
2010-06-18 08:59:21 +00:00
parent d1af4bdc11
commit 06e2c4617e
2 changed files with 20 additions and 2 deletions

View File

@@ -16,6 +16,16 @@
The license applies to all entries newer than 2009-04-28.
*/
2010-06-18 10:58 UTC+0200 Viktor Szakats (harbour.01 syenar.hu)
* include/hbdefs.h
+ HB_SIZE/HB_ISIZ set to 64-bit value on Win64 targets.
This change should finally fix the many casting errors appearing
in Win64 builds of Harbour, plus it enables to use proper 64-bit
sizes for strings and arrays.
; TODO: Test and fix and places where this may cause a problem.
Delete all now unnecessary casting from size_t to HB_SIZE.
(f.e. '( HB_SIZE ) strlen(')
2010-06-18 10:50 UTC+0200 Viktor Szakats (harbour.01 syenar.hu)
* include/hbdefs.h
+ Rearranged types to first define base Harbour types, then

View File

@@ -232,6 +232,7 @@
#endif /* HB_LONG_LONG_OFF */
/* Basic types */
#define HB_FALSE 0
#define HB_TRUE (!0)
@@ -244,8 +245,15 @@ typedef long HB_LONG; /* WARNING: These types have a ne
typedef unsigned long HB_ULONG; /* WARNING: These types have a new size in Harbour 2.1.x and upper. */
typedef int HB_INT;
typedef unsigned int HB_UINT;
typedef unsigned long HB_SIZE; /* TODO: Currently 'unsigned long', to be changed to HB_LONGLONG on win64, long on other systems */
typedef long HB_ISIZ; /* TODO: Change to HB_SIZE, after HB_SIZE has been converted to signed type. TEMPORARY type. */
/* Harbour size type */
#if defined( HB_OS_WIN_64 )
typedef HB_ULONGLONG HB_SIZE; /* TODO: Currently 'unsigned', to be changed 'signed' */
typedef HB_LONGLONG HB_ISIZ; /* TODO: Change to HB_SIZE, after HB_SIZE has been converted to signed type. TEMPORARY type. */
#else
typedef HB_ULONG HB_SIZE; /* TODO: Currently 'unsigned', to be changed 'signed' */
typedef HB_LONG HB_ISIZ; /* TODO: Change to HB_SIZE, after HB_SIZE has been converted to signed type. TEMPORARY type. */
#endif
/* Convenience */
typedef HB_UCHAR HB_BYTE;