From 18da22a468dcf72fae587a4ebd029b1148130a80 Mon Sep 17 00:00:00 2001 From: Daniel Kolesa Date: Fri, 10 Apr 2015 12:05:54 +0100 Subject: [PATCH] elua lib: add APIs to retrieve refs to require/appload --- src/lib/elua/Elua.h | 3 +++ src/lib/elua/elua.c | 20 ++++++++++++++++++++ 2 files changed, 23 insertions(+) diff --git a/src/lib/elua/Elua.h b/src/lib/elua/Elua.h index f70af321d0..9814cf2390 100644 --- a/src/lib/elua/Elua.h +++ b/src/lib/elua/Elua.h @@ -80,6 +80,9 @@ EAPI Eina_Stringshare *elua_state_apps_dir_get(const Elua_State *es); EAPI void elua_state_include_path_add(Elua_State *es, const char *path); +EAPI Eina_Bool elua_state_require_ref_push(Elua_State *es); +EAPI Eina_Bool elua_state_appload_ref_push(Elua_State *es); + EAPI lua_State *elua_state_lua_state_get(const Elua_State *es); EAPI int elua_report_error(const Elua_State *es, const char *pname, int status); diff --git a/src/lib/elua/elua.c b/src/lib/elua/elua.c index 9019fef565..9299b8ff6e 100644 --- a/src/lib/elua/elua.c +++ b/src/lib/elua/elua.c @@ -179,6 +179,26 @@ elua_state_include_path_add(Elua_State *es, const char *path) es->lincs = eina_list_append(es->lincs, eina_stringshare_add(path)); } +EAPI Eina_Bool +elua_state_require_ref_push(Elua_State *es) +{ + EINA_SAFETY_ON_NULL_RETURN_VAL(es, EINA_FALSE); + EINA_SAFETY_ON_NULL_RETURN_VAL(es->luastate, EINA_FALSE); + EINA_SAFETY_ON_FALSE_RETURN_VAL(es->requireref != LUA_REFNIL, EINA_FALSE); + lua_rawgeti(es->luastate, LUA_REGISTRYINDEX, es->requireref); + return EINA_TRUE; +} + +EAPI Eina_Bool +elua_state_appload_ref_push(Elua_State *es) +{ + EINA_SAFETY_ON_NULL_RETURN_VAL(es, EINA_FALSE); + EINA_SAFETY_ON_NULL_RETURN_VAL(es->luastate, EINA_FALSE); + EINA_SAFETY_ON_FALSE_RETURN_VAL(es->apploadref != LUA_REFNIL, EINA_FALSE); + lua_rawgeti(es->luastate, LUA_REGISTRYINDEX, es->apploadref); + return EINA_TRUE; +} + EAPI lua_State * elua_state_lua_state_get(const Elua_State *es) {