commit: 0887d95d288226c52c1d5610b514d41a624eadb7 Author: Zac Medico <zmedico <AT> gentoo <DOT> org> AuthorDate: Tue Feb 24 05:34:50 2015 +0000 Commit: Zac Medico <zmedico <AT> gentoo <DOT> org> CommitDate: Tue Feb 24 17:40:25 2015 +0000 URL: http://sources.gentoo.org/gitweb/?p=proj/portage.git;a=commit;h=0887d95d
use_reduce: support non-string token_class (bug 541198) Do not assume that token_class returns a basestring. X-Gentoo-Bug: 541198 X-Gentoo-Bug-URL: https://bugs.gentoo.org/show_bug.cgi?id=541198 Acked-by: Brian Dolbec <dolsen <AT> gentoo.org> --- pym/portage/dep/__init__.py | 6 ++++-- 1 file changed, 4 insertions(+), 2 deletions(-) diff --git a/pym/portage/dep/__init__.py b/pym/portage/dep/__init__.py index e2e416c..a8c748d 100644 --- a/pym/portage/dep/__init__.py +++ b/pym/portage/dep/__init__.py @@ -558,7 +558,8 @@ def use_reduce(depstr, uselist=[], masklist=[], matchall=False, excludeall=[], i stack[level].extend(l) continue - if stack[level]: + if stack[level] and isinstance(stack[level][-1], + basestring): if stack[level][-1] == "||" and not l: #Optimize: || ( ) -> . stack[level].pop() @@ -583,7 +584,8 @@ def use_reduce(depstr, uselist=[], masklist=[], matchall=False, excludeall=[], i #ends in a non-operator. This is almost equivalent to stack[level][-1]=="||", #expect that it skips empty levels. while k>=0: - if stack[k]: + if stack[k] and isinstance(stack[k][-1], + basestring): if stack[k][-1] == "||": return k elif stack[k][-1][-1] != "?":
