lua-users home
lua-l archive

[Date Prev][Date Next][Thread Prev][Thread Next] [Date Index] [Thread Index]

Hi all,


Is it possible to store lua function in a C struct and later call lua function from C using the stored information?


I am looking for an implementation as following:


void* myluafunc = luaL_checkluafunction (L, 1);

lua_pushfunctionptr (L, myluafunc);

lua_call (L,0,0);


I have implemented a workaround where lua function's name is stored in a char array in C and then later on lua function is called using following APIs. This way is working fine but using function name as the identifier is using extra memory.


char name[128];

int button_lua_new (lua_State *L)


   const char* myluafuncname = luaL_checkstring (L,1);

   strcpy (name, myluafuncname);


void call_button_event_handler ()


  lua_getglobal(L, name);

  lua_call (L,0,0);