X-Git-Url: http://git.asbjorn.biz/?p=swftools.git;a=blobdiff_plain;f=lib%2Fmodules%2Fswfshape.c;h=7bb64248d0d2d782b52fd57488c227edad1d41b9;hp=2be4ee3893a8f40c21e4f242e45e343031567768;hb=3ef17c4cee41231e1eed731c08381d3ddf0c8d1a;hpb=d1920e49f268abad90e5aabed8b65f6ea048a681 diff --git a/lib/modules/swfshape.c b/lib/modules/swfshape.c index 2be4ee3..7bb6424 100644 --- a/lib/modules/swfshape.c +++ b/lib/modules/swfshape.c @@ -926,6 +926,7 @@ void swf_Shape2ToShape(SHAPE2*shape2, SHAPE*shape) swf_ShapeSetEnd(tag); shape->data = tag->data; shape->bitlen = tag->len*8; + free(tag); } void swf_SetShape2(TAG*tag, SHAPE2*shape2) @@ -986,6 +987,13 @@ void swf_ParseDefineShape(TAG*tag, SHAPE2*shape) l = shape->lines; } +static void free_lines(SHAPELINE* lines) +{ + if (lines->next) + free_lines(lines->next); + free(lines); +} + void swf_RecodeShapeData(U8*data, int bitlen, int in_bits_fill, int in_bits_line, U8**destdata, U32*destbitlen, int out_bits_fill, int out_bits_line) { @@ -1009,6 +1017,7 @@ void swf_RecodeShapeData(U8*data, int bitlen, int in_bits_fill, int in_bits_line swf_Shape2ToShape(&s2,&s); + free_lines(s2.lines); free(s2.fillstyles); free(s2.linestyles); free(s.fillstyle.data);