X-Git-Url: http://git.asbjorn.biz/?a=blobdiff_plain;f=lib%2Frfxswf.c;h=2b46f53e412da1cdd93462aeabfb45ec429f41e6;hb=195da3fa2edfd23e27836c18a34b513508319f59;hp=c4f42e8c1cb7b3d1ef5b137862bd648f4e68b0ba;hpb=1233dfe1f22d9f14584e3811d480a97c6a89d4ff;p=swftools.git diff --git a/lib/rfxswf.c b/lib/rfxswf.c index c4f42e8..2b46f53 100644 --- a/lib/rfxswf.c +++ b/lib/rfxswf.c @@ -93,7 +93,7 @@ char* swf_GetString(TAG*t) U8 swf_GetU8(TAG * t) { swf_ResetReadBits(t); #ifdef DEBUG_RFXSWF - if (t->pos>=t->len) + if ((int)t->pos>=(int)t->len) { fprintf(stderr,"GetU8() out of bounds: TagID = %i\n",t->id); return 0; } @@ -105,7 +105,7 @@ U16 swf_GetU16(TAG * t) { U16 res; swf_ResetReadBits(t); #ifdef DEBUG_RFXSWF - if (t->pos>(t->len-2)) + if ((int)t->pos>((int)t->len-2)) { fprintf(stderr,"GetU16() out of bounds: TagID = %i\n",t->id); return 0; } @@ -119,7 +119,7 @@ U32 swf_GetU32(TAG * t) { U32 res; swf_ResetReadBits(t); #ifdef DEBUG_RFXSWF - if (t->pos>(t->len-4)) + if ((int)t->pos>((int)t->len-4)) { fprintf(stderr,"GetU32() out of bounds: TagID = %i\n",t->id); return 0; } @@ -177,7 +177,9 @@ int swf_SetU16(TAG * t,U16 v) void swf_SetS16(TAG * t,int v) { if(v>32767 || v<-32768) { + #ifdef DEBUG_RFXSWF fprintf(stderr, "Warning: S16 overflow: %d\n", v); + #endif } swf_SetU16(t, (S16)v); } @@ -415,7 +417,6 @@ float swf_GetF16(TAG * t) U32 f2 = (f1&0x8000)<<16; //sign f2 |= ((f1&0x7c00)<<13)+(0x40000000-(0x4000<<13)); //exp f2 |= (f1&0x03ff)<<13; //mantissa - fprintf(stderr, "%f = %d-%d-%x\n", *(float*)&f2, f1>>15, (f1>>10)&31, f1&0x3ff); return *(float*)&f2; } void swf_SetF16(TAG * t, float f) @@ -658,7 +659,9 @@ int swf_SetRect(TAG * t,SRECT * r) nbits = swf_CountBits(r->ymin,nbits); nbits = swf_CountBits(r->ymax,nbits); if(nbits>=32) { + #ifdef DEBUG_RFXSWF fprintf(stderr, "rfxswf: Warning: num_bits overflow in swf_SetRect\n"); + #endif nbits=31; } @@ -824,7 +827,9 @@ int swf_SetMatrix(TAG * t,MATRIX * m) nbits = swf_CountBits(m->sy,nbits); if(nbits>=32) { /* TODO: happens on AMD64 systems for normal values? */ + #ifdef DEBUG_RFXSWF fprintf(stderr,"rfxswf: Error: matrix values too large\n"); + #endif nbits = 31; } swf_SetBits(t,nbits,5); @@ -838,7 +843,9 @@ int swf_SetMatrix(TAG * t,MATRIX * m) nbits = swf_CountBits(m->r0,0); nbits = swf_CountBits(m->r1,nbits); if(nbits>=32) { + #ifdef DEBUG_RFXSWF fprintf(stderr,"rfxswf: Error: matrix values too large\n"); + #endif nbits = 31; } swf_SetBits(t,nbits,5); @@ -849,7 +856,9 @@ int swf_SetMatrix(TAG * t,MATRIX * m) nbits = swf_CountBits(m->tx,0); nbits = swf_CountBits(m->ty,nbits); if(nbits>=32) { + #ifdef DEBUG_RFXSWF fprintf(stderr,"rfxswf: Error: matrix values too large\n"); + #endif nbits = 31; } swf_SetBits(t,nbits,5); @@ -1133,7 +1142,9 @@ TAG * swf_ReadTag(reader_t*reader, TAG * prev) { t->data = (U8*)rfx_alloc(t->len); t->memsize = t->len; if (reader->read(reader, t->data, t->len) != t->len) { + #ifdef DEBUG_RFXSWF fprintf(stderr, "rfxswf: Warning: Short read (tagid %d). File truncated?\n", t->id); + #endif free(t->data);t->data=0; free(t); return NULL; @@ -1312,7 +1323,9 @@ void swf_FoldSprite(TAG * t) if(t->id!=ST_DEFINESPRITE) return; if(!t->len) { + #ifdef DEBUG_RFXSWF fprintf(stderr, "Error: Sprite has no ID!"); + #endif return; } if(t->len>4) {