From 12be1906f977a1f0a8698f17e9cd5a7ffba37c9d Mon Sep 17 00:00:00 2001 From: Zac Medico Date: Fri, 27 Mar 2009 07:01:21 +0000 Subject: [PATCH] In config.setcpv(), make sure the current args are really identical to the previous args before returning early. svn path=/main/trunk/; revision=13227 --- pym/portage/__init__.py | 9 +++++++-- 1 file changed, 7 insertions(+), 2 deletions(-) diff --git a/pym/portage/__init__.py b/pym/portage/__init__.py index ed07bca12..c4a7a6d61 100644 --- a/pym/portage/__init__.py +++ b/pym/portage/__init__.py @@ -1151,6 +1151,7 @@ class config(object): self.locked = 0 self.mycpv = None + self._setcpv_args_hash = None self.puse = [] self.modifiedkeys = [] self.uvlist = [] @@ -1204,6 +1205,7 @@ class config(object): self.make_defaults_use = copy.deepcopy(clone.make_defaults_use) self.pkgprofileuse = copy.deepcopy(clone.pkgprofileuse) self.mycpv = copy.deepcopy(clone.mycpv) + self._setcpv_args_hash = copy.deepcopy(clone._setcpv_args_hash) self.configlist = copy.deepcopy(clone.configlist) self.lookuplist = self.configlist[:] @@ -2084,14 +2086,17 @@ class config(object): self.modifying() + args_hash = (id(mycpv), id(mydb)) + if args_hash == self._setcpv_args_hash: + return + self._setcpv_args_hash = args_hash + pkg = None if not isinstance(mycpv, basestring): pkg = mycpv mycpv = pkg.cpv mydb = pkg.metadata - if self.mycpv == mycpv: - return has_changed = False self.mycpv = mycpv cat, pf = catsplit(mycpv) -- 2.26.2