MCPcopy Create free account
hub / github.com/Vector35/binaryninja-api / prepend_parent

Method prepend_parent

python/commonil.py:36–48  ·  view source on GitHub ↗
(cls, graph: FlowGraph, node: FlowGraphNode, nodes={})

Source from the content-addressed store, hash-verified

34class BaseILInstruction:
35 @classmethod
36 def prepend_parent(cls, graph: FlowGraph, node: FlowGraphNode, nodes={}):
37 for parent in cls.__bases__:
38 if not issubclass(parent, BaseILInstruction):
39 continue
40 if parent.__name__ in nodes:
41 nodes[parent.__name__].add_outgoing_edge(BranchType.UnconditionalBranch, node)
42 else:
43 parent_node = FlowGraphNode(graph)
44 parent_node.lines = [f"{parent.__name__}"]
45 parent_node.add_outgoing_edge(BranchType.UnconditionalBranch, node)
46 graph.append(parent_node)
47 nodes[parent.__name__] = parent_node
48 parent.prepend_parent(graph, parent_node, nodes)
49
50 @classmethod
51 def add_subgraph(cls, graph: FlowGraph, nodes) -> FlowGraph:

Callers 1

add_subgraphMethod · 0.80

Calls 3

add_outgoing_edgeMethod · 0.95
FlowGraphNodeClass · 0.70
appendMethod · 0.45

Tested by

no test coverage detected