X-Git-Url: http://git.asbjorn.biz/?a=blobdiff_plain;f=lib%2Fmodules%2Fswfshape.c;h=5ac06f9210053a51e7916010bfd372ea128043ee;hb=8ea466bbb98296967cf146d295fe03c812b119da;hp=187047b7ebf74f1f429893641257e0233d1ad3bd;hpb=4ac2bb486e0cf7784f7334e955d0a17bc1df41c2;p=swftools.git diff --git a/lib/modules/swfshape.c b/lib/modules/swfshape.c index 187047b..5ac06f9 100644 --- a/lib/modules/swfshape.c +++ b/lib/modules/swfshape.c @@ -418,8 +418,8 @@ 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 + 4) { - /* do not split into more than 16 segments. If the line is *that* long, something's broken */ + 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); return -1; } else { @@ -543,15 +543,17 @@ static void parseFillStyleArray(TAG*tag, SHAPE2*shape) else swf_GetRGB(tag, &dest->color); } - else if(type == 0x10 || type == 0x12) + else if(type == 0x10 || type == 0x11 || type == 0x12 || type == 0x13) { /* linear/radial gradient fill */ swf_ResetReadBits(tag); swf_GetMatrix(tag, &dest->m); swf_ResetReadBits(tag); swf_GetGradient(tag, &dest->gradient, num>=3?1:0); + if(type == 0x13) + swf_GetU8(tag); } - else if(type == 0x40 || type == 0x41) + else if(type == 0x40 || type == 0x41 || type == 0x42 || type == 0x43) { /* bitmap fill */ swf_ResetReadBits(tag);