adhere to C strict aliasing rules

This commit is contained in:
Lennart Poettering 2008-08-09 17:03:43 +02:00
parent 432b4e5f7d
commit afbfd5d937

View file

@ -46,9 +46,14 @@
#endif
static inline float PA_FLOAT32_SWAP(float x) {
uint32_t i = *(uint32_t*) &x;
i = PA_UINT32_SWAP(i);
return *(float*) &i;
union {
float f;
uint32_t u;
} t;
t.f = x;
t.u = PA_UINT32_SWAP(t.u);
return t.f;
}
#define PA_MAYBE_INT16_SWAP(c,x) ((c) ? PA_INT32_SWAP(x) : x)