{"thread":{"id":"37153","subject":"[PATCH] bundle: use internal argv_array of struct child_process in create_bundle()","startedAt":"2014-07-17T23:27:41Z","lastAt":"2014-07-17T23:27:41Z","messageCount":1,"participants":["René Scharfe"],"isPatch":true,"patchVersion":1,"patchTotal":null},"messages":[{"id":"246279","messageId":"53C85BED.9060207@web.de","threadId":"37153","inReplyTo":null,"subject":"[PATCH] bundle: use internal argv_array of struct child_process in create_bundle()","fromName":"René Scharfe","fromEmail":"l.s.r@web.de","sentAt":"2014-07-17T23:27:41Z","receivedAt":"2014-07-17T23:27:41Z","isPatch":true,"sender":{"key":"l.s.r@web.de","avatar":"https://avatars.githubusercontent.com/u/26122331?v=4"},"body":"Use the existing argv_array member instead of providing our own.  This\nway the argv_array is cleared after use automatically for us; it was\nleaking before.\n\nSigned-off-by: Rene Scharfe <l.s.r@web.de>\n---\n bundle.c | 15 +++++----------\n 1 file changed, 5 insertions(+), 10 deletions(-)\n\ndiff --git a/bundle.c b/bundle.c\nindex 1222952..71a21a6 100644\n--- a/bundle.c\n+++ b/bundle.c\n@@ -237,8 +237,6 @@ int create_bundle(struct bundle_header *header, const char *path,\n \tstatic struct lock_file lock;\n \tint bundle_fd = -1;\n \tint bundle_to_stdout;\n-\tstruct argv_array argv_boundary = ARGV_ARRAY_INIT;\n-\tstruct argv_array argv_pack = ARGV_ARRAY_INIT;\n \tint i, ref_count = 0;\n \tstruct strbuf buf = STRBUF_INIT;\n \tstruct rev_info revs;\n@@ -260,14 +258,12 @@ int create_bundle(struct bundle_header *header, const char *path,\n \tinit_revisions(&revs, NULL);\n \n \t/* write prerequisites */\n-\targv_array_pushl(&argv_boundary,\n+\tmemset(&rls, 0, sizeof(rls));\n+\targv_array_pushl(&rls.args,\n \t\t\t \"rev-list\", \"--boundary\", \"--pretty=oneline\",\n \t\t\t NULL);\n \tfor (i = 1; i < argc; i++)\n-\t\targv_array_push(&argv_boundary, argv[i]);\n-\n-\tmemset(&rls, 0, sizeof(rls));\n-\trls.argv = argv_boundary.argv;\n+\t\targv_array_push(&rls.args, argv[i]);\n \trls.out = -1;\n \trls.git_cmd = 1;\n \tif (start_command(&rls))\n@@ -382,12 +378,11 @@ int create_bundle(struct bundle_header *header, const char *path,\n \twrite_or_die(bundle_fd, \"\\n\", 1);\n \n \t/* write pack */\n-\targv_array_pushl(&argv_pack,\n+\tmemset(&rls, 0, sizeof(rls));\n+\targv_array_pushl(&rls.args,\n \t\t\t \"pack-objects\", \"--all-progress-implied\",\n \t\t\t \"--stdout\", \"--thin\", \"--delta-base-offset\",\n \t\t\t NULL);\n-\tmemset(&rls, 0, sizeof(rls));\n-\trls.argv = argv_pack.argv;\n \trls.in = -1;\n \trls.out = bundle_fd;\n \trls.git_cmd = 1;\n-- \n2.0.0\n"}]}