RefCell < option <Heap < T > 很容易被滥用
作者: jdm创建于 2020年2月11日更新于 2026年9月17日
标签A-content/bindingsI-safety
这样的代码是微妙不正确的:
// 缓存 Js 值。
let heap_val = Heap::default();
heap_val.set(frozen_types);
*self.frozen_supported_performance_entry_types.borrow_mut() = Some(heap_val);
移动 Heap 值会使指针失效;正确的使用方式是先设置 Some(Heap::default()), 然后使用 borrow_mut().as_ref().unwrap().set(...) 来在内存中确定后更新值。
内容来源: servo/servo