tag->next = level0;
tag->prev = level0->prev;
level0->prev = tag;
- tag->prev->next = tag;
+ if(tag->prev)
+ tag->prev->next = tag;
+ else
+ swf->firstTag = tag;
changes = 1;
}
}
#ifdef INSERT_RFX_TAG
- if (swf->firstTag && swf_NextTag(swf->firstTag))
- if (swf_GetTagID(swf_NextTag(swf->firstTag))!=ST_REFLEX)
+ if (swf->firstTag && swf->firstTag->next &&
+ (swf->firstTag->id != ST_REFLEX || swf->firstTag->next->id != ST_REFLEX)
+ ) {
swf_SetBlock(swf_InsertTagBefore(swf, swf->firstTag,ST_REFLEX),"rfx",3);
+ }
#endif // INSERT_RFX_TAG
SWF* swf_CopySWF(SWF*swf)
{
SWF*nswf = rfx_alloc(sizeof(SWF));
+ TAG*tag, *ntag;
memcpy(nswf, swf, sizeof(SWF));
nswf->firstTag = 0;
- TAG*tag = swf->firstTag;
- TAG*ntag = 0;
+ tag = swf->firstTag;
+ ntag = 0;
while(tag) {
ntag = swf_CopyTag(ntag, tag);
if(!nswf->firstTag)
nswf->firstTag = ntag;
+ tag = tag->next;
}
return nswf;
}