luaur_code_gen/methods/
native_module_release.rs1use crate::records::native_module::NativeModule;
2use core::sync::atomic::Ordering;
3
4impl NativeModule {
5 pub fn native_module_release(&self) -> usize {
6 self.release()
7 }
8
9 pub fn release(&self) -> usize {
10 let new_refcount = self.refcount.fetch_sub(1, Ordering::SeqCst).wrapping_sub(1);
11 if new_refcount != 0 {
12 return new_refcount;
13 }
14
15 unsafe {
16 (*self.allocator).erase_native_module_if_unreferenced(self);
17 }
18
19 0
20 }
21}