luaur_vm/functions/
lua_resume.rs1use crate::functions::lua_d_rawrunprotected_ldo::luaD_rawrunprotected;
2use crate::functions::resume::resume;
3use crate::functions::resume_finish::resume_finish;
4use crate::functions::resume_start::resume_start;
5use crate::type_aliases::lua_state::lua_State;
6use core::ffi::c_int;
7
8#[allow(non_snake_case)]
9pub unsafe fn lua_resume(l: *mut lua_State, from: *mut lua_State, nargs: c_int) -> c_int {
10 let starterror = resume_start(l, from, nargs);
11 if starterror != 0 {
12 return starterror;
13 }
14
15 let oldnCcalls = (*l).nCcalls as c_int;
16 let status = luaD_rawrunprotected(
17 l,
18 Some(resume),
19 (*l).top.offset(-(nargs as isize)) as *mut core::ffi::c_void,
20 );
21
22 resume_finish(l, status, oldnCcalls)
23}