{
void*ptr;
if(size == 0) {
- *(int*)0 = 0xdead;
- fprintf(stderr, "Warning: Zero alloc\n");
+ //*(int*)0 = 0xdead;
+ //fprintf(stderr, "Warning: Zero alloc\n");
return 0;
}
{
void*ptr;
if(size == 0) {
- *(int*)0 = 0xdead;
- fprintf(stderr, "Warning: Zero realloc\n");
+ //*(int*)0 = 0xdead;
+ //fprintf(stderr, "Warning: Zero realloc\n");
rfx_free(data);
return 0;
}
{
void*ptr;
if(size == 0) {
- *(int*)0 = 0xdead;
- fprintf(stderr, "Warning: Zero alloc\n");
+ //*(int*)0 = 0xdead;
+ //fprintf(stderr, "Warning: Zero alloc\n");
return 0;
}
#ifdef HAVE_CALLOC
if (t->len)
{ t->data = (U8*)rfx_alloc(t->len);
t->memsize = t->len;
- if (reader->read(reader, t->data, t->len) != t->len) return NULL;
+ if (reader->read(reader, t->data, t->len) != t->len) {
+ fprintf(stderr, "rfxswf: Warning: Short read (tagid %d). File truncated?\n", t->id);
+ free(t->data);t->data=0;
+ free(t);
+ return NULL;
+ }
}
if (prev)
len += swf_WriteTag(-1,t);
if(t->id == ST_DEFINESPRITE && !swf_IsFolded(t)) inSprite++;
else if(t->id == ST_END && inSprite) inSprite--;
+ else if(t->id == ST_END && !inSprite) {
+ if(t->prev && t->prev->id!=ST_SHOWFRAME)
+ frameCount++;
+ }
else if(t->id == ST_SHOWFRAME && !inSprite) frameCount++;
t = swf_NextTag(t);
}