@@ -56,8 +56,6 @@ MEM_STATIC void MEM_check(void) { MEM_STATIC_ASSERT((sizeof(size_t)==4) || (size
56
56
typedef int32_t S32 ;
57
57
typedef uint64_t U64 ;
58
58
typedef int64_t S64 ;
59
- typedef intptr_t iPtrDiff ;
60
- typedef uintptr_t uPtrDiff ;
61
59
#else
62
60
typedef unsigned char BYTE ;
63
61
typedef unsigned short U16 ;
@@ -66,8 +64,6 @@ MEM_STATIC void MEM_check(void) { MEM_STATIC_ASSERT((sizeof(size_t)==4) || (size
66
64
typedef signed int S32 ;
67
65
typedef unsigned long long U64 ;
68
66
typedef signed long long S64 ;
69
- typedef ptrdiff_t iPtrDiff ;
70
- typedef size_t uPtrDiff ;
71
67
#endif
72
68
73
69
@@ -123,20 +119,26 @@ MEM_STATIC void MEM_write64(void* memPtr, U64 value) { *(U64*)memPtr = value; }
123
119
/* currently only defined for gcc and icc */
124
120
#if defined(_MSC_VER ) || (defined(__INTEL_COMPILER ) && defined(WIN32 ))
125
121
__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 ;
127
126
__pragma ( pack (pop ) )
128
127
#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 ;
130
132
#endif
131
133
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 ; }
136
138
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 ; }
140
142
141
143
#else
142
144
0 commit comments