diff --git a/io/iob_new.c b/io/iob_new.c index 0b23af4..dfd158f 100644 --- a/io/iob_new.c +++ b/io/iob_new.c @@ -1,9 +1,11 @@ #include +#include "byte.h" #include "iob_internal.h" io_batch* iob_new(int hint_entries) { io_batch* b=(io_batch*)malloc(sizeof(io_batch)); if (!b) return 0; + byte_zero(b,sizeof(io_batch)); if (hint_entries) { if (!array_allocate(&b->b,sizeof(iob_entry),hint_entries)) { free(b); @@ -11,7 +13,5 @@ io_batch* iob_new(int hint_entries) { } array_trunc(&b->b); } - b->next=b->bufs=b->files=0; - b->bytesleft=0; return b; } diff --git a/t.c b/t.c index 8714ce2..fbb28ab 100644 --- a/t.c +++ b/t.c @@ -37,11 +37,11 @@ int64 writecb(int64 fd,const void* buf,uint64 n) { } int main(int argc,char* argv[]) { - static io_batch b; + io_batch* b=iob_new(1234); int64 fd=open("t.c",0); - iob_addbuf(&b,"fnord",5); - iob_addfile_close(&b,fd,0,7365); - iob_write(1,&b,writecb); + iob_addbuf(b,"fnord",5); + iob_addfile_close(b,fd,0,7365); + iob_write(1,b,writecb); #if 0 char dest[1024]; unsigned long len;