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 <stdlib.h>
#include "byte.h"
#include "iob_internal.h" #include "iob_internal.h"
io_batch* iob_new(int hint_entries) { io_batch* iob_new(int hint_entries) {
io_batch* b=(io_batch*)malloc(sizeof(io_batch)); io_batch* b=(io_batch*)malloc(sizeof(io_batch));
if (!b) return 0; if (!b) return 0;
byte_zero(b,sizeof(io_batch));
if (hint_entries) { if (hint_entries) {
if (!array_allocate(&b->b,sizeof(iob_entry),hint_entries)) { if (!array_allocate(&b->b,sizeof(iob_entry),hint_entries)) {
free(b); free(b);
@ -11,7 +13,5 @@ io_batch* iob_new(int hint_entries) {
} }
array_trunc(&b->b); array_trunc(&b->b);
} }
b->next=b->bufs=b->files=0;
b->bytesleft=0;
return b; return b;
} }

8
t.c

@ -37,11 +37,11 @@ int64 writecb(int64 fd,const void* buf,uint64 n) {
} }
int main(int argc,char* argv[]) { int main(int argc,char* argv[]) {
static io_batch b; io_batch* b=iob_new(1234);
int64 fd=open("t.c",0); int64 fd=open("t.c",0);
iob_addbuf(&b,"fnord",5); iob_addbuf(b,"fnord",5);
iob_addfile_close(&b,fd,0,7365); iob_addfile_close(b,fd,0,7365);
iob_write(1,&b,writecb); iob_write(1,b,writecb);
#if 0 #if 0
char dest[1024]; char dest[1024];
unsigned long len; unsigned long len;

Loading…
Cancel
Save