summaryrefslogtreecommitdiffstats
diff options
context:
space:
mode:
-rw-r--r--mp3lib/decod386.c13
1 files changed, 3 insertions, 10 deletions
diff --git a/mp3lib/decod386.c b/mp3lib/decod386.c
index 5928270958..ca9979b2a4 100644
--- a/mp3lib/decod386.c
+++ b/mp3lib/decod386.c
@@ -13,13 +13,6 @@
#include "../config.h"
-#ifndef CAN_COMPILE_X86
-#ifdef ARCH_X86
-#define CAN_COMPILE_X86
-#endif
-#endif
-
-
#if 0
/* old WRITE_SAMPLE */
/* is portable */
@@ -63,9 +56,9 @@
/* sizeof(int) == 4 */
#define WRITE_SAMPLE(samples,sum,clip) { \
- double dtemp; int v; \
- dtemp = ((((65536.0 * 65536.0 * 16)+(65536.0 * 0.5))* 65536.0)) + (sum);\
- v = (((int *)&dtemp)[MANTISSA_OFFSET] - 0x80000000); \
+ union { double dtemp; int itemp[2]; } u; int v; \
+ u.dtemp = ((((65536.0 * 65536.0 * 16)+(65536.0 * 0.5))* 65536.0)) + (sum);\
+ v = u.itemp[MANTISSA_OFFSET] - 0x80000000; \
if( v > 32767) { *(samples) = 0x7fff; (clip)++; } \
else if( v < -32768) { *(samples) = -0x8000; (clip)++; } \
else { *(samples) = v; } \