lua_rawgeti
lua_rawgeti(L, t, freelist); /* get first free element */
lua_rawgeti(L, t, ref); /* remove it from list */
lua_rawgeti(L, t, freelist);
lua_rawgeti(L, 1, i);
lua_rawgeti(L, 1, i); /* push arg[i] (avoiding overflow problems) */
lua_rawgeti(L, 1, i);
lua_rawgeti(L, 1, l);
lua_rawgeti(L, 1, u);
lua_rawgeti(L, 1, i);
lua_rawgeti(L, 1, l);
lua_rawgeti(L, 1, u);
lua_rawgeti(L, 1, i); /* Pivot */
lua_rawgeti(L, 1, u-1);
while (lua_rawgeti(L, 1, ++i), sort_comp(L, -1, -2)) {
while (lua_rawgeti(L, 1, --j), sort_comp(L, -3, -1)) {
lua_rawgeti(L, 1, u-1);
lua_rawgeti(L, 1, i);
lua_rawgeti(L, 1, i-1);
lua_rawgeti(L, 1, pos); /* result = t[pos] */
lua_rawgeti(L, 1, pos+1);
lua_rawgeti(L, 1, i);
LUA_API void (lua_rawgeti) (lua_State *L, int idx, int n);
lua_rawgeti(L, LUA_REGISTRYINDEX, LUA_RIDX_GLOBALS)