U8* swf_GetTagLenPtr(TAG * t) { return &(t->data[t->len]); }
U32 swf_GetTagPos(TAG * t) { return t->pos; }
-// Basic Data Access Functions
-
-#define swf_ResetReadBits(tag) if (tag->readBit) { tag->pos++; tag->readBit = 0; }
-#define swf_ResetWriteBits(tag) if (tag->writeBit) { tag->writeBit = 0; }
-
// for future purpose: avoid high level lib functions to change tagpos/bitpos
#define swf_SaveTagPos(tag)
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));