run_column_filter: use argv_array
commit5eb7f7ead8537420fde3eb344640096fc330bc16
authorJeff King <peff@peff.net>
Thu, 15 May 2014 08:33:40 +0000 (15 04:33 -0400)
committerJunio C Hamano <gitster@pobox.com>
Thu, 15 May 2014 16:49:10 +0000 (15 09:49 -0700)
tree5803baf8635fdb7050b33aee83248167b4ac597c
parentc460c0ecdca46be85f6d9c845f9df7ce0e45c3c2
run_column_filter: use argv_array

We currently set up the argv array by hand in a fixed-size
stack-local array. Using an argv array is more readable, as
it handles buffer allocation us (not to mention makes it
obvious we do not overflow the array).

However, there's a more subtle benefit, too. We leave the
function having run start_command (with the child_process
in a static global), and then later run finish_command from
another function. That means when we run finish_command,
neither column_process.argv nor the memory it points to is
valid any longer.

Most of the time finish_command does not bother looking at
argv, but it may if it encounters an error (e.g., waitpid
failure or signal death). This is unusual, which is why
nobody has noticed. But by using run-command's built-in
argv_array, the memory ownership is handled for us
automatically.

Signed-off-by: Jeff King <peff@peff.net>
Signed-off-by: Junio C Hamano <gitster@pobox.com>
column.c