From 509560c32d1fb39bf51a6a3dce271f0f6954c5c8 Mon Sep 17 00:00:00 2001 From: kramm Date: Mon, 7 Jan 2002 21:10:18 +0000 Subject: [PATCH] yet more big endian/solaris fixes. (especially the bus error type) --- lib/modules/swfaction.c | 20 +++++++++++--------- 1 file changed, 11 insertions(+), 9 deletions(-) diff --git a/lib/modules/swfaction.c b/lib/modules/swfaction.c index c7ee11e..c20e491 100644 --- a/lib/modules/swfaction.c +++ b/lib/modules/swfaction.c @@ -276,8 +276,8 @@ void swf_DumpActions(ActionTAG*atag, char*prefix) { switch(*cp) { - case 'f': { - printf(" %d", SWAP16(*(U16*)data)); + case 'f': { //frame + printf(" %d", data[0]+256*data[1]); } break; case 'u': { printf(" URL:\"%s\"", data); @@ -308,7 +308,7 @@ void swf_DumpActions(ActionTAG*atag, char*prefix) printf(" %d", *data); } break; case 'b': { - printf(" %d", *(U16*)data); + printf(" %d", data[0]+256*data[1]); } break; case 'p': { U8 type = *data; @@ -316,8 +316,9 @@ void swf_DumpActions(ActionTAG*atag, char*prefix) if(type == 0) { printf(" String:\"%s\"", value); } else if (type == 1) { - U32 v = SWAP32(*(U32*)value); - printf(" Float:%f", *(float*)&v); + U32 f = value[0]+(value[1]<<8)+ + (value[2]<<16)+(value[3]<<24); + printf(" Float:%f", *(float*)&f); } else if (type == 2) { printf(" NULL"); } else if (type == 4) { @@ -325,17 +326,18 @@ void swf_DumpActions(ActionTAG*atag, char*prefix) } else if (type == 5) { printf(" bool:%s", *value?"true":"false"); } else if (type == 6) { -#ifdef WORDS_BIGENDIAN U8 a[8]; int t; +#ifdef WORDS_BIGENDIAN for(t=0;t<8;t++) a[7-t]=value[t]; - printf(" double:%f", *(double*)a); #else - printf(" double:%f", *(double*)value); + memcpy(a,value,8); #endif + printf(" double:%f", *(double*)a); } else if (type == 7) { - printf(" int:%d", SWAP32(*(int*)value)); + printf(" int:%d", value[0]+(value[1]<<8)+ + (value[2]<<16)+(value[3]<<24)); } else if (type == 8) { printf(" Lookup:%d", *value); #ifdef MAX_LOOKUP -- 1.7.10.4