From 2f3f75965a011a5ec671afc39d6eb6c0573c3e18 Mon Sep 17 00:00:00 2001 From: Brian Fraser Date: Thu, 2 Feb 2012 11:14:20 -0300 Subject: [PATCH] Fixed a 'Use of uninitialized value' error in Diskstats->print_deltas() It's not clear to me how this can even happen, as the variable is package-scoped and set during compilation, but this should fix it. --- bin/pt-diskstats | 10 ++++++++-- lib/Diskstats.pm | 10 ++++++++-- 2 files changed, 16 insertions(+), 4 deletions(-) diff --git a/bin/pt-diskstats b/bin/pt-diskstats index 37c4d2d2..0bf2b23e 100755 --- a/bin/pt-diskstats +++ b/bin/pt-diskstats @@ -1550,8 +1550,11 @@ use List::Util qw( max first ); use ReadKeyMini qw( GetTerminalSize ); -my (undef, $max_lines) = GetTerminalSize(); -$Diskstats::printed_lines = $max_lines; +my $max_lines; +BEGIN { + (undef, $max_lines) = GetTerminalSize(); + $Diskstats::printed_lines = $max_lines; +} my $diskstat_colno_for; BEGIN { @@ -2399,6 +2402,9 @@ sub print_deltas { my @stats = $self->_calc_deltas(); + $Diskstats::printed_lines = $max_lines + unless defined $Diskstats::printed_lines; + if ( $self->{space_samples} && @stats && @stats > 1 && !$Diskstats::last_was_header ) { print "\n"; diff --git a/lib/Diskstats.pm b/lib/Diskstats.pm index 53cd12a4..13b49b6c 100644 --- a/lib/Diskstats.pm +++ b/lib/Diskstats.pm @@ -34,8 +34,11 @@ use List::Util qw( max first ); use ReadKeyMini qw( GetTerminalSize ); -my (undef, $max_lines) = GetTerminalSize(); -$Diskstats::printed_lines = $max_lines; +my $max_lines; +BEGIN { + (undef, $max_lines) = GetTerminalSize(); + $Diskstats::printed_lines = $max_lines; +} my $diskstat_colno_for; BEGIN { @@ -975,6 +978,9 @@ sub print_deltas { my @stats = $self->_calc_deltas(); + $Diskstats::printed_lines = $max_lines + unless defined $Diskstats::printed_lines; + if ( $self->{space_samples} && @stats && @stats > 1 && !$Diskstats::last_was_header ) { # Print an empty line before the rows if we have more