Перенос на Lua 5.2, проблема с LUA_GLOBALSINDEX

В примере кода: http://lua-users.org/wiki/SimplerCppBinding

Есть код:

lua_pushstring(L, T::className);
lua_pushvalue(L, methods);
lua_settable(L, LUA_GLOBALSINDEX);  //<--- LUA_GLOBALSINDEX removed in Lua 5.2

lua_pushliteral(L, "__metatable");
lua_pushvalue(L, methods);
lua_settable(L, metatable); 

В Lua 5.2 LUA_GLOBALSINDEX больше не существует. Вместо него есть lua_setglobal() и lua_getglobal().


Правильно ли я думаю, что:

lua_pushvalue(L, methods);
lua_setglobal(L, T::className);

... является правильной заменой для:

lua_pushstring(L, T::className);
lua_pushvalue(L, methods);
lua_settable(L, LUA_GLOBALSINDEX);

Я слишком новичок в Lua, чтобы быть уверенным, я не использовал его в течение 8 месяцев. Глядя на документацию, я думаю, что это правильно, но хотел бы получить подтверждение.

6
задан Jamin Grey 30 January 2012 в 00:48
поделиться