Make idev, hlink and file_struct + strings use allocation
[rsync/rsync.git] / batch.c
diff --git a/batch.c b/batch.c
index aa60130..dee68f0 100644 (file)
--- a/batch.c
+++ b/batch.c
@@ -136,26 +136,21 @@ struct file_list *create_flist_from_batch(void)
                exit_cleanup(1);
        }
 
-       batch_flist = new(struct file_list);
-       if (!batch_flist)
-               out_of_memory("create_flist_from_batch");
+       batch_flist = flist_new(WITH_HLINK, "create_flist_from_batch");
 
        save_read = stats.total_read;
        save_pv = protocol_version;
        protocol_version = read_int(f);
 
-       batch_flist->count = batch_flist->malloced = read_int(f);
-       batch_flist->files = new_array(struct file_struct *,
-           batch_flist->malloced);
-       if (!batch_flist->files)
-               out_of_memory("create_flist_from_batch");
+       batch_flist->count = read_int(f);
+       flist_expand(batch_flist);
 
        for (i = 0; (flags = read_byte(f)) != 0; i++) {
                if (protocol_version >= 28 && (flags & XMIT_EXTENDED_FLAGS))
                        flags |= read_byte(f) << 8;
-               receive_file_entry(&batch_flist->files[i], flags, f);
+               receive_file_entry(&batch_flist->files[i], flags, batch_flist, f);
        }
-       receive_file_entry(NULL, 0, 0); /* Signal that we're done. */
+       receive_file_entry(NULL, 0, NULL, 0); /* Signal that we're done. */
 
        protocol_version = save_pv;
        stats.total_read = save_read;