From: Zac Medico Date: Fri, 27 Mar 2009 07:01:21 +0000 (-0000) Subject: In config.setcpv(), make sure the current args are really identical to the X-Git-Tag: v2.2_rc28~2 X-Git-Url: http://git.tremily.us/?a=commitdiff_plain;h=12be1906f977a1f0a8698f17e9cd5a7ffba37c9d;p=portage.git In config.setcpv(), make sure the current args are really identical to the previous args before returning early. svn path=/main/trunk/; revision=13227 --- 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)