Skip to content

Commit

Permalink
Refactor remaining functions registration to macro
Browse files Browse the repository at this point in the history
  • Loading branch information
HaronK committed Oct 21, 2018
1 parent a89eac6 commit f9e4a43
Show file tree
Hide file tree
Showing 14 changed files with 185 additions and 748 deletions.
3 changes: 1 addition & 2 deletions src/lapi.rs
Original file line number Diff line number Diff line change
Expand Up @@ -1229,8 +1229,7 @@ pub unsafe extern "C" fn lua_iscfunction(
mut idx: libc::c_int,
) -> libc::c_int {
let mut o: StkId = index2addr(L, idx);
return (ttislcf!(*o) || (*o).tt_ == 6i32 | 2i32 << 4i32 | 1i32 << 6i32)
as libc::c_int;
return (ttislcf!(*o) || (*o).tt_ == 6i32 | 2i32 << 4i32 | 1i32 << 6i32) as libc::c_int;
}
#[no_mangle]
pub unsafe extern "C" fn lua_isinteger(mut L: *mut lua_State, mut idx: libc::c_int) -> libc::c_int {
Expand Down
125 changes: 25 additions & 100 deletions src/lbaselib.rs
Original file line number Diff line number Diff line change
Expand Up @@ -322,106 +322,31 @@ pub unsafe extern "C" fn luaopen_base(mut L: *mut lua_State) -> libc::c_int {
return 1i32;
}
static mut base_funcs: [luaL_Reg; 25] = [
luaL_Reg {
name: s!(b"assert\x00"),
func: Some(luaB_assert),
},
luaL_Reg {
name: s!(b"collectgarbage\x00"),
func: Some(luaB_collectgarbage),
},
luaL_Reg {
name: s!(b"dofile\x00"),
func: Some(luaB_dofile),
},
luaL_Reg {
name: s!(b"error\x00"),
func: Some(luaB_error),
},
luaL_Reg {
name: s!(b"getmetatable\x00"),
func: Some(luaB_getmetatable),
},
luaL_Reg {
name: s!(b"ipairs\x00"),
func: Some(luaB_ipairs),
},
luaL_Reg {
name: s!(b"loadfile\x00"),
func: Some(luaB_loadfile),
},
luaL_Reg {
name: s!(b"load\x00"),
func: Some(luaB_load),
},
luaL_Reg {
name: s!(b"next\x00"),
func: Some(luaB_next),
},
luaL_Reg {
name: s!(b"pairs\x00"),
func: Some(luaB_pairs),
},
luaL_Reg {
name: s!(b"pcall\x00"),
func: Some(luaB_pcall),
},
luaL_Reg {
name: s!(b"print\x00"),
func: Some(luaB_print),
},
luaL_Reg {
name: s!(b"rawequal\x00"),
func: Some(luaB_rawequal),
},
luaL_Reg {
name: s!(b"rawlen\x00"),
func: Some(luaB_rawlen),
},
luaL_Reg {
name: s!(b"rawget\x00"),
func: Some(luaB_rawget),
},
luaL_Reg {
name: s!(b"rawset\x00"),
func: Some(luaB_rawset),
},
luaL_Reg {
name: s!(b"select\x00"),
func: Some(luaB_select),
},
luaL_Reg {
name: s!(b"setmetatable\x00"),
func: Some(luaB_setmetatable),
},
luaL_Reg {
name: s!(b"tonumber\x00"),
func: Some(luaB_tonumber),
},
luaL_Reg {
name: s!(b"tostring\x00"),
func: Some(luaB_tostring),
},
luaL_Reg {
name: s!(b"type\x00"),
func: Some(luaB_type),
},
luaL_Reg {
name: s!(b"xpcall\x00"),
func: Some(luaB_xpcall),
},
luaL_Reg {
name: s!(b"_G\x00"),
func: None,
},
luaL_Reg {
name: s!(b"_VERSION\x00"),
func: None,
},
luaL_Reg {
name: 0 as *const libc::c_char,
func: None,
},
lua_reg!(b"assert\x00", luaB_assert),
lua_reg!(b"collectgarbage\x00", luaB_collectgarbage),
lua_reg!(b"dofile\x00", luaB_dofile),
lua_reg!(b"error\x00", luaB_error),
lua_reg!(b"getmetatable\x00", luaB_getmetatable),
lua_reg!(b"ipairs\x00", luaB_ipairs),
lua_reg!(b"loadfile\x00", luaB_loadfile),
lua_reg!(b"load\x00", luaB_load),
lua_reg!(b"next\x00", luaB_next),
lua_reg!(b"pairs\x00", luaB_pairs),
lua_reg!(b"pcall\x00", luaB_pcall),
lua_reg!(b"print\x00", luaB_print),
lua_reg!(b"rawequal\x00", luaB_rawequal),
lua_reg!(b"rawlen\x00", luaB_rawlen),
lua_reg!(b"rawget\x00", luaB_rawget),
lua_reg!(b"rawset\x00", luaB_rawset),
lua_reg!(b"select\x00", luaB_select),
lua_reg!(b"setmetatable\x00", luaB_setmetatable),
lua_reg!(b"tonumber\x00", luaB_tonumber),
lua_reg!(b"tostring\x00", luaB_tostring),
lua_reg!(b"type\x00", luaB_type),
lua_reg!(b"xpcall\x00", luaB_xpcall),
lua_reg_none!(b"_G\x00"),
lua_reg_none!(b"_VERSION\x00"),
lua_reg_none!(0),
];
/*
** Do a protected call with error handling. After 'lua_rotate', the
Expand Down
51 changes: 10 additions & 41 deletions src/lbitlib.rs
Original file line number Diff line number Diff line change
Expand Up @@ -57,7 +57,6 @@ pub type lua_Unsigned = libc::c_ulonglong;
*/
pub type lua_CFunction = Option<unsafe extern "C" fn(_: *mut lua_State) -> libc::c_int>;


/*
** $Id: lauxlib.h,v 1.131.1.1 2017/04/19 17:20:42 roberto Exp $
** Auxiliary functions for building Lua libraries
Expand Down Expand Up @@ -96,46 +95,16 @@ static mut bitlib: [luaL_Reg; 13] = [
lua_reg!(b"arshift\x00", b_arshift),
lua_reg!(b"band\x00", b_and),
lua_reg!(b"bnot\x00", b_not),
luaL_Reg {
name: s!(b"bor\x00"),
func: Some(b_or),
},
luaL_Reg {
name: s!(b"bxor\x00"),
func: Some(b_xor),
},
luaL_Reg {
name: s!(b"btest\x00"),
func: Some(b_test),
},
luaL_Reg {
name: s!(b"extract\x00"),
func: Some(b_extract),
},
luaL_Reg {
name: s!(b"lrotate\x00"),
func: Some(b_lrot),
},
luaL_Reg {
name: s!(b"lshift\x00"),
func: Some(b_lshift),
},
luaL_Reg {
name: s!(b"replace\x00"),
func: Some(b_replace),
},
luaL_Reg {
name: s!(b"rrotate\x00"),
func: Some(b_rrot),
},
luaL_Reg {
name: s!(b"rshift\x00"),
func: Some(b_rshift),
},
luaL_Reg {
name: 0 as *const libc::c_char,
func: None,
},
lua_reg!(b"bor\x00", b_or),
lua_reg!(b"bxor\x00", b_xor),
lua_reg!(b"btest\x00", b_test),
lua_reg!(b"extract\x00", b_extract),
lua_reg!(b"lrotate\x00", b_lrot),
lua_reg!(b"lshift\x00", b_lshift),
lua_reg!(b"replace\x00", b_replace),
lua_reg!(b"rrotate\x00", b_rrot),
lua_reg!(b"rshift\x00", b_rshift),
lua_reg_none!(0),
];
unsafe extern "C" fn b_rshift(mut L: *mut lua_State) -> libc::c_int {
return b_shift(
Expand Down
40 changes: 8 additions & 32 deletions src/lcorolib.rs
Original file line number Diff line number Diff line change
Expand Up @@ -183,38 +183,14 @@ pub unsafe extern "C" fn luaopen_coroutine(mut L: *mut lua_State) -> libc::c_int
return 1i32;
}
static mut co_funcs: [luaL_Reg; 8] = [
luaL_Reg {
name: s!(b"create\x00"),
func: Some(luaB_cocreate),
},
luaL_Reg {
name: s!(b"resume\x00"),
func: Some(luaB_coresume),
},
luaL_Reg {
name: s!(b"running\x00"),
func: Some(luaB_corunning),
},
luaL_Reg {
name: s!(b"status\x00"),
func: Some(luaB_costatus),
},
luaL_Reg {
name: s!(b"wrap\x00"),
func: Some(luaB_cowrap),
},
luaL_Reg {
name: s!(b"yield\x00"),
func: Some(luaB_yield),
},
luaL_Reg {
name: s!(b"isyieldable\x00"),
func: Some(luaB_yieldable),
},
luaL_Reg {
name: 0 as *const libc::c_char,
func: None,
},
lua_reg!(b"create\x00", luaB_cocreate),
lua_reg!(b"resume\x00", luaB_coresume),
lua_reg!(b"running\x00", luaB_corunning),
lua_reg!(b"status\x00", luaB_costatus),
lua_reg!(b"wrap\x00", luaB_cowrap),
lua_reg!(b"yield\x00", luaB_yield),
lua_reg!(b"isyieldable\x00", luaB_yieldable),
lua_reg_none!(0),
];
unsafe extern "C" fn luaB_yieldable(mut L: *mut lua_State) -> libc::c_int {
lua_pushboolean(L, lua_isyieldable(L));
Expand Down
85 changes: 17 additions & 68 deletions src/ldblib.rs
Original file line number Diff line number Diff line change
Expand Up @@ -337,74 +337,23 @@ pub unsafe extern "C" fn luaopen_debug(mut L: *mut lua_State) -> libc::c_int {
return 1i32;
}
static mut dblib: [luaL_Reg; 17] = [
luaL_Reg {
name: s!(b"debug\x00"),
func: Some(db_debug),
},
luaL_Reg {
name: s!(b"getuservalue\x00"),
func: Some(db_getuservalue),
},
luaL_Reg {
name: s!(b"gethook\x00"),
func: Some(db_gethook),
},
luaL_Reg {
name: s!(b"getinfo\x00"),
func: Some(db_getinfo),
},
luaL_Reg {
name: s!(b"getlocal\x00"),
func: Some(db_getlocal),
},
luaL_Reg {
name: s!(b"getregistry\x00"),
func: Some(db_getregistry),
},
luaL_Reg {
name: s!(b"getmetatable\x00"),
func: Some(db_getmetatable),
},
luaL_Reg {
name: s!(b"getupvalue\x00"),
func: Some(db_getupvalue),
},
luaL_Reg {
name: s!(b"upvaluejoin\x00"),
func: Some(db_upvaluejoin),
},
luaL_Reg {
name: s!(b"upvalueid\x00"),
func: Some(db_upvalueid),
},
luaL_Reg {
name: s!(b"setuservalue\x00"),
func: Some(db_setuservalue),
},
luaL_Reg {
name: s!(b"sethook\x00"),
func: Some(db_sethook),
},
luaL_Reg {
name: s!(b"setlocal\x00"),
func: Some(db_setlocal),
},
luaL_Reg {
name: s!(b"setmetatable\x00"),
func: Some(db_setmetatable),
},
luaL_Reg {
name: s!(b"setupvalue\x00"),
func: Some(db_setupvalue),
},
luaL_Reg {
name: s!(b"traceback\x00"),
func: Some(db_traceback),
},
luaL_Reg {
name: 0 as *const libc::c_char,
func: None,
},
lua_reg!(b"debug\x00", db_debug),
lua_reg!(b"getuservalue\x00", db_getuservalue),
lua_reg!(b"gethook\x00", db_gethook),
lua_reg!(b"getinfo\x00", db_getinfo),
lua_reg!(b"getlocal\x00", db_getlocal),
lua_reg!(b"getregistry\x00", db_getregistry),
lua_reg!(b"getmetatable\x00", db_getmetatable),
lua_reg!(b"getupvalue\x00", db_getupvalue),
lua_reg!(b"upvaluejoin\x00", db_upvaluejoin),
lua_reg!(b"upvalueid\x00", db_upvalueid),
lua_reg!(b"setuservalue\x00", db_setuservalue),
lua_reg!(b"sethook\x00", db_sethook),
lua_reg!(b"setlocal\x00", db_setlocal),
lua_reg!(b"setmetatable\x00", db_setmetatable),
lua_reg!(b"setupvalue\x00", db_setupvalue),
lua_reg!(b"traceback\x00", db_traceback),
lua_reg_none!(0),
];
unsafe extern "C" fn db_traceback(mut L: *mut lua_State) -> libc::c_int {
let mut level: libc::c_int = 0;
Expand Down
Loading

0 comments on commit f9e4a43

Please sign in to comment.