X-Git-Url: http://git.tuebingen.mpg.de/?p=paraslash.git;a=blobdiff_plain;f=write.c;h=c64ecb636220c275a244162990c1756949387b1f;hp=4d06e8048a5351abe2c62bd669e01e3228eb76cb;hb=c282c836791cedf57c128555af90af37c7c01c05;hpb=fb6d93240bb9c7c3d2c8e1826d722296002fb487 diff --git a/write.c b/write.c index 4d06e804..c64ecb63 100644 --- a/write.c +++ b/write.c @@ -282,7 +282,7 @@ static int main_btr(struct sched *s) { int i, ret; struct check_wav_task_btr _cwt, *cwt = &_cwt; - struct writer_node **wns; + struct writer_node *wns; loglevel = get_loglevel_by_name(conf.loglevel_arg); sit.btrn = btr_new_node("stdin", NULL /* stdin has no parent */, NULL, NULL); @@ -300,17 +300,17 @@ static int main_btr(struct sched *s) ret = -E_WRITE_SYNTAX; if (!conf.writer_given) { i = 0; - wns = para_malloc(sizeof(*wns)); - wns[0] = setup_writer_node(NULL, cwt->btrn); - if (!wns[0]) + wns = para_calloc(sizeof(*wns)); + ret = setup_writer_node(NULL, cwt->btrn, wns); + if (ret < 0) goto out; i = 1; } else { - wns = para_malloc(conf.writer_given * sizeof(*wns)); + wns = para_calloc(conf.writer_given * sizeof(*wns)); for (i = 0; i < conf.writer_given; i++) { - wns[i] = setup_writer_node(conf.writer_arg[i], - cwt->btrn); - if (!wns[i]) + ret = setup_writer_node(conf.writer_arg[i], + cwt->btrn, wns + i); + if (ret < 0) goto out; } } @@ -320,7 +320,7 @@ static int main_btr(struct sched *s) ret = schedule(s); out: for (i--; i >= 0; i--) { - struct writer_node *wn = wns[i]; + struct writer_node *wn = wns + i; struct writer *w = writers + wn->writer_num; w->close(wn);