Code

vcs-svn: do not initialize report_buffer twice
authorDmitry Ivankov <divanorama@gmail.com>
Mon, 20 Jun 2011 08:22:47 +0000 (14:22 +0600)
committerJonathan Nieder <jrnieder@gmail.com>
Tue, 21 Jun 2011 10:02:57 +0000 (05:02 -0500)
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>
vcs-svn/fast_export.c

index 97f5fdf48985d408a4944ad678fb04a5ad9c6157..3efde20a0cac6309e51a51745be8919ee63dccde 100644 (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);