git.asbjorn.biz
/
swftools.git
/ blobdiff
commit
grep
author
committer
pickaxe
?
search:
re
summary
|
shortlog
|
log
|
commit
|
commitdiff
|
tree
raw
|
inline
| side by side
fixed bug in swf_OptimizeTagOrder().
[swftools.git]
/
lib
/
rfxswf.c
diff --git
a/lib/rfxswf.c
b/lib/rfxswf.c
index
ae33ad5
..
4a409ac
100644
(file)
--- a/
lib/rfxswf.c
+++ b/
lib/rfxswf.c
@@
-1229,7
+1229,10
@@
void swf_OptimizeTagOrder(SWF*swf)
tag->next = level0;
tag->prev = level0->prev;
level0->prev = tag;
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;
}
}
changes = 1;
}
}
@@
-1311,9
+1314,11
@@
int swf_WriteSWF2(struct writer_t*writer, SWF * swf) // Writes SWF to file,
#ifdef INSERT_RFX_TAG
#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);
swf_SetBlock(swf_InsertTagBefore(swf, swf->firstTag,ST_REFLEX),"rfx",3);
+ }
#endif // INSERT_RFX_TAG
#endif // INSERT_RFX_TAG
@@
-1499,6
+1504,7
@@
SWF* swf_CopySWF(SWF*swf)
ntag = swf_CopyTag(ntag, tag);
if(!nswf->firstTag)
nswf->firstTag = ntag;
ntag = swf_CopyTag(ntag, tag);
if(!nswf->firstTag)
nswf->firstTag = ntag;
+ tag = tag->next;
}
return nswf;
}
}
return nswf;
}