From: Petr Baudis <pasky@xxxxxxx> 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@xxxxxxx> Signed-off-by: Jakub Narebski <jnareb@xxxxxxxxx> --- 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 -- To unsubscribe from this list: send the line "unsubscribe git" in the body of a message to majordomo@xxxxxxxxxxxxxxx More majordomo info at http://vger.kernel.org/majordomo-info.html