angr/analyses/cfg/segment_list.py
def next_pos_with_sort_not_in(self, address, sorts, max_distance=None):
        """
        Returns the address of the next occupied block whose sort is not one of the specified ones.

        :param int address: The address to begin the search with (including itself).
        :param sorts:       A collection of sort strings.
        :param max_distance:    The maximum distance between `address` and the next position. Search will stop after
                                we come across an occupied position that is beyond `address` + max_distance. This check
                                will be disabled if `max_distance` is set to None.
        :return:            The next occupied position whose sort is not one of the specified ones, or None if no such
                            position exists.
        :rtype:             int or None
        """

        list_length = len(self._list)

        idx = self._search(address)
        if idx < list_length:
            # Occupied
            block = self._list[idx]

            if max_distance is not None and address + max_distance < block.start:
                return None

            if block.start <= address < block.end:
                # the address is inside the current block
                if block.sort not in sorts:
                    return address
                # tick the idx forward by 1
                idx += 1

            i = idx
            while i < list_length:
                if max_distance is not None and address + max_distance < self._list[i].start:
                    return None
                if self._list[i].sort not in sorts:
                    return self._list[i].start
                i += 1

        return None

        Returns the address of the next occupied block whose sort is not one of the specified ones.

        :param int address: The address to begin the search with (including itself).
        :param sorts:       A collection of sort strings.
        :param max_distance:    The maximum distance between `address` and the next position. Search will stop after
                                we come across an occupied position that is beyond `address` + max_distance. This check
                                will be disabled if `max_distance` is set to None.
        :return:            The next occupied position whose sort is not one of the specified ones, or None if no such
                            position exists.
        :rtype:             int or None
        
Returns the address of the next occupied block whose sort is not one of the specified ones.
Returns the address of the next occupied block whose sort is not one of the specified ones .
def next_pos_with_sort_not_in(self, address, sorts, max_distance=None):
        list_length = len(self._list)
        idx = self._search(address)
        if idx < list_length:
            block = self._list[idx]
            if max_distance is not None and address + max_distance < block.start:
                return None
            if block.start <= address < block.end:
                if block.sort not in sorts:
                    return address
                idx += 1
            i = idx
            while i < list_length:
                if max_distance is not None and address + max_distance < self._list[i].start:
                    return None
                if self._list[i].sort not in sorts:
                    return self._list[i].start
                i += 1
        return None
def next_pos_with_sort_not_in ( self , address , sorts , max_distance = None ) : list_length = len ( self . _list ) idx = self . _search ( address ) if idx < list_length : block = self . _list [ idx ] if max_distance is not None and address + max_distance < block . start : return None if block . start <= address < block . end : if block . sort not in sorts : return address idx += 1 i = idx while i < list_length : if max_distance is not None and address + max_distance < self . _list [ i ] . start : return None if self . _list [ i ] . sort not in sorts : return self . _list [ i ] . start i += 1 return None
Returns the address of the next occupied block whose sort is not one of the specified ones.
Returns the address of the next occupied block whose sort is not one of the specified ones .
"""
        Returns the address of the next occupied block whose sort is not one of the specified ones.

        :param int address: The address to begin the search with (including itself).
        :param sorts:       A collection of sort strings.
        :param max_distance:    The maximum distance between `address` and the next position. Search will stop after
                                we come across an occupied position that is beyond `address` + max_distance. This check
                                will be disabled if `max_distance` is set to None.
        :return:            The next occupied position whose sort is not one of the specified ones, or None if no such
                            position exists.
        :rtype:             int or None
        """ # Occupied # the address is inside the current block # tick the idx forward by 1
The next occupied position whose sort is not one of the specified ones, or None if no such
position exists.
The next occupied position whose sort is not one of the specified ones or None if no such position exists .
int or None
self
address
The address to begin the search with (including itself).
The address to begin the search with ( including itself ) .
sorts
A collection of sort strings.
A collection of sort strings .
max_distance
The maximum distance between `address` and the next position. Search will stop after
we come across an occupied position that is beyond `address` + max_distance. This check
will be disabled if `max_distance` is set to None.
The maximum distance between ` address ` and the next position . Search will stop after we come across an occupied position that is beyond ` address ` + max_distance . This check will be disabled if ` max_distance ` is set to None .