From: kramm Date: Mon, 19 Nov 2001 14:37:50 +0000 (+0000) Subject: SetMatrix: Handle matrix values which are too large. X-Git-Tag: release-0-1-2~9 X-Git-Url: http://git.asbjorn.biz/?a=commitdiff_plain;h=a05dff1a071e82d3817eddb45972900b3076997a;hp=b3393ea6b04c1033e12b1738b5e2e930213e1ded;p=swftools.git SetMatrix: Handle matrix values which are too large. (0x80000000-0xbfffffff, 0x40000000-0x7fffffff) --- diff --git a/lib/rfxswf.c b/lib/rfxswf.c index f40d719..605e630 100644 --- a/lib/rfxswf.c +++ b/lib/rfxswf.c @@ -354,6 +354,10 @@ int swf_SetMatrix(TAG * t,MATRIX * m) { swf_SetBits(t,1,1); nbits = swf_CountBits(m->sx,0); nbits = swf_CountBits(m->sy,nbits); + if(nbits>=32) { + fprintf(stderr,"rfxswf: Error: matrix values too large\n"); + nbits = 31; + } swf_SetBits(t,nbits,5); swf_SetBits(t,m->sx,nbits); swf_SetBits(t,m->sy,nbits); @@ -364,6 +368,10 @@ int swf_SetMatrix(TAG * t,MATRIX * m) { swf_SetBits(t,1,1); nbits = swf_CountBits(m->r0,0); nbits = swf_CountBits(m->r1,nbits); + if(nbits>=32) { + fprintf(stderr,"rfxswf: Error: matrix values too large\n"); + nbits = 31; + } swf_SetBits(t,nbits,5); swf_SetBits(t,m->r0,nbits); swf_SetBits(t,m->r1,nbits); @@ -371,6 +379,10 @@ int swf_SetMatrix(TAG * t,MATRIX * m) nbits = swf_CountBits(m->tx,0); nbits = swf_CountBits(m->ty,nbits); + if(nbits>=32) { + fprintf(stderr,"rfxswf: Error: matrix values too large\n"); + nbits = 31; + } swf_SetBits(t,nbits,5); swf_SetBits(t,m->tx,nbits); swf_SetBits(t,m->ty,nbits);