angr/state_hierarchy.py
def most_mergeable(self, states):
        """
        Find the "most mergeable" set of states from those provided.

        :param states: a list of states
        :returns: a tuple of: (a list of states to merge, those states' common history, a list of states to not merge yet)
        """

        histories = set(self.get_ref(s.history) for s in states)

        for n in networkx.algorithms.dfs_postorder_nodes(self._graph):
            intersection = histories.intersection(self.all_successors(n))
            if len(intersection) > 1:
                return (
                    [ s for s in states if self.get_ref(s.history) in intersection ],
                    n(),
                    [ s for s in states if self.get_ref(s.history) not in intersection ]
                )

        # didn't find any?
        return set(), None, states

        Find the "most mergeable" set of states from those provided.

        :param states: a list of states
        :returns: a tuple of: (a list of states to merge, those states' common history, a list of states to not merge yet)
        
Find the "most mergeable" set of states from those provided.
Find the " most mergeable " set of states from those provided .
def most_mergeable(self, states):
        histories = set(self.get_ref(s.history) for s in states)
        for n in networkx.algorithms.dfs_postorder_nodes(self._graph):
            intersection = histories.intersection(self.all_successors(n))
            if len(intersection) > 1:
                return (
                    [ s for s in states if self.get_ref(s.history) in intersection ],
                    n(),
                    [ s for s in states if self.get_ref(s.history) not in intersection ]
                )
        return set(), None, states
def most_mergeable ( self , states ) : histories = set ( self . get_ref ( s . history ) for s in states ) for n in networkx . algorithms . dfs_postorder_nodes ( self . _graph ) : intersection = histories . intersection ( self . all_successors ( n ) ) if len ( intersection ) > 1 : return ( [ s for s in states if self . get_ref ( s . history ) in intersection ] , n ( ) , [ s for s in states if self . get_ref ( s . history ) not in intersection ] ) return set ( ) , None , states
Find the "most mergeable" set of states from those provided.
Find the " most mergeable " set of states from those provided .
"""
        Find the "most mergeable" set of states from those provided.

        :param states: a list of states
        :returns: a tuple of: (a list of states to merge, those states' common history, a list of states to not merge yet)
        """ # didn't find any?
a tuple of: (a list of states to merge, those states' common history, a list of states to not merge yet)
a tuple of : ( a list of states to merge those states ' common history a list of states to not merge yet )
self
states
a list of states
a list of states