X-Git-Url: http://git.asbjorn.biz/?p=swftools.git;a=blobdiff_plain;f=lib%2Fdevices%2Frecord.c;h=c8e4ffeba04deebaaac7c3044c8e49a03a3702cc;hp=ae493ee9ee52ab369067f2369907e0ec1708810c;hb=a725c3e28bafaf52cc45bdacf730b80edd83756d;hpb=5e60b81690ac5883abe4f68b61814b8764604fd1 diff --git a/lib/devices/record.c b/lib/devices/record.c index ae493ee..c8e4ffe 100644 --- a/lib/devices/record.c +++ b/lib/devices/record.c @@ -584,7 +584,7 @@ void gfxresult_record_replay(gfxresult_t*result, gfxdevice_t*device) internal_result_t*i = (internal_result_t*)result->internal; reader_t r; - if(i->filename) { + if(i->use_tempfile) { reader_init_filereader2(&r, i->filename); } else { reader_init_memreader(&r, i->data, i->length); @@ -633,6 +633,7 @@ static void record_result_destroy(gfxresult_t*r) free(i->data);i->data = 0; } if(i->filename) { + unlink(i->filename); free(i->filename); } free(r->internal);r->internal = 0; @@ -676,7 +677,8 @@ void gfxdevice_record_flush(gfxdevice_t*dev, gfxdevice_t*out) replay(dev, out, &r); writer_growmemwrite_reset(&i->w); } else { - msg(" Flushing not supported for file based record device"); + msg(" Flushing not supported for file based record device"); + exit(1); } } } @@ -698,10 +700,10 @@ static gfxresult_t* record_finish(struct _gfxdevice*dev) ir->use_tempfile = i->use_tempfile; if(i->use_tempfile) { + ir->filename = i->filename; + } else { ir->data = writer_growmemwrite_getmem(&i->w); ir->length = i->w.pos; - } else { - ir->filename = i->filename; } i->w.finish(&i->w);