【问题标题】:Porting Lua 5.1 thread code to 5.2将 Lua 5.1 线程代码移植到 5.2
【发布时间】:2014-01-14 12:16:42
【问题描述】:

我得到了下面的代码,它工作得很好,并且在 Lua 5.1 中完全符合我的要求,但是试图将它移植到 5.2(并且缺少 LUA_GLOBALSINDEX)我遇到了问题......任何人都可以告诉我什么相当于:

thread->L = lua_newthread( G );

lua_pushvalue( G, -1 );

thread->index = luaL_ref( G, LUA_REGISTRYINDEX );

lua_newtable( thread->L );

lua_newtable( thread->L );

lua_pushliteral( thread->L, "__index" );

-- Problem... no more LUA_GLOBALSINDEX, cannot find equivalent for push.
lua_pushvalue( thread->L, LUA_GLOBALSINDEX );

lua_settable( thread->L, -3 );

lua_setmetatable( thread->L, -2 );

-- Problem... no more LUA_GLOBALSINDEX, cannot find equivalent for replace.
lua_replace( thread->L, LUA_GLOBALSINDEX );

在 Lua 5.2 中?

谢谢!

【问题讨论】:

    标签: lua


    【解决方案1】:

    你应该使用lua_pushglobaltable(thead->L)(或者如果你必须使用lua_rawgeti(thread->L, LUA_REGISTRYINDEX, LUA_RIDX_GLOBALS)。这在Lua 5.2 LUA_GLOBALSINDEX Alternative接受的答案中有解释。

    【讨论】:

      猜你喜欢
      • 2015-04-04
      • 2023-03-27
      • 2012-02-21
      • 2011-01-12
      • 1970-01-01
      • 2015-08-20
      • 2011-08-30
      • 1970-01-01
      • 1970-01-01
      相关资源
      最近更新 更多