X-Git-Url: http://git.kpe.io/?a=blobdiff_plain;f=wdq2wav.cpp;h=1c7791f8617d7b555c88259eb92b2ea996d92e8f;hb=43d32a32bcfb879268237ccbc1e34913077a889c;hp=23e764bef1631d44f33b03372ab6c449c4bdc0fc;hpb=c4d6bc834d8ba6a3c3748996cd56706addfe4df2;p=wdq2wav.git diff --git a/wdq2wav.cpp b/wdq2wav.cpp index 23e764b..1c7791f 100644 --- a/wdq2wav.cpp +++ b/wdq2wav.cpp @@ -374,19 +374,20 @@ bool read_int4 (int fd, unsigned int& n) bool read_float8 (int fd, double& f) { - unsigned char buf[8]; - if (read (fd, &buf, 8) != 8) + unsigned char p[8]; + if (read (fd, p, 8) != 8) return false; #if WORDS_BIG_ENDIAN unsigned char c; - c = buf[0]; buf[0] = buf[7]; buf[7] = c; - c = buf[1]; buf[1] = buf[6]; buf[6] = c; - c = buf[2]; buf[2] = buf[5]; buf[5] = c; - c = buf[3]; buf[3] = buf[4]; buf[4] = c; + c = p[0]; p[0] = p[7]; p[7] = c; + c = p[1]; p[1] = p[6]; p[6] = c; + c = p[2]; p[2] = p[5]; p[5] = c; + c = p[3]; p[3] = p[4]; p[4] = c; #endif - f = *(reinterpret_cast(buf)); + double *pd = reinterpret_cast(&p[0]); + f = *pd; return true; }