X-Git-Url: http://git.asbjorn.biz/?a=blobdiff_plain;f=lib%2Fmodules%2Fswfshape.c;h=d51f51072660534636e5f30fbbd35577d197668f;hb=e0a27e1bd83ff2d60745dd6030e0f5ef7ef97b82;hp=31635569a778771db0380f0b5290c492b2621084;hpb=6edd030417e792d2325d5d6b89a6495ab8798cba;p=swftools.git diff --git a/lib/modules/swfshape.c b/lib/modules/swfshape.c index 3163556..d51f510 100644 --- a/lib/modules/swfshape.c +++ b/lib/modules/swfshape.c @@ -21,6 +21,8 @@ along with this program; if not, write to the Free Software Foundation, Inc., 59 Temple Place, Suite 330, Boston, MA 02111-1307 USA */ +#include "../rfxswf.h" + #define SF_MOVETO 0x01 #define SF_FILL0 0x02 #define SF_FILL1 0x04 @@ -347,7 +349,12 @@ int swf_ShapeSetMove(TAG * t,SHAPE * s,S32 x,S32 y) b = swf_CountBits(x,0); b = swf_CountBits(y,b); - + + if(b>31) { + fprintf(stderr, "Warning: bad moveTo (%f,%f)\n", x/20.0, y/20.0); + b=31; + } + swf_SetBits(t,b,5); swf_SetBits(t,x,b); swf_SetBits(t,y,b); @@ -418,9 +425,9 @@ int swf_ShapeSetLine(TAG * t,SHAPE * s,S32 x,S32 y) b = swf_CountBits(y,b); if (b<2) b=2; if(b >= 18) { - if(b >= 18 + 6) { + if(b > 18 + 6) { /* do not split into more than 64 segments. If the line is *that* long, something's broken */ - fprintf(stderr, "Warning: Line to %.2f,%.2f is too long\n", (double)x,(double)y); + fprintf(stderr, "Warning: Line to %.2f,%.2f is too long (%d bits)\n", (double)x,(double)y, b); return -1; } else { /* split line */