From: Zac Medico Date: Sat, 8 Jun 2013 02:48:51 +0000 (-0700) Subject: _iter_match_use: construct _pkg_str instances X-Git-Tag: v2.2.0_alpha178 X-Git-Url: http://git.tremily.us/?a=commitdiff_plain;h=55cd4ceae6ed39b52daaad89f111d87c25be9c9b;p=portage.git _iter_match_use: construct _pkg_str instances Now _match_use does not have to construct them itself. --- diff --git a/pym/portage/dbapi/__init__.py b/pym/portage/dbapi/__init__.py index f954bad94..a20a1e84f 100644 --- a/pym/portage/dbapi/__init__.py +++ b/pym/portage/dbapi/__init__.py @@ -193,18 +193,27 @@ class dbapi(object): except KeyError: continue + try: + cpv.slot + except AttributeError: + try: + cpv = _pkg_str(cpv, metadata=metadata, + settings=self.settings) + except InvalidData: + continue + if not self._match_use(atom, cpv, metadata): continue yield cpv - def _match_use(self, atom, cpv, metadata): + def _match_use(self, atom, pkg, metadata): eapi_attrs = _get_eapi_attrs(metadata["EAPI"]) if eapi_attrs.iuse_effective: iuse_implicit_match = self.settings._iuse_effective_match else: iuse_implicit_match = self.settings._iuse_implicit_match - usealiases = self.settings._use_manager.getUseAliases(self._pkg_str(cpv, metadata["repository"])) + usealiases = self.settings._use_manager.getUseAliases(pkg) iuse = Package._iuse(None, metadata["IUSE"].split(), iuse_implicit_match, usealiases, metadata["EAPI"]) for x in atom.unevaluated_atom.use.required: @@ -245,12 +254,6 @@ class dbapi(object): elif not self.settings.local_config: # Check masked and forced flags for repoman. - try: - cpv.slot - except AttributeError: - pkg = _pkg_str(cpv, metadata=metadata, settings=self.settings) - else: - pkg = cpv usemask = self.settings._getUseMask(pkg, stable=self.settings._parent_stable) if any(x in usemask for x in atom.use.enabled):