[debhelper-devel] [debhelper] 04/06: dh: Avoid unnecessary work for empty overrides

Niels Thykier nthykier at moszumanska.debian.org
Mon Apr 10 17:39:29 UTC 2017


This is an automated email from the git hooks/post-receive script.

nthykier pushed a commit to branch master
in repository debhelper.

commit 80c955221e83327efb984845f59648678c729978
Author: Niels Thykier <niels at thykier.net>
Date:   Mon Apr 10 16:53:21 2017 +0000

    dh: Avoid unnecessary work for empty overrides
    
    Save an inner loop over all packages for empty overrides.  This makes
    empty overrides a lot cheaper when there are many packages.
    
    Signed-off-by: Niels Thykier <niels at thykier.net>
---
 dh | 22 ++++++++++++----------
 1 file changed, 12 insertions(+), 10 deletions(-)

diff --git a/dh b/dh
index 7b1ef59..7661c4d 100755
--- a/dh
+++ b/dh
@@ -826,16 +826,19 @@ sub run_override {
 	# Check which packages are of the right architecture for the
 	# override_type.
 	my (@todo, @rest);
+	my $has_explicit_target = rules_explicit_target($override);
+
 	if (defined $override_type) {
-		foreach my $package (@{$packages}) {
-			my $isall=package_arch($package) eq 'all';
-			if (($override_type eq 'indep' && $isall) ||
-			    ($override_type eq 'arch' && !$isall)) {
-				push @todo, $package;
-			}
-			else {
-				push @rest, $package;
-				push @options, "-N$package";
+		if ($has_explicit_target) {
+			foreach my $package (@{$packages}) {
+				my $isall=package_arch($package) eq 'all';
+				if (($override_type eq 'indep' && $isall) ||
+					($override_type eq 'arch' && !$isall)) {
+					push @todo, $package;
+				} else {
+					push @rest, $package;
+					push @options, "-N$package";
+				}
 			}
 		}
 	}
@@ -843,7 +846,6 @@ sub run_override {
 		@todo=@{$packages};
 	}
 
-	my $has_explicit_target = rules_explicit_target($override);
 	return @{$packages} unless defined $has_explicit_target; # no such override
 	return @rest if ! $has_explicit_target; # has empty override
 	return @rest unless @todo; # has override, but no packages to act on

-- 
Alioth's /usr/local/bin/git-commit-notice on /srv/git.debian.org/git/debhelper/debhelper.git




More information about the debhelper-devel mailing list