svnno****@sourc*****
svnno****@sourc*****
2011年 3月 22日 (火) 15:11:09 JST
Revision: 439 http://sourceforge.jp/projects/swfed/svn/view?view=rev&revision=439 Author: yoya Date: 2011-03-22 15:11:09 +0900 (Tue, 22 Mar 2011) Log Message: ----------- author: yoya - Sprite の入れ子はやめた (仕様書の対応タグに書かれてないので) - Sprite の refcid を書き換えた後に、->data の解放を追加 (でないと output に反映されない) Modified Paths: -------------- trunk/src/swf_object.c -------------- next part -------------- Modified: trunk/src/swf_object.c =================================================================== --- trunk/src/swf_object.c 2011-03-22 02:02:55 UTC (rev 438) +++ trunk/src/swf_object.c 2011-03-22 06:11:09 UTC (rev 439) @@ -1216,22 +1216,21 @@ int to_bitmap_id = trans_table_get(cid_trans_table, bitmap_id); swf_tag_shape_bitmap_replace_refcid(tag, to_bitmap_id); } - } - if (isSpriteTag(tag_no)){ + } else if (isSpriteTag(tag_no)){ swf_tag_sprite_detail_t *s; s = swf_tag_create_input_detail(tag, swf); if (s == NULL) { fprintf(stderr, "swf_object_replace_movieclip: s swf_tag_create_input_detail failed\n"); } trans_table_replace_refcid_recursive(s->tag, cid_trans_table); - // no break; // Sprite タグの中に入れる。 - } else { - // Sprite の前に展開 - prev_sprite_tag->next = swf_tag_move(tag); - prev_sprite_tag = prev_sprite_tag->next; - prev_sprite_tag->next = sprite_tag; - break; + free(tag->data); + tag->data = NULL; } + // Sprite の前に展開 + prev_sprite_tag->next = swf_tag_move(tag); + prev_sprite_tag = prev_sprite_tag->next; + prev_sprite_tag->next = sprite_tag; + break; // Control Tag case 0: // End case 1: // ShowFrame