@@ -56,8 +56,6 @@ MEM_STATIC void MEM_check(void) { MEM_STATIC_ASSERT((sizeof(size_t)==4) || (size
5656 typedef int32_t S32 ;
5757 typedef uint64_t U64 ;
5858 typedef int64_t S64 ;
59- typedef intptr_t iPtrDiff ;
60- typedef uintptr_t uPtrDiff ;
6159#else
6260 typedef unsigned char BYTE ;
6361 typedef unsigned short U16 ;
@@ -66,8 +64,6 @@ MEM_STATIC void MEM_check(void) { MEM_STATIC_ASSERT((sizeof(size_t)==4) || (size
6664 typedef signed int S32 ;
6765 typedef unsigned long long U64 ;
6866 typedef signed long long S64 ;
69- typedef ptrdiff_t iPtrDiff ;
70- typedef size_t uPtrDiff ;
7167#endif
7268
7369
@@ -123,20 +119,26 @@ MEM_STATIC void MEM_write64(void* memPtr, U64 value) { *(U64*)memPtr = value; }
123119/* currently only defined for gcc and icc */
124120#if defined(_MSC_VER ) || (defined(__INTEL_COMPILER ) && defined(WIN32 ))
125121 __pragma ( pack (push , 1 ) )
126- typedef union { U16 u16 ; U32 u32 ; U64 u64 ; size_t st ; } unalign ;
122+ typedef struct { U16 v ; } unalign16 ;
123+ typedef struct { U32 v ; } unalign32 ;
124+ typedef struct { U64 v ; } unalign64 ;
125+ typedef struct { size_t v ; } unalignArch ;
127126 __pragma ( pack (pop ) )
128127#else
129- typedef union { U16 u16 ; U32 u32 ; U64 u64 ; size_t st ; } __attribute__((packed )) unalign ;
128+ typedef struct { U16 v ; } __attribute__((packed )) unalign16 ;
129+ typedef struct { U32 v ; } __attribute__((packed )) unalign32 ;
130+ typedef struct { U64 v ; } __attribute__((packed )) unalign64 ;
131+ typedef struct { size_t v ; } __attribute__((packed )) unalignArch ;
130132#endif
131133
132- MEM_STATIC U16 MEM_read16 (const void * ptr ) { return ((const unalign * )ptr )-> u16 ; }
133- MEM_STATIC U32 MEM_read32 (const void * ptr ) { return ((const unalign * )ptr )-> u32 ; }
134- MEM_STATIC U64 MEM_read64 (const void * ptr ) { return ((const unalign * )ptr )-> u64 ; }
135- MEM_STATIC size_t MEM_readST (const void * ptr ) { return ((const unalign * )ptr )-> st ; }
134+ MEM_STATIC U16 MEM_read16 (const void * ptr ) { return ((const unalign16 * )ptr )-> v ; }
135+ MEM_STATIC U32 MEM_read32 (const void * ptr ) { return ((const unalign32 * )ptr )-> v ; }
136+ MEM_STATIC U64 MEM_read64 (const void * ptr ) { return ((const unalign64 * )ptr )-> v ; }
137+ MEM_STATIC size_t MEM_readST (const void * ptr ) { return ((const unalignArch * )ptr )-> v ; }
136138
137- MEM_STATIC void MEM_write16 (void * memPtr , U16 value ) { ((unalign * )memPtr )-> u16 = value ; }
138- MEM_STATIC void MEM_write32 (void * memPtr , U32 value ) { ((unalign * )memPtr )-> u32 = value ; }
139- MEM_STATIC void MEM_write64 (void * memPtr , U64 value ) { ((unalign * )memPtr )-> u64 = value ; }
139+ MEM_STATIC void MEM_write16 (void * memPtr , U16 value ) { ((unalign16 * )memPtr )-> v = value ; }
140+ MEM_STATIC void MEM_write32 (void * memPtr , U32 value ) { ((unalign32 * )memPtr )-> v = value ; }
141+ MEM_STATIC void MEM_write64 (void * memPtr , U64 value ) { ((unalign64 * )memPtr )-> v = value ; }
140142
141143#else
142144
0 commit comments