commit: 9b843f5c9d0a5bdd4a57efb5bd5f41c4736d4dcf
Author: Kenneth Raplee <kenrap <AT> kennethraplee <DOT> com>
AuthorDate: Tue Mar 22 07:46:22 2022 +0000
Commit: Sam James <sam <AT> gentoo <DOT> org>
CommitDate: Sun Mar 27 23:06:41 2022 +0000
URL: https://gitweb.gentoo.org/proj/portage.git/commit/?id=9b843f5c
Consolidate nested conditional branches
Depending how a conditional is wrote, its nested conditional can be
consolidated into its own expression by using the `and` or `or` boolean
operators for the same effect. These kinds of refactors give processors
better chances at branch prediction and would make these conditionals
less expensive than they might have been.
Signed-off-by: Kenneth Raplee <kenrap <AT> kennethraplee.com>
Signed-off-by: Sam James <sam <AT> gentoo.org>
lib/portage/checksum.py | 5 ++---
lib/portage/data.py | 9 ++-------
lib/portage/dispatch_conf.py | 18 +++++++++++-------
3 files changed, 15 insertions(+), 17 deletions(-)
diff --git a/lib/portage/checksum.py b/lib/portage/checksum.py
index 3b5a10d24..d7e800c47 100644
--- a/lib/portage/checksum.py
+++ b/lib/portage/checksum.py
@@ -427,9 +427,8 @@ class _hash_filter:
for token in self._tokens:
if token in matches:
return True
- if token[:1] == "-":
- if token[1:] in matches:
- return False
+ if token[:1] == "-" and token[1:] in matches:
+ return False
return False
diff --git a/lib/portage/data.py b/lib/portage/data.py
index de7d88e5e..b73fa8882 100644
--- a/lib/portage/data.py
+++ b/lib/portage/data.py
@@ -158,15 +158,12 @@ def _get_global(k):
unprivileged = _unprivileged_mode(eroot_or_parent, eroot_st)
v = 0
- if uid == 0:
- v = 2
- elif unprivileged:
+ if uid == 0 or unprivileged:
v = 2
elif _get_global("portage_gid") in os.getgroups():
v = 1
elif k in ("portage_gid", "portage_uid"):
-
# Discover the uid and gid of the portage user/group
keyerror = False
try:
@@ -357,9 +354,7 @@ def _init(settings):
if "secpass" not in _initialized_globals:
v = 0
- if uid == 0:
- v = 2
- elif "unprivileged" in settings.features:
+ if uid == 0 or "unprivileged" in settings.features:
v = 2
elif portage_gid in os.getgroups():
v = 1
diff --git a/lib/portage/dispatch_conf.py b/lib/portage/dispatch_conf.py
index c89caf087..d682a9ad0 100644
--- a/lib/portage/dispatch_conf.py
+++ b/lib/portage/dispatch_conf.py
@@ -238,13 +238,17 @@ def rcs_archive(archive, curconf, newconf, mrgconf):
_archive_copy(mystat, newconf, archive)
- if has_branch:
- if mrgconf and os.path.isfile(archive) and os.path.isfile(mrgconf):
- # This puts the results of the merge into mrgconf.
- ret = os.system(f"rcsmerge -p -r{RCS_BRANCH} '{archive}' >
'{mrgconf}'")
- os.chmod(mrgconf, mystat.st_mode)
- os.chown(mrgconf, mystat.st_uid, mystat.st_gid)
- os.rename(archive, archive + ".dist.new")
+ if (
+ has_branch
+ and mrgconf
+ and os.path.isfile(archive)
+ and os.path.isfile(mrgconf)
+ ):
+ # This puts the results of the merge into mrgconf.
+ ret = os.system(f"rcsmerge -p -r{RCS_BRANCH} '{archive}' >
'{mrgconf}'")
+ os.chmod(mrgconf, mystat.st_mode)
+ os.chown(mrgconf, mystat.st_uid, mystat.st_gid)
+ os.rename(archive, f"{archive}.dist.new")
return ret