c460c0ecdc
All child_process structs need to point to an argv. For flexibility, we do not mandate the use of a dynamic argv_array. However, because the child_process does not own the memory, this can make memory management with a separate argv_array difficult. For example, if a function calls start_command but not finish_command, the argv memory must persist. The code needs to arrange to clean up the argv_array separately after finish_command runs. As a result, some of our code in this situation just leaks the memory. To help such cases, this patch adds a built-in argv_array to the child_process, which gets cleaned up automatically (both in finish_command and when start_command fails). Callers may use it if they choose, but can continue to use the raw argv if they wish. Signed-off-by: Jeff King <peff@peff.net> Signed-off-by: Junio C Hamano <gitster@pobox.com> |
||
---|---|---|
.. | ||
.gitignore | ||
api-allocation-growing.txt | ||
api-argv-array.txt | ||
api-builtin.txt | ||
api-config.txt | ||
api-credentials.txt | ||
api-decorate.txt | ||
api-diff.txt | ||
api-directory-listing.txt | ||
api-gitattributes.txt | ||
api-grep.txt | ||
api-hashmap.txt | ||
api-history-graph.txt | ||
api-in-core-index.txt | ||
api-index-skel.txt | ||
api-index.sh | ||
api-lockfile.txt | ||
api-merge.txt | ||
api-object-access.txt | ||
api-parse-options.txt | ||
api-quote.txt | ||
api-ref-iteration.txt | ||
api-remote.txt | ||
api-revision-walking.txt | ||
api-run-command.txt | ||
api-setup.txt | ||
api-sha1-array.txt | ||
api-sigchain.txt | ||
api-strbuf.txt | ||
api-string-list.txt | ||
api-tree-walking.txt | ||
api-xdiff-interface.txt | ||
bitmap-format.txt | ||
http-protocol.txt | ||
index-format.txt | ||
pack-format.txt | ||
pack-heuristics.txt | ||
pack-protocol.txt | ||
protocol-capabilities.txt | ||
protocol-common.txt | ||
racy-git.txt | ||
send-pack-pipeline.txt | ||
shallow.txt | ||
trivial-merge.txt |