byte_zero the allocated io_batch in iob_new

master
leitner 20 years ago
parent e9e8886089
commit 1205a3d38f

@ -1,9 +1,11 @@
#include <stdlib.h>
#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;
}

8
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;

Loading…
Cancel
Save