From a1f9f6177fa486c5d9e7e246256bba7cd4dcb4f7 Mon Sep 17 00:00:00 2001 From: kramm <kramm> Date: Wed, 9 Jan 2002 11:51:07 +0000 Subject: [PATCH] yet more big endian fixes --- src/bitio.c | 12 +++++++----- 1 file changed, 7 insertions(+), 5 deletions(-) diff --git a/src/bitio.c b/src/bitio.c index eb7958c..fbdbe88 100644 --- a/src/bitio.c +++ b/src/bitio.c @@ -33,12 +33,12 @@ void reader_input1(struct reader_t*r, void*target) } void reader_input2(struct reader_t*r, void*target) { - memcpy(target,&r->data[r->datapos],2); + *(u16*)target = SWAP16(*(u16*)&r->data[r->datapos]); r->datapos += 2; } void reader_input4(struct reader_t*r, void*target) { - memcpy(target,&r->data[r->datapos],4); + *(u32*)target = SWAP32(*(u32*)&r->data[r->datapos]); r->datapos += 4; } uchar*reader_getinputpos(struct reader_t*r) @@ -81,7 +81,7 @@ void reader_readsbits(struct reader_t*r, s32*val,int num) { x|=(0xffffffff<<num); } - *(s32*)val=x; + *val=x; } u32 reader_getbits(struct reader_t*r, int num) @@ -146,14 +146,16 @@ void writer_writeu8(struct writer_t*w, u8 value) void writer_writeu16(struct writer_t*w, u16 value) { + u16 value2 = SWAP16(value); writer_resetbits(w); - writer_write(w, &value, 2); + writer_write(w, &value2, 2); } void writer_writeu32(struct writer_t*w, u32 value) { + u16 value2 = SWAP32(value); writer_resetbits(w); - writer_write(w, &value, 4); + writer_write(w, &value2, 4); } void* writer_getpos(struct writer_t*w) -- 1.7.10.4