fix: new 构造 cell_stack 失衡与子模块 immutables 缓存失步

This commit is contained in:
2026-08-07 00:15:09 +08:00
parent 31e28a03a6
commit 710965b7f2
5 changed files with 20 additions and 6 deletions
+5 -2
View File
@@ -413,9 +413,12 @@ impl Vm {
}
}
self.sub_module_stack.push(Arc::clone(&self.sub_modules));
let callee_subs = &subs[sub_idx].sub_modules;
if !callee_subs.is_empty() {
if callee_subs.is_empty() {
self.sub_module_stack.push((Arc::clone(&self.sub_modules), None));
} else {
self.sub_module_stack
.push((Arc::clone(&self.sub_modules), Some(std::mem::take(&mut self.immutables_cache))));
self.sub_modules = Arc::new(callee_subs.clone());
self.immutables_cache = (0..=callee_subs.len()).map(|_| OnceLock::new()).collect();
}