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
---
 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] 
!= "?":
-- 
2.0.5


Reply via email to