vcs-svn: do not initialize report_buffer twice

When importing from a dump with deltas, first fast_export_init calls
buffer_fdinit, and then init_report_buffer calls fdopen once again
when processing the first delta.  The second initialization is
redundant and leaks a FILE *.

Remove the redundant on-demand initialization to fix this.
Initializing directly in fast_export_init is simpler and lets the
caller pass an int specifying which fd to use instead of hard-coding
REPORT_FILENO.

Signed-off-by: Dmitry Ivankov <divanorama@gmail.com>
Signed-off-by: Jonathan Nieder <jrnieder@gmail.com>
This commit is contained in:
Dmitry Ivankov 2011-06-20 14:22:47 +06:00 committed by Jonathan Nieder
parent 3ac10b2e3f
commit c5f1fbe7bc

View file

@ -14,7 +14,6 @@
#include "line_buffer.h"
#define MAX_GITSVN_LINE_LEN 4096
#define REPORT_FILENO 3
static uint32_t first_commit_done;
static struct line_buffer postimage = LINE_BUFFER_INIT;
@ -30,15 +29,6 @@ static int init_postimage(void)
return buffer_tmpfile_init(&postimage);
}
static int init_report_buffer(int fd)
{
static int report_buffer_initialized;
if (report_buffer_initialized)
return 0;
report_buffer_initialized = 1;
return buffer_fdinit(&report_buffer, fd);
}
void fast_export_init(int fd)
{
if (buffer_fdinit(&report_buffer, fd))
@ -203,8 +193,6 @@ static long apply_delta(off_t len, struct line_buffer *input,
if (init_postimage() || !(out = buffer_tmpfile_rewind(&postimage)))
die("cannot open temporary file for blob retrieval");
if (init_report_buffer(REPORT_FILENO))
die("cannot open fd 3 for feedback from fast-import");
if (old_data) {
const char *response;
printf("cat-blob %s\n", old_data);