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