X-Git-Url: http://git.asbjorn.biz/?a=blobdiff_plain;ds=sidebyside;f=lib%2Fmodules%2Fswfaction.c;h=85fab91fcde0e0dc26bd370daa81c564362087a6;hb=382c70ad1125c71b2e978872b944239dc1e15d59;hp=c7ee11ea986a82264b21317cf572d42577623942;hpb=89c396c577d23e7c9c2a91ec0affba6ba724a5c7;p=swftools.git diff --git a/lib/modules/swfaction.c b/lib/modules/swfaction.c index c7ee11e..85fab91 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,16 +308,17 @@ void swf_DumpActions(ActionTAG*atag, char*prefix) printf(" %d", *data); } break; case 'b': { - printf(" %d", *(U16*)data); + printf(" %d", data[0]+256*(signed char)data[1]); } break; case 'p': { U8 type = *data; - char*value = data+1; + unsigned char*value = data+1; 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,21 @@ 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; - for(t=0;t<8;t++) - a[7-t]=value[t]; - printf(" double:%f", *(double*)a); -#else - printf(" double:%f", *(double*)value); + memcpy(&a[4],value,4); + memcpy(a,&value[4],4); +#ifdef WORDS_BIGENDIAN + for(t=0;t<4;t++) { + U8 tmp = a[t]; + a[t]=a[7-t]; + a[7-t] = tmp; + } #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