}
case OP_ENDPAGE: {
msg("<trace> replay: ENDPAGE");
+ out->endpage(out);
break;
}
case OP_FINISH: {
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);
free(i->data);i->data = 0;
}
if(i->filename) {
+ unlink(i->filename);
free(i->filename);
}
free(r->internal);r->internal = 0;
{
internal_t*i = (internal_t*)dev->internal;
if(out) {
- if(i->use_tempfile) {
+ if(!i->use_tempfile) {
int len=0;
void*data = writer_growmemwrite_memptr(&i->w, &len);
reader_t r;
replay(dev, out, &r);
writer_growmemwrite_reset(&i->w);
} else {
- msg("<error> Flushing not supported for file based record device");
+ msg("<fatal> Flushing not supported for file based record device");
+ exit(1);
}
}
}
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);