(self, block_id, terminator_for_nonexistent_node=False)
return self._nodes[block_id]
Get an existing VFGNode instance from the graph.

        :param BlockID block_id:                     The block ID for the node to get.
        :param bool terminator_for_nonexistent_node: True if a Terminator (which is a SimProcedure stub) should be
                                                     created when there is no existing node available for the given
                                                     block ID.
        :return:                                     A node in the graph, or None.
        :rtype:                                      VFGNode
Get an existing VFGNode instance from the graph.
Get an existing VFGNode instance from the graph .
def _graph_get_node(self, block_id, terminator_for_nonexistent_node=False):
        """
        Get an existing VFGNode instance from the graph.

        :param BlockID block_id:                     The block ID for the node to get.
        :param bool terminator_for_nonexistent_node: True if a Terminator (which is a SimProcedure stub) should be
                                                     created when there is no existing node available for the given
                                                     block ID.
        :return:                                     A node in the graph, or None.
        :rtype:                                      VFGNode
        """

        if block_id not in self._nodes:
            l.error("Trying to look up a node that we don't have yet. Is this okay????")
            if not terminator_for_nonexistent_node:
                return None
            # Generate a PathTerminator node
            addr = block_id.addr
            func_addr = block_id.func_addr
            if func_addr is None:
                # We'll have to use the current block address instead
                # TODO: Is it really OK?
                func_addr = addr

            input_state = self.project.factory.entry_state()
            input_state.ip = addr
            pt = VFGNode(addr, block_id, input_state)
            self._nodes[block_id] = pt

            if isinstance(self.project.arch, archinfo.ArchARM) and addr % 2 == 1:
                self._thumb_addrs.add(addr)
                self._thumb_addrs.add(addr - 1)

            l.debug("Block ID %s does not exist. Create a PathTerminator instead.",
                    repr(block_id))

        return self._nodes[block_id]
def _graph_get_node ( self , block_id , terminator_for_nonexistent_node = False ) : if block_id not in self . _nodes : l . error ( "Trying to look up a node that we don't have yet. Is this okay????" ) if not terminator_for_nonexistent_node : return None # Generate a PathTerminator node addr = block_id . addr func_addr = block_id . func_addr if func_addr is None : # We'll have to use the current block address instead # TODO: Is it really OK? func_addr = addr input_state = self . project . factory . entry_state ( ) input_state . ip = addr pt = VFGNode ( addr , block_id , input_state ) self . _nodes [ block_id ] = pt if isinstance ( self . project . arch , archinfo . ArchARM ) and addr % 2 == 1 : self . _thumb_addrs . add ( addr ) self . _thumb_addrs . add ( addr - 1 ) l . debug ( "Block ID %s does not exist. Create a PathTerminator instead." , repr ( block_id ) ) return self . _nodes [ block_id ]