Fix a bug with building really big paginated lists, like when deleting all messages for a user.

This commit is contained in:
Colin Kuskie 2010-06-22 22:09:47 -07:00
parent ee179911cf
commit 1101ceeb9b

View file

@ -17,6 +17,7 @@ package WebGUI::Paginator;
use strict;
use WebGUI::International;
use WebGUI::Utility;
use List::Util qw/min/;
=head1 NAME
@ -428,10 +429,10 @@ sub getPageData {
}
#Handle setByArrayRef or the old setDataByQuery method
my @pageRows = ();
my $rowsPerPage = $self->{_rpp};
my $rowsPerPage = $self->{_rpp};
my $pageStartRow = ($pageNumber*$rowsPerPage)-$rowsPerPage;
my $pageEndRow = $pageNumber*$rowsPerPage;
my $pageEndRow = min($pageNumber*$rowsPerPage, $#{$allRows}+1);
my @pageRows = ();
for (my $i=$pageStartRow; $i<$pageEndRow; $i++) {
$pageRows[$i-$pageStartRow] = $allRows->[$i] if ($i <= $#{$self->{_rowRef}});
}