Skip to main content

luaur_bytecode/methods/
bytecode_graph_parser_add_successor.rs

1use crate::enums::bc_block_edge_kind::BcBlockEdgeKind;
2use crate::records::bc_block::BcBlock;
3use crate::records::bc_block_edge::BcBlockEdge;
4use crate::records::bc_op::BcOp;
5use crate::records::bytecode_graph_parser::BytecodeGraphParser;
6
7impl<'a> BytecodeGraphParser<'a> {
8    pub fn add_successor(&mut self, from_op: BcOp, to_op: BcOp, kind: BcBlockEdgeKind) {
9        let from: &mut BcBlock = self.func.block_op(from_op);
10        from.successors.push_back(BcBlockEdge {
11            kind,
12            target: to_op,
13        });
14
15        let to: &mut BcBlock = self.func.block_op(to_op);
16        to.predecessors.push_back(BcBlockEdge {
17            kind,
18            target: from_op,
19        });
20    }
21}