luaur_analysis/methods/cfg_builder_seal.rs
1use crate::records::block::Block;
2use crate::records::cfg_builder::CfgBuilder;
3
4impl CfgBuilder {
5 /// `void CFGBuilder::seal(Block* b)`. Reference: `ControlFlowGraph.cpp`.
6 pub fn seal(&mut self, b: *mut Block) {
7 unsafe {
8 // C++:
9 // auto joinsToFill = incompleteJoins.find(b);
10 // if (joinsToFill != nullptr)
11 // for (auto j : *joinsToFill) fillJoinOperands(b, j);
12 // sealedBlocks.insert(b);
13 if let Some(joins) = self.incomplete_joins.find(&b) {
14 let joins: alloc::vec::Vec<_> = joins.iter().copied().collect();
15 for j in joins {
16 self.fill_join_operands(b, j);
17 }
18 }
19 self.sealed_blocks.insert(b);
20 }
21 }
22}