X-Git-Url: http://git.asbjorn.biz/?a=blobdiff_plain;f=lib%2Frfxswf.c;h=d75868da78cee98eecdd6e3c69063773f9ff4d6b;hb=8a36aae086ac8f9ff6814fd0a2d8c5829b80594b;hp=5acb5544e373f56ebc39a83b62c28ec7a7fcfb40;hpb=2583e3a3d7b101fae3a1b4cd91769b41e9b89492;p=swftools.git diff --git a/lib/rfxswf.c b/lib/rfxswf.c index 5acb554..d75868d 100644 --- a/lib/rfxswf.c +++ b/lib/rfxswf.c @@ -863,15 +863,18 @@ TAG* swf_CopyTag(TAG*tag, TAG*to_copy) return tag; } -int swf_DeleteTag(TAG * t) -{ if (!t) return -1; +TAG* swf_DeleteTag(SWF*swf, TAG * t) +{ + TAG*next = t->next; + if (swf && swf->firstTag==t) + swf->firstTag = t->next; if (t->prev) t->prev->next = t->next; if (t->next) t->next->prev = t->prev; if (t->data) rfx_free(t->data); rfx_free(t); - return 0; + return next; } TAG * swf_ReadTag(reader_t*reader, TAG * prev) @@ -1139,7 +1142,7 @@ void swf_FoldSprite(TAG * t) if(t->id == ST_END) level--; t = swf_NextTag(t); - swf_DeleteTag(tmp); + swf_DeleteTag(0, tmp); } while (t && level); if(level)