[PATCH] Git.pm: Fix internal git_command_bidi_pipe() users
From: Petr Baudis <hidden>
Date: 2016-06-15 22:45:06
Subsystem:
the rest · Maintainer:
Linus Torvalds
The hash_and_insert_object() and cat_blob() helpers were using an incorrect slice-from-ref Perl syntax. This patch fixes that up in the _close_*() helpers and make the _open_*() helpers use the same syntax for consistnecy. Signed-off-by: Petr Baudis <redacted> --- Wow, the command_bidi_pipe API really is dirty. Of course, it is my fault as anyone's since I didn't get around to review the patches introducing it. perl/Git.pm | 16 ++++++---------- 1 files changed, 6 insertions(+), 10 deletions(-)
diff --git a/perl/Git.pm b/perl/Git.pm
index 087d3d0..0624428 100644
--- a/perl/Git.pm
+++ b/perl/Git.pm@@ -827,8 +827,7 @@ sub _open_hash_and_insert_object_if_needed { return if defined($self->{hash_object_pid}); - ($self->{hash_object_pid}, $self->{hash_object_in}, - $self->{hash_object_out}, $self->{hash_object_ctx}) = + @$self{map { "hash_object_$_" } qw(pid in out ctx)} = command_bidi_pipe(qw(hash-object -w --stdin-paths)); }
@@ -837,9 +836,8 @@ sub _close_hash_and_insert_object { return unless defined($self->{hash_object_pid}); - my @vars = map { 'hash_object_' . $_ } qw(pid in out ctx); - - command_close_bidi_pipe($self->{@vars}); + my @vars = map { "hash_object_$_" } qw(pid in out ctx); + command_close_bidi_pipe(@$self{@vars}); delete $self->{@vars}; }
@@ -916,8 +914,7 @@ sub _open_cat_blob_if_needed { return if defined($self->{cat_blob_pid}); - ($self->{cat_blob_pid}, $self->{cat_blob_in}, - $self->{cat_blob_out}, $self->{cat_blob_ctx}) = + @$self{map { "cat_blob_$_" } qw(pid in out ctx)} = command_bidi_pipe(qw(cat-file --batch)); }
@@ -926,9 +923,8 @@ sub _close_cat_blob { return unless defined($self->{cat_blob_pid}); - my @vars = map { 'cat_blob_' . $_ } qw(pid in out ctx); - - command_close_bidi_pipe($self->{@vars}); + my @vars = map { "cat_blob_$_" } qw(pid in out ctx); + command_close_bidi_pipe(@$self{@vars}); delete $self->{@vars}; }