[PATCH 1/3] gitweb: Separate @projects population into git_get_projects_details()
- From
Jakub Narebski <jnareb@gmail.com>
- Date
- Mar 17, 2008, 15:09 UTC
- Message-ID
- <1205766570-13550-2-git-send-email-jnareb@gmail.com>
- In-Reply-To
- <1205766570-13550-1-git-send-email-jnareb@gmail.com>
From: Petr Baudis <pasky@suse.cz>
For clarity projects scanning and @projects population is separated to git_get_projects_details().
This would be required if/when implementing in-gitweb caching of projects list generation.
Signed-off-by: Petr Baudis <pasky@suse.cz> Signed-off-by: Jakub Narebski <jnareb@gmail.com> --- This is first part of patch sent by Petr Baudis; one that could be applied to have better, more clear code, even as we are rehashing on _how_ to do caching in gitweb in general, and projects list caching in particular.
Note: git_get_projects_details() does not do return wantarray ? @projects : \@projects dance.
By the way; it could modify %$projlist directly, and return simply $projlist.
gitweb/gitweb.perl | 17 +++++++++++++---- 1 files changed, 13 insertions(+), 4 deletions(-)
diff --git a/gitweb/gitweb.perl b/gitweb/gitweb.perl index ec73cb1..90ab894 100755 --- a/gitweb/gitweb.perl +++ b/gitweb/gitweb.perl @@ -3473,10 +3473,10 @@ sub git_patchset_body { # . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . -sub git_project_list_body { - my ($projlist, $order, $from, $to, $extra, $no_header) = @_; - - my ($check_forks) = gitweb_check_feature('forks'); +# fill age, description, owner, forks (last one only if $check_forks) +# for all projects in $projlist reference; fill projects info +sub git_get_projects_details { + my ($projlist, $check_forks) = @_; my @projects; foreach my $pr (@$projlist) { @@ -3506,6 +3506,15 @@ sub git_project_list_body { } push @projects, $pr; } + return @projects; +} + +sub git_project_list_body { + my ($projlist, $order, $from, $to, $extra, $no_header) = @_; + + my ($check_forks) = gitweb_check_feature('forks'); + + my @projects = git_get_projects_details($projlist, $check_forks); $order ||= $default_projects_order; $from = 0 unless defined $from;
-- 1.5.4.3.453.gc1ad83