summaryrefslogtreecommitdiff
path: root/builtin/fetch.c
diff options
context:
space:
mode:
authorJens Lehmann <Jens.Lehmann@web.de>2012-09-01 15:27:06 (GMT)
committerJunio C Hamano <gitster@pobox.com>2012-09-03 04:13:50 (GMT)
commit50d89ad6542c8acafefa6d42f8b42dfa9b8fafe1 (patch)
tree15fdf8cce305fb0f82deb78c820f34c341a732f1 /builtin/fetch.c
parent85556d4e37db4c8ed88c68a602f6f85054996bea (diff)
downloadgit-50d89ad6542c8acafefa6d42f8b42dfa9b8fafe1.zip
git-50d89ad6542c8acafefa6d42f8b42dfa9b8fafe1.tar.gz
git-50d89ad6542c8acafefa6d42f8b42dfa9b8fafe1.tar.bz2
submodule: use argv_array instead of hand-building arrays
fetch_populated_submodules() allocates the full argv array it uses to recurse into the submodules from the number of given options plus the six argv values it is going to add. It then initializes it with those values which won't change during the iteration and copies the given options into it. Inside the loop the two argv values different for each submodule get replaced with those currently valid. However, this technique is brittle and error-prone (as the comment to explain the magic number 6 indicates), so let's replace it with an argv_array. Instead of replacing the argv values, push them to the argv_array just before the run_command() call (including the option separating them) and pop them from the argv_array right after that. Signed-off-by: Jens Lehmann <Jens.Lehmann@web.de> Signed-off-by: Junio C Hamano <gitster@pobox.com>
Diffstat (limited to 'builtin/fetch.c')
-rw-r--r--builtin/fetch.c2
1 files changed, 1 insertions, 1 deletions
diff --git a/builtin/fetch.c b/builtin/fetch.c
index d5442e1..6196e91 100644
--- a/builtin/fetch.c
+++ b/builtin/fetch.c
@@ -1012,7 +1012,7 @@ int cmd_fetch(int argc, const char **argv, const char *prefix)
struct argv_array options = ARGV_ARRAY_INIT;
add_options_to_argv(&options);
- result = fetch_populated_submodules(options.argc, options.argv,
+ result = fetch_populated_submodules(&options,
submodule_prefix,
recurse_submodules,
verbosity < 0);