summaryrefslogtreecommitdiff
diff options
context:
space:
mode:
authorZac Medico <zmedico@gentoo.org>2009-03-27 07:03:13 +0000
committerZac Medico <zmedico@gentoo.org>2009-03-27 07:03:13 +0000
commitfc8d859701343eb6c350512c9e2576b3ce1d7d5e (patch)
tree03c4e54852547b1dca13fd058c023adf671860b8
parentInside config.setcpv(), don't clear out self.configdict['pkg'] entirely (diff)
downloadportage-fc8d859701343eb6c350512c9e2576b3ce1d7d5e.tar.gz
portage-fc8d859701343eb6c350512c9e2576b3ce1d7d5e.tar.bz2
portage-fc8d859701343eb6c350512c9e2576b3ce1d7d5e.zip
In config.setcpv(), make sure the current args are really identical to the
previous args before returning early. (trunk r13227) svn path=/main/branches/2.1.6/; revision=13229
-rw-r--r--pym/portage/__init__.py9
1 files changed, 7 insertions, 2 deletions
diff --git a/pym/portage/__init__.py b/pym/portage/__init__.py
index 673ad2903..3ff952b7e 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[:]
@@ -2074,14 +2076,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)