luaur_code_gen/functions/
dom_children.rs1use crate::macros::codegen_assert::CODEGEN_ASSERT;
2use crate::records::block_iterator_wrapper::BlockIteratorWrapper;
3use crate::records::cfg_info::CfgInfo;
4
5pub fn dom_children(cfg: &CfgInfo, block_idx: u32) -> BlockIteratorWrapper {
6 if !(block_idx < cfg.dom_children_offsets.len() as u32) {
7 CODEGEN_ASSERT!(false);
8 }
9
10 let start = cfg.dom_children_offsets[block_idx as usize];
11 let end = if (block_idx + 1) < cfg.dom_children_offsets.len() as u32 {
12 cfg.dom_children_offsets[(block_idx + 1) as usize]
13 } else {
14 cfg.dom_children.len() as u32
15 };
16
17 BlockIteratorWrapper {
18 itBegin: unsafe { cfg.dom_children.as_ptr().add(start as usize) },
19 itEnd: unsafe { cfg.dom_children.as_ptr().add(end as usize) },
20 }
21}