On 6/14/19 3:37 PM, Alwin Antreich wrote:
> For less and cleaner code, use a hash for de-compressor commands instead
> of the 'long' if-elsif statement.
> 

squash that with 1/3, or better try to pull the decompressor_ method
out in a separate patch, with this already applied, and not mixed in with
the zstd stuff.

> Signed-off-by: Alwin Antreich <[email protected]>
> ---
>  PVE/Storage.pm | 20 +++++++++-----------
>  1 file changed, 9 insertions(+), 11 deletions(-)
> 
> diff --git a/PVE/Storage.pm b/PVE/Storage.pm
> index 6953b3f..537259a 100755
> --- a/PVE/Storage.pm
> +++ b/PVE/Storage.pm
> @@ -1380,19 +1380,17 @@ sub decompressor_info {
>       }
>      }
>  
> +    my $decompressor = {
> +     'gz'   => ["zcat", $archive],
> +     'lzo'  => ["lzop", "-d", "-c", $archive],
> +     'zst'  => ["zstd", "-q", "-d", "-c", $archive],
> +    };
> +
>      my $cmd;
> -    if (defined($comp)) {
> -     if ($comp eq 'gz') {
> -         $cmd = ["zcat", $archive];
> -     } elsif ($comp eq 'lzo') {
> -         $cmd = ["lzop", "-d", "-c", $archive];
> -     } elsif ($comp eq 'zst') {
> -         $cmd = ["zstd", "-q", "-d", "-c", $archive];
> -     } else {
> -         die "unknown compression method '$comp'\n" if !$noerr;
> -     }
> +    if (defined($comp) && $decompressor->{$comp}) {
> +     $cmd = $decompressor->{$comp};
>      } else {
> -     die "compression type not set\n" if !$noerr;
> +     die "compression method unknown, '$comp'\n" if !$noerr;

can get you a "use of undefined variable ..." here, as the if above
can hit this else branch if the defined($comp) evaluates to false..

>      }
>  
>      pop(@$cmd) if !defined($archive);
> 


_______________________________________________
pve-devel mailing list
[email protected]
https://pve.proxmox.com/cgi-bin/mailman/listinfo/pve-devel

Reply via email to