summaryrefslogtreecommitdiff
path: root/src
diff options
context:
space:
mode:
authorMiguel Freitas <miguelfreitas@users.sourceforge.net>2005-05-28 23:17:57 +0000
committerMiguel Freitas <miguelfreitas@users.sourceforge.net>2005-05-28 23:17:57 +0000
commit4f75d566bd8181d36dfddac20ff50556e2f11f47 (patch)
treedb5a042193bd5737407e436d6753c314d42d8a16 /src
parent6c777845746cb94cf6b9997f5c5a3408894f119e (diff)
downloadxine-lib-4f75d566bd8181d36dfddac20ff50556e2f11f47.tar.gz
xine-lib-4f75d566bd8181d36dfddac20ff50556e2f11f47.tar.bz2
**BUGFIX**
fix LE_64 and BE_64 macros on non-x86 arches try to make all these macros safer with extra typecasting thanks Diego 'Flameeyes' Petten CVS patchset: 7586 CVS date: 2005/05/28 23:17:57
Diffstat (limited to 'src')
-rw-r--r--src/xine-engine/bswap.h54
1 files changed, 28 insertions, 26 deletions
diff --git a/src/xine-engine/bswap.h b/src/xine-engine/bswap.h
index 6e3074326..ad06ba919 100644
--- a/src/xine-engine/bswap.h
+++ b/src/xine-engine/bswap.h
@@ -122,32 +122,34 @@ inline static unsigned long long int ByteSwap64(unsigned long long int x)
#else
-#define BE_16(x) ((((uint8_t*)(x))[0] << 8) | ((uint8_t*)(x))[1])
-#define BE_32(x) ((((uint8_t*)(x))[0] << 24) | \
- (((uint8_t*)(x))[1] << 16) | \
- (((uint8_t*)(x))[2] << 8) | \
- ((uint8_t*)(x))[3])
-#define BE_64(x) ((uint64_t)(((uint8_t*)(x))[0] << 56) | \
- (uint64_t)(((uint8_t*)(x))[1] << 48) | \
- (uint64_t)(((uint8_t*)(x))[2] << 40) | \
- (uint64_t)(((uint8_t*)(x))[3] << 32) | \
- (uint64_t)(((uint8_t*)(x))[4] << 24) | \
- (uint64_t)(((uint8_t*)(x))[5] << 16) | \
- (uint64_t)(((uint8_t*)(x))[6] << 8) | \
- (uint64_t)((uint8_t*)(x))[7])
-#define LE_16(x) ((((uint8_t*)(x))[1] << 8) | ((uint8_t*)(x))[0])
-#define LE_32(x) ((((uint8_t*)(x))[3] << 24) | \
- (((uint8_t*)(x))[2] << 16) | \
- (((uint8_t*)(x))[1] << 8) | \
- ((uint8_t*)(x))[0])
-#define LE_64(x) ((uint64_t)(((uint8_t*)(x))[7] << 56) | \
- (uint64_t)(((uint8_t*)(x))[6] << 48) | \
- (uint64_t)(((uint8_t*)(x))[5] << 40) | \
- (uint64_t)(((uint8_t*)(x))[4] << 32) | \
- (uint64_t)(((uint8_t*)(x))[3] << 24) | \
- (uint64_t)(((uint8_t*)(x))[2] << 16) | \
- (uint64_t)(((uint8_t*)(x))[1] << 8) | \
- (uint64_t)((uint8_t*)(x))[0])
+#define BE_16(x) (((uint16_t)(((uint8_t*)(x))[0]) << 8) | \
+ ((uint16_t)((uint8_t*)(x))[1]))
+#define BE_32(x) (((uint32_t)(((uint8_t*)(x))[0]) << 24) | \
+ ((uint32_t)(((uint8_t*)(x))[1]) << 16) | \
+ ((uint32_t)(((uint8_t*)(x))[2]) << 8) | \
+ ((uint32_t)((uint8_t*)(x))[3]))
+#define BE_64(x) (((uint64_t)(((uint8_t*)(x))[0]) << 56) | \
+ ((uint64_t)(((uint8_t*)(x))[1]) << 48) | \
+ ((uint64_t)(((uint8_t*)(x))[2]) << 40) | \
+ ((uint64_t)(((uint8_t*)(x))[3]) << 32) | \
+ ((uint64_t)(((uint8_t*)(x))[4]) << 24) | \
+ ((uint64_t)(((uint8_t*)(x))[5]) << 16) | \
+ ((uint64_t)(((uint8_t*)(x))[6]) << 8) | \
+ ((uint64_t)((uint8_t*)(x))[7]))
+#define LE_16(x) (((uint16_t)(((uint8_t*)(x))[1]) << 8) | \
+ ((uint16_t)((uint8_t*)(x))[0]))
+#define LE_32(x) (((uint32_t)(((uint8_t*)(x))[3]) << 24) | \
+ ((uint32_t)(((uint8_t*)(x))[2]) << 16) | \
+ ((uint32_t)(((uint8_t*)(x))[1]) << 8) | \
+ ((uint32_t)((uint8_t*)(x))[0]))
+#define LE_64(x) (((uint64_t)(((uint8_t*)(x))[7]) << 56) | \
+ ((uint64_t)(((uint8_t*)(x))[6]) << 48) | \
+ ((uint64_t)(((uint8_t*)(x))[5]) << 40) | \
+ ((uint64_t)(((uint8_t*)(x))[4]) << 32) | \
+ ((uint64_t)(((uint8_t*)(x))[3]) << 24) | \
+ ((uint64_t)(((uint8_t*)(x))[2]) << 16) | \
+ ((uint64_t)(((uint8_t*)(x))[1]) << 8) | \
+ ((uint64_t)((uint8_t*)(x))[0]))
#endif /* !ARCH_X86 */