diff --git a/pym/portage.py b/pym/portage.py index 9461701..f764a6d 100644 --- a/pym/portage.py +++ b/pym/portage.py @@ -378,13 +378,12 @@ class digraph: def leaf_nodes(self, include_soft_deps=False): leaf_nodes = [] - for node in self.nodes: + for node in self.order: is_leaf_node = True - if include_soft_deps: - for child in self.nodes[node][0]: - if self.nodes[node][0][child]: - is_leaf_node = False - break + for child in self.nodes[node][0]: + if include_soft_deps or self.nodes[node][0][child]: + is_leaf_node = False + break if is_leaf_node: leaf_nodes.append(node) return leaf_nodes @@ -409,7 +408,7 @@ class digraph: copy = clone def firstzero(self): - leaf_nodes = self.leaf_nodes() + leaf_nodes = self.leaf_nodes(include_soft_deps=True) if leaf_nodes: return leaf_nodes[0] return None