(self, function_address)
return self._function_merge_points[function_address]
Return the ordered merge points for a specific function.

        :param int function_address: Address of the querying function.
        :return: A list of sorted merge points (addresses).
        :rtype: list
Return the ordered merge points for a specific function.
Return the ordered merge points for a specific function .
def _merge_points(self, function_address):
        """
        Return the ordered merge points for a specific function.

        :param int function_address: Address of the querying function.
        :return: A list of sorted merge points (addresses).
        :rtype: list
        """

        # we are entering a new function. now it's time to figure out how to optimally traverse the control flow
        # graph by generating the sorted merge points
        try:
            new_function = self.kb.functions[function_address]
        except KeyError:
            # the function does not exist
            return [ ]

        if function_address not in self._function_merge_points:
            ordered_merge_points = CFGUtils.find_merge_points(function_address, new_function.endpoints,
                                                           new_function.graph)
            self._function_merge_points[function_address] = ordered_merge_points

        return self._function_merge_points[function_address]
def _merge_points ( self , function_address ) : # we are entering a new function. now it's time to figure out how to optimally traverse the control flow # graph by generating the sorted merge points try : new_function = self . kb . functions [ function_address ] except KeyError : # the function does not exist return [ ] if function_address not in self . _function_merge_points : ordered_merge_points = CFGUtils . find_merge_points ( function_address , new_function . endpoints , new_function . graph ) self . _function_merge_points [ function_address ] = ordered_merge_points return self . _function_merge_points [ function_address ]