len = (t->id==ST_DEFINESPRITE)?swf_DefineSprite_GetRealSize(t):t->len;
- short_tag = len<0x3f;
+ short_tag = len<0x3f&&(t->id!=ST_DEFINEBITSLOSSLESS&&t->id!=ST_DEFINEBITSLOSSLESS2);
if (writer)
{ if (short_tag)
do
{
- if(t->len<0x3f) {
+ if(t->len<0x3f&&t->id!=ST_DEFINEBITSLOSSLESS&&t->id!=ST_DEFINEBITSLOSSLESS2) {
swf_SetU16(sprtag,t->len|(t->id<<6));
} else {
swf_SetU16(sprtag,0x3f|(t->id<<6));
int fileSize = 0;
int inSprite = 0;
int writer_lastpos = 0;
+ int ret;
if (!swf) return -1;
if (!writer) return -1; // the caller should provide a nullwriter, not 0, for querying SWF size
swf_SetU16(&t1,swf->frameRate);
swf_SetU16(&t1,swf->frameCount);
- int ret = writer->write(writer,b,swf_GetTagLen(&t1));
+ ret = writer->write(writer,b,swf_GetTagLen(&t1));
if (ret!=swf_GetTagLen(&t1))
{
#ifdef DEBUG_RFXSWF