/* create a table simgrid.comm and fill it with com functions */
lua_getglobal(L, "simgrid"); /* simgrid */
luaL_newlib(L, comm_functions); /* simgrid simgrid.comm */
- lua_setfield(L, -2, "comm"); /* simgrid */
- lua_getfield(L, -1, "host"); /* simgrid simgrid.comm */
/* create the metatable for comm, add it to the Lua registry */
luaL_newmetatable(L, COMM_MODULE_NAME); /* simgrid simgrid.comm mt */
* Copy the table and push it onto the stack.
* Required for the lua_setfield call below.
*/
- lua_getfield(L, -3, "comm"); /* simgrid simgrid.comm mt simgrid.comm */
+ lua_pushvalue(L, -2); /* simgrid simgrid.comm mt simgrid.comm */
/* metatable.__index = simgrid.comm
* we put the comm functions inside the comm userdata itself:
lua_setfield(L, -2, "__index"); /* simgrid simgrid.comm mt */
lua_setmetatable(L, -2); /* simgrid simgrid.comm */
- lua_pop(L, 2); /* -- */
+ lua_setfield(L, -1, "comm"); /* simgrid */
+ lua_pop(L, 1); /* -- */
}