Lua 5.2 LUA_GLOBALSINDEX Alternativa

Tengo un programa que integra Lua e implementa una forma de búsqueda de función perezosa.

De la forma en que funcionó en Lua 5.1, siempre que un símbolo no estuviera definido, el intérprete llamaría un enlace de función global que luego resolvería el símbolo.

Esta es una pequeña parte del código C que implementó esta búsqueda de función lenta:

<code>int function_hook(lua_State *pLuaState)
{
  // do the function lookup here
  ....
  return 1;
}

......

//-- create table containing the hook details
lua_newtable(pLuaState);
lua_pushstring(pLuaState, "__index");
lua_pushcfunction(pLuaState, function_hook);
lua_settable(pLuaState, -3);

//-- set global index callback hook
lua_setmetatable(pLuaState, LUA_GLOBALSINDEX);
</code>

Ahora estoy intentando mover este código a Lua 5.2 y me he encontrado con un problema.

En Lua 5.2, el valor LUA_GLOBALSINDEX ya no está definido, por lo que esta línea de código ya no se compila.

<code>//-- set global call back hook
lua_setmetatable(pLuaState, LUA_GLOBALSINDEX);
</code>

Hay unreferencia a este cambio a LUA_GLOBALSINDEX pero desafortunadamente no ha ayudado.

¿Cuál sería la mejor manera de volver a escribir esta línea de código para que el intérprete llame a function_hook cada vez que encuentre un símbolo sin resolver?

Respuestas a la pregunta(1)

Su respuesta a la pregunta