Skip to content

Instantly share code, notes, and snippets.

@freem
Created January 5, 2012 04:29
Show Gist options
  • Save freem/1563714 to your computer and use it in GitHub Desktop.
Save freem/1563714 to your computer and use it in GitHub Desktop.
Getting Lua 5.2 to (mostly) work with StepMania 5. It messes up badly though so don't really use it.
diff -r a84f412c48bb extern/lua-5.2/src/lauxlib.c
--- a/extern/lua-5.2/src/lauxlib.c Wed Jan 04 22:23:01 2012 -0600
+++ b/extern/lua-5.2/src/lauxlib.c Wed Jan 04 22:27:12 2012 -0600
@@ -955,3 +955,20 @@
lua_pop(L, 1);
}
+/* StepMania Lua additions */
+/* unsure where this came from (glenn?) */
+LUALIB_API int luaL_pushtype (lua_State *L, int narg) {
+ if (!luaL_callmeta(L, narg, "__type"))
+ lua_pushstring (L, luaL_typename(L, narg));
+
+ return 1;
+}
+
+/* this was removed in Lua 5.2 */
+LUALIB_API int luaL_typeerror (lua_State *L, int narg, const char *tname) {
+ const char *msg;
+ luaL_pushtype(L, narg);
+ msg = lua_pushfstring(L, "%s expected, got %s",
+ tname, lua_tostring(L, -1));
+ return luaL_argerror(L, narg, msg);
+}
diff -r a84f412c48bb extern/lua-5.2/src/lauxlib.h
--- a/extern/lua-5.2/src/lauxlib.h Wed Jan 04 22:23:01 2012 -0600
+++ b/extern/lua-5.2/src/lauxlib.h Wed Jan 04 22:27:12 2012 -0600
@@ -32,6 +32,12 @@
LUALIB_API int (luaL_getmetafield) (lua_State *L, int obj, const char *e);
LUALIB_API int (luaL_callmeta) (lua_State *L, int obj, const char *e);
LUALIB_API const char *(luaL_tolstring) (lua_State *L, int idx, size_t *len);
+
+/* "luaL_typerror was removed. Write your own version if you need it."
+ * - Lua 5.2 Reference Manual, Section 8.3 */
+LUALIB_API int (luaL_typeerror) (lua_State *L, int narg, const char *tname);
+
LUALIB_API int (luaL_argerror) (lua_State *L, int numarg, const char *extramsg);
LUALIB_API const char *(luaL_checklstring) (lua_State *L, int numArg,
size_t *l);
@@ -120,6 +126,8 @@
#define luaL_optlong(L,n,d) ((long)luaL_optinteger(L, (n), (d)))
#define luaL_typename(L,i) lua_typename(L, lua_type(L,(i)))
+/* stepmania addition: */
+LUALIB_API int (luaL_pushtype) (lua_State *L, int idx);
#define luaL_dofile(L, fn) \
(luaL_loadfile(L, fn) || lua_pcall(L, 0, LUA_MULTRET, 0))
diff -r a84f412c48bb extern/lua-5.2/src/llex.c
--- a/extern/lua-5.2/src/llex.c Wed Jan 04 22:23:01 2012 -0600
+++ b/extern/lua-5.2/src/llex.c Wed Jan 04 22:27:12 2012 -0600
@@ -35,7 +35,7 @@
/* ORDER RESERVED */
static const char *const luaX_tokens [] = {
"and", "break", "do", "else", "elseif",
- "end", "false", "for", "function", "goto", "if",
+ "end", "false", "for", "function", "cmd", "goto", "if",
"in", "local", "nil", "not", "or", "repeat",
"return", "then", "true", "until", "while",
"..", "...", "==", ">=", "<=", "~=", "::", "<eof>",
diff -r a84f412c48bb extern/lua-5.2/src/llex.h
--- a/extern/lua-5.2/src/llex.h Wed Jan 04 22:23:01 2012 -0600
+++ b/extern/lua-5.2/src/llex.h Wed Jan 04 22:27:12 2012 -0600
@@ -23,7 +23,7 @@
/* terminal symbols denoted by reserved words */
TK_AND = FIRST_RESERVED, TK_BREAK,
TK_DO, TK_ELSE, TK_ELSEIF, TK_END, TK_FALSE, TK_FOR, TK_FUNCTION,
- TK_CMD, // StepMania extension
+ TK_CMD, /* StepMania extension */
TK_GOTO, TK_IF, TK_IN, TK_LOCAL, TK_NIL, TK_NOT, TK_OR, TK_REPEAT,
TK_RETURN, TK_THEN, TK_TRUE, TK_UNTIL, TK_WHILE,
/* other terminal symbols */
diff -r a84f412c48bb src/Actor.cpp
--- a/src/Actor.cpp Wed Jan 04 22:23:01 2012 -0600
+++ b/src/Actor.cpp Wed Jan 04 22:24:25 2012 -0600
@@ -1461,7 +1461,7 @@
static int playcommand( T* p, lua_State *L )
{
if( !lua_istable(L, 2) && !lua_isnoneornil(L, 2) )
- luaL_typerror( L, 2, "table or nil" );
+ luaL_typeerror( L, 2, "table or nil" );
LuaReference ParamTable;
lua_pushvalue( L, 2 );
@@ -1495,7 +1495,7 @@
{
luaL_checktype( L, 1, LUA_TFUNCTION );
if( !lua_istable(L, 2) && !lua_isnoneornil(L, 2) )
- luaL_typerror( L, 2, "table or nil" );
+ luaL_typeerror( L, 2, "table or nil" );
LuaReference ref;
lua_pushvalue( L, 1 );
diff -r a84f412c48bb src/AnnouncerManager.cpp
--- a/src/AnnouncerManager.cpp Wed Jan 04 22:23:01 2012 -0600
+++ b/src/AnnouncerManager.cpp Wed Jan 04 22:24:25 2012 -0600
@@ -17,7 +17,8 @@
Lua *L = LUA->Get();
lua_pushstring( L, "ANNOUNCER" );
this->PushSelf( L );
- lua_settable( L, LUA_GLOBALSINDEX );
+ //lua_settable( L, LUA_GLOBALSINDEX );
+ lua_setglobal( L, "ANNOUNCER" );
LUA->Release( L );
}
}
diff -r a84f412c48bb src/CharacterManager.cpp
--- a/src/CharacterManager.cpp Wed Jan 04 22:23:01 2012 -0600
+++ b/src/CharacterManager.cpp Wed Jan 04 22:24:25 2012 -0600
@@ -16,7 +16,8 @@
Lua *L = LUA->Get();
lua_pushstring( L, "CHARMAN" );
this->PushSelf( L );
- lua_settable( L, LUA_GLOBALSINDEX );
+ //lua_settable( L, LUA_GLOBALSINDEX );
+ lua_setglobal( L, "CHARMAN" );
LUA->Release( L );
}
diff -r a84f412c48bb src/CryptManager.cpp
--- a/src/CryptManager.cpp Wed Jan 04 22:23:01 2012 -0600
+++ b/src/CryptManager.cpp Wed Jan 04 22:24:25 2012 -0600
@@ -89,7 +89,8 @@
Lua *L = LUA->Get();
lua_pushstring( L, "CRYPTMAN" );
this->PushSelf( L );
- lua_settable( L, LUA_GLOBALSINDEX );
+ //lua_settable( L, LUA_GLOBALSINDEX );
+ lua_setglobal( L, "CRYPTMAN" );
LUA->Release( L );
}
diff -r a84f412c48bb src/EnumHelper.cpp
--- a/src/EnumHelper.cpp Wed Jan 04 22:23:01 2012 -0600
+++ b/src/EnumHelper.cpp Wed Jan 04 22:24:25 2012 -0600
@@ -85,7 +85,7 @@
/* If there was no metafield, then we were called on the wrong type. */
if( lua_isnil(L, -1) )
- luaL_typerror( L, 1, "enum" );
+ luaL_typeerror( L, 1, "enum" );
return 1;
}
@@ -97,7 +97,7 @@
/* Look up the reverse table. If there is no metafield, then we were
* called on the wrong type. */
if( !luaL_getmetafield(L, 1, "reverse") )
- luaL_typerror( L, 1, "enum" );
+ luaL_typeerror( L, 1, "enum" );
return 1;
}
@@ -111,7 +111,8 @@
static void PushEnumMethodTable( lua_State *L )
{
- luaL_register( L, "Enum", EnumLib );
+ //luaL_register( L, "Enum", EnumLib );
+ luaL_setfuncs( L, EnumLib, 0 );
}
/* Set up the enum table on the stack, and pop the table. */
diff -r a84f412c48bb src/EnumHelper.h
--- a/src/EnumHelper.h Wed Jan 04 22:23:01 2012 -0600
+++ b/src/EnumHelper.h Wed Jan 04 22:24:25 2012 -0600
@@ -5,10 +5,14 @@
#include "RageUtil.h"
#include <memory>
+// "the EnumHelper include [of lua.h] is redundant. it already
+// has LuaReference, which includes LuaManager :x" - vyhd
+/*
extern "C"
{
-#include "../extern/lua-5.1/src/lua.h"
+#include "../extern/lua-5.2/src/lua.h"
}
+*/
/** @brief A general foreach loop for enumerators, going up to a max value. */
#define FOREACH_ENUM_N( e, max, var ) for( e var=(e)0; var<max; enum_add<e>( var, +1 ) )
diff -r a84f412c48bb src/GameManager.cpp
--- a/src/GameManager.cpp Wed Jan 04 22:23:01 2012 -0600
+++ b/src/GameManager.cpp Wed Jan 04 22:24:25 2012 -0600
@@ -2764,7 +2764,8 @@
Lua *L = LUA->Get();
lua_pushstring( L, "GAMEMAN" );
this->PushSelf( L );
- lua_settable( L, LUA_GLOBALSINDEX );
+ //lua_settable( L, LUA_GLOBALSINDEX );
+ lua_setglobal( L, "GAMEMAN" );
LUA->Release( L );
}
}
diff -r a84f412c48bb src/GameSoundManager.cpp
--- a/src/GameSoundManager.cpp Wed Jan 04 22:23:01 2012 -0600
+++ b/src/GameSoundManager.cpp Wed Jan 04 22:24:25 2012 -0600
@@ -426,7 +426,8 @@
Lua *L = LUA->Get();
lua_pushstring( L, "SOUND" );
this->PushSelf( L );
- lua_settable( L, LUA_GLOBALSINDEX );
+ //lua_settable( L, LUA_GLOBALSINDEX );
+ lua_setglobal( L, "SOUND" );
LUA->Release( L );
}
}
diff -r a84f412c48bb src/GameState.cpp
--- a/src/GameState.cpp Wed Jan 04 22:23:01 2012 -0600
+++ b/src/GameState.cpp Wed Jan 04 22:24:25 2012 -0600
@@ -174,7 +174,8 @@
Lua *L = LUA->Get();
lua_pushstring( L, "GAMESTATE" );
this->PushSelf( L );
- lua_settable( L, LUA_GLOBALSINDEX );
+ //lua_settable( L, LUA_GLOBALSINDEX );
+ lua_setglobal( L, "GAMESTATE" );
LUA->Release( L );
}
}
diff -r a84f412c48bb src/InputFilter.cpp
--- a/src/InputFilter.cpp Wed Jan 04 22:23:01 2012 -0600
+++ b/src/InputFilter.cpp Wed Jan 04 22:24:25 2012 -0600
@@ -107,7 +107,8 @@
Lua *L = LUA->Get();
lua_pushstring( L, "INPUTFILTER" );
this->PushSelf( L );
- lua_settable( L, LUA_GLOBALSINDEX );
+ //lua_settable( L, LUA_GLOBALSINDEX );
+ lua_setglobal( L, "INPUTFILTER" );
LUA->Release( L );
}
}
diff -r a84f412c48bb src/LuaBinding.cpp
--- a/src/LuaBinding.cpp Wed Jan 04 22:23:01 2012 -0600
+++ b/src/LuaBinding.cpp Wed Jan 04 22:24:25 2012 -0600
@@ -100,7 +100,8 @@
// to the base class.
if( IsDerivedClass() )
{
- lua_getfield( L, LUA_GLOBALSINDEX, GetBaseClassName() );
+ //lua_getfield( L, LUA_GLOBALSINDEX, GetBaseClassName() );
+ lua_getglobal( L, GetBaseClassName() );
lua_setfield( L, methods_metatable, "__index" );
lua_pushstring( L, GetBaseClassName() );
@@ -156,14 +157,16 @@
void LuaBinding::CreateMethodsTable( lua_State *L, const RString &sName )
{
- lua_getfield( L, LUA_GLOBALSINDEX, sName );
+ //lua_getfield( L, LUA_GLOBALSINDEX, sName );
+ lua_getglobal( L, sName );
if( !lua_isnil(L, -1) )
return;
lua_pop( L, 1 );
lua_newtable( L );
lua_pushvalue( L, -1 );
- lua_setfield( L, LUA_GLOBALSINDEX, sName );
+ //lua_setfield( L, LUA_GLOBALSINDEX, sName );
+ lua_setglobal( L, sName );
}
int LuaBinding::PushEqual( lua_State *L )
@@ -193,7 +196,7 @@
// This checks that they're the same type. it does not check
// that it's actually a LuaBinding type. If iArg1 is a non-LuaBinding
// type, this function should not be called and the return value is
- // undefined, but the lua_objlen check below will prevent us from crashing.
+ // undefined, but the lua_rawlen check below will prevent us from crashing.
if( !lua_getmetatable(L, iArg1) )
return false;
if( !lua_getmetatable(L, iArg2) )
@@ -207,9 +210,9 @@
if( !bSameType )
return false;
- if( lua_objlen(L, iArg1) != sizeof(void *) )
+ if( lua_rawlen(L, iArg1) != sizeof(void *) )
return false;
- if( lua_objlen(L, iArg2) != sizeof(void *) )
+ if( lua_rawlen(L, iArg2) != sizeof(void *) )
return false;
void **pData1 = (void **) lua_touserdata( L, iArg1 );
diff -r a84f412c48bb src/LuaBinding.h
--- a/src/LuaBinding.h Wed Jan 04 22:23:01 2012 -0600
+++ b/src/LuaBinding.h Wed Jan 04 22:24:25 2012 -0600
@@ -73,7 +73,7 @@
if( !LuaBinding::CheckLuaObjectType(L, narg, m_sClassName) )
{
if( bIsSelf )
- luaL_typerror( L, narg, m_sClassName );
+ luaL_typeerror( L, narg, m_sClassName );
else
LuaHelpers::TypeError( L, narg, m_sClassName );
}
@@ -164,9 +164,17 @@
#define ADD_METHOD( method_name ) \
AddMethod( #method_name, method_name )
+// Lua 5.1 version
+/*
#define LUA_REGISTER_NAMESPACE( T ) \
static void Register##T( lua_State *L ) { luaL_register( L, #T, T##Table ); lua_pop( L, 1 ); } \
REGISTER_WITH_LUA_FUNCTION( Register##T )
+*/
+// Lua 5.2 version
+#define LUA_REGISTER_NAMESPACE( T ) \
+ static void Register##T( lua_State *L ) { luaL_setfuncs( L, T##Table, 0 ); lua_pop( L, 1 ); } \
+ REGISTER_WITH_LUA_FUNCTION( Register##T )
+
#define LIST_METHOD( method_name ) \
{ #method_name, method_name }
diff -r a84f412c48bb src/LuaManager.cpp
--- a/src/LuaManager.cpp Wed Jan 04 22:23:01 2012 -0600
+++ b/src/LuaManager.cpp Wed Jan 04 22:24:25 2012 -0600
@@ -242,7 +242,10 @@
pImpl = new Impl;
LUA = this; // so that LUA is available when we call the Register functions
- lua_State *L = lua_open();
+ // "Function lua_open was replaced by lua_newstate" - Lua 5.1
+ //lua_State *L = lua_open();
+ lua_State *L = luaL_newstate();
+
ASSERT( L );
lua_atpanic( L, LuaPanic );
@@ -291,7 +294,9 @@
pRet = lua_newthread( m_pLuaMain );
// Store the new thread in THREAD_POOL, so it isn't collected.
- int iLast = lua_objlen( m_pLuaMain, THREAD_POOL );
+ // [TE/Lua5.2] lua_objen deprecated (replaced by macro) in Lua 5.2
+ //int iLast = lua_rawlen( m_pLuaMain, THREAD_POOL );
+ int iLast = lua_rawlen( m_pLuaMain, THREAD_POOL );
lua_rawseti( m_pLuaMain, THREAD_POOL, iLast+1 );
}
else
@@ -566,6 +571,9 @@
map<RString, vector<RString> > mEnums;
Lua *L = LUA->Get();
+ // xxx: needs update for lua 5.2; considering getting registry from lua_State
+ // and then getting the global index from that.
+ /*
FOREACH_LUATABLE( L, LUA_GLOBALSINDEX )
{
RString sKey;
@@ -635,9 +643,12 @@
printf( "%s: %s\n", sKey.c_str(), ar.short_src );
}
*/
+ // have to continue comment here
+ /*
break;
}
}
+ */
// Find namespaces
lua_pushcfunction( L, luaopen_package ); lua_call( L, 0, 0 );
@@ -905,7 +916,7 @@
// The function is now on the stack.
}
-/* Like luaL_typerror, but without the special case for argument 1 being "self"
+/* Like luaL_typeerror, but without the special case for argument 1 being "self"
* in method calls, so we give a correct error message after we remove self. */
int LuaHelpers::TypeError( Lua *L, int iArgNo, const char *szName )
{
diff -r a84f412c48bb src/LuaManager.h
--- a/src/LuaManager.h Wed Jan 04 22:23:01 2012 -0600
+++ b/src/LuaManager.h Wed Jan 04 22:24:25 2012 -0600
@@ -10,9 +10,10 @@
extern "C"
{
-#include "../extern/lua-5.1/src/lua.h"
-#include "../extern/lua-5.1/src/lualib.h"
-#include "../extern/lua-5.1/src/lauxlib.h"
+#include "../extern/lua-5.2/src/lua.h"
+#include "../extern/lua-5.2/src/lualib.h"
+#include "../extern/lua-5.2/src/lauxlib.h"
+#include "../extern/lua-5.2/src/ltable.h" // need this for luaH_getint
}
class LuaManager
diff -r a84f412c48bb src/MemoryCardManager.cpp
--- a/src/MemoryCardManager.cpp Wed Jan 04 22:23:01 2012 -0600
+++ b/src/MemoryCardManager.cpp Wed Jan 04 22:24:25 2012 -0600
@@ -264,7 +264,8 @@
Lua *L = LUA->Get();
lua_pushstring( L, "MEMCARDMAN" );
this->PushSelf( L );
- lua_settable( L, LUA_GLOBALSINDEX );
+ //lua_settable( L, LUA_GLOBALSINDEX );
+ lua_setglobal( L, "MEMCARDMAN" );
LUA->Release( L );
}
diff -r a84f412c48bb src/MessageManager.cpp
--- a/src/MessageManager.cpp Wed Jan 04 22:23:01 2012 -0600
+++ b/src/MessageManager.cpp Wed Jan 04 22:24:25 2012 -0600
@@ -148,7 +148,8 @@
Lua *L = LUA->Get();
lua_pushstring( L, "MESSAGEMAN" );
this->PushSelf( L );
- lua_settable( L, LUA_GLOBALSINDEX );
+ //lua_settable( L, LUA_GLOBALSINDEX );
+ lua_setglobal( L, "MESSAGEMAN" );
LUA->Release( L );
}
}
@@ -280,7 +281,7 @@
static int Broadcast( T* p, lua_State *L )
{
if( !lua_istable(L, 2) && !lua_isnoneornil(L, 2) )
- luaL_typerror( L, 2, "table or nil" );
+ luaL_typeerror( L, 2, "table or nil" );
LuaReference ParamTable;
lua_pushvalue( L, 2 );
diff -r a84f412c48bb src/NoteSkinManager.cpp
--- a/src/NoteSkinManager.cpp Wed Jan 04 22:23:01 2012 -0600
+++ b/src/NoteSkinManager.cpp Wed Jan 04 22:24:25 2012 -0600
@@ -53,7 +53,8 @@
Lua *L = LUA->Get();
lua_pushstring( L, "NOTESKIN" );
this->PushSelf( L );
- lua_settable( L, LUA_GLOBALSINDEX );
+ //lua_settable( L, LUA_GLOBALSINDEX );
+ lua_setglobal( L, "NOTESKIN" );
LUA->Release( L );
}
}
diff -r a84f412c48bb src/PrefsManager.cpp
--- a/src/PrefsManager.cpp Wed Jan 04 22:23:01 2012 -0600
+++ b/src/PrefsManager.cpp Wed Jan 04 22:24:25 2012 -0600
@@ -275,7 +275,8 @@
Lua *L = LUA->Get();
lua_pushstring( L, "PREFSMAN" );
this->PushSelf( L );
- lua_settable( L, LUA_GLOBALSINDEX );
+ //lua_settable( L, LUA_GLOBALSINDEX );
+ lua_setglobal( L, "PREFSMAN" );
LUA->Release( L );
}
}
diff -r a84f412c48bb src/Profile.cpp
--- a/src/Profile.cpp Wed Jan 04 22:23:01 2012 -0600
+++ b/src/Profile.cpp Wed Jan 04 22:24:25 2012 -0600
@@ -1912,7 +1912,7 @@
return 1;
}
- luaL_typerror( L, 1, "Song or Course" );
+ luaL_typeerror( L, 1, "Song or Course" );
return 0;
}
diff -r a84f412c48bb src/ProfileManager.cpp
--- a/src/ProfileManager.cpp Wed Jan 04 22:23:01 2012 -0600
+++ b/src/ProfileManager.cpp Wed Jan 04 22:24:25 2012 -0600
@@ -74,7 +74,8 @@
Lua *L = LUA->Get();
lua_pushstring( L, "PROFILEMAN" );
this->PushSelf( L );
- lua_settable( L, LUA_GLOBALSINDEX );
+ //lua_settable( L, LUA_GLOBALSINDEX );
+ lua_setglobal( L, "PROFILEMAN" );
LUA->Release( L );
}
}
diff -r a84f412c48bb src/RageDisplay.cpp
--- a/src/RageDisplay.cpp Wed Jan 04 22:23:01 2012 -0600
+++ b/src/RageDisplay.cpp Wed Jan 04 22:24:25 2012 -0600
@@ -430,7 +430,8 @@
Lua *L = LUA->Get();
lua_pushstring( L, "DISPLAY" );
this->PushSelf( L );
- lua_settable( L, LUA_GLOBALSINDEX );
+ //lua_settable( L, LUA_GLOBALSINDEX );
+ lua_setglobal( L, "DISPLAY" );
LUA->Release( L );
}
}
diff -r a84f412c48bb src/RageFileManager.cpp
--- a/src/RageFileManager.cpp Wed Jan 04 22:23:01 2012 -0600
+++ b/src/RageFileManager.cpp Wed Jan 04 22:24:25 2012 -0600
@@ -281,7 +281,8 @@
Lua *L = LUA->Get();
lua_pushstring( L, "FILEMAN" );
this->PushSelf( L );
- lua_settable( L, LUA_GLOBALSINDEX );
+ //lua_settable( L, LUA_GLOBALSINDEX );
+ lua_setglobal( L, "FILEMAN" );
LUA->Release( L );
}
}
diff -r a84f412c48bb src/RageInput.cpp
--- a/src/RageInput.cpp Wed Jan 04 22:23:01 2012 -0600
+++ b/src/RageInput.cpp Wed Jan 04 22:24:25 2012 -0600
@@ -30,7 +30,8 @@
Lua *L = LUA->Get();
lua_pushstring( L, "INPUTMAN" );
this->PushSelf( L );
- lua_settable( L, LUA_GLOBALSINDEX );
+ //lua_settable( L, LUA_GLOBALSINDEX );
+ lua_setglobal( L, "INPUTMAN" );
LUA->Release( L );
}
diff -r a84f412c48bb src/ScreenManager.cpp
--- a/src/ScreenManager.cpp Wed Jan 04 22:23:01 2012 -0600
+++ b/src/ScreenManager.cpp Wed Jan 04 22:24:25 2012 -0600
@@ -236,7 +236,8 @@
Lua *L = LUA->Get();
lua_pushstring( L, "SCREENMAN" );
this->PushSelf( L );
- lua_settable( L, LUA_GLOBALSINDEX );
+ //lua_settable( L, LUA_GLOBALSINDEX );
+ lua_setglobal( L, "SCREENMAN" );
LUA->Release( L );
}
diff -r a84f412c48bb src/SongManager.cpp
--- a/src/SongManager.cpp Wed Jan 04 22:23:01 2012 -0600
+++ b/src/SongManager.cpp Wed Jan 04 22:24:25 2012 -0600
@@ -66,7 +66,8 @@
Lua *L = LUA->Get();
lua_pushstring( L, "SONGMAN" );
this->PushSelf( L );
- lua_settable( L, LUA_GLOBALSINDEX );
+ //lua_settable( L, LUA_GLOBALSINDEX );
+ lua_setglobal( L, "SONGMAN" );
LUA->Release( L );
}
diff -r a84f412c48bb src/StatsManager.cpp
--- a/src/StatsManager.cpp Wed Jan 04 22:23:01 2012 -0600
+++ b/src/StatsManager.cpp Wed Jan 04 22:24:25 2012 -0600
@@ -26,7 +26,7 @@
Lua *L = LUA->Get();
lua_pushstring( L, "STATSMAN" );
this->PushSelf( L );
- lua_settable(L, LUA_GLOBALSINDEX);
+ lua_setglobal( L, "STATSMAN" );
LUA->Release( L );
}
}
diff -r a84f412c48bb src/ThemeManager.cpp
--- a/src/ThemeManager.cpp Wed Jan 04 22:23:01 2012 -0600
+++ b/src/ThemeManager.cpp Wed Jan 04 22:24:25 2012 -0600
@@ -153,7 +153,8 @@
Lua *L = LUA->Get();
lua_pushstring(L, "THEME");
this->PushSelf( L );
- lua_settable( L, LUA_GLOBALSINDEX );
+ //lua_settable( L, LUA_GLOBALSINDEX );
+ lua_setglobal( L, "THEME" );
LUA->Release( L );
}
diff -r a84f412c48bb src/Tween.cpp
--- a/src/Tween.cpp Wed Jan 04 22:23:01 2012 -0600
+++ b/src/Tween.cpp Wed Jan 04 22:24:25 2012 -0600
@@ -94,7 +94,7 @@
if( iType == TWEEN_BEZIER )
{
luaL_checktype( L, iStackPos+1, LUA_TTABLE );
- int iArgs = lua_objlen( L, iStackPos+1 );
+ int iArgs = lua_rawlen( L, iStackPos+1 );
if( iArgs != 4 && iArgs != 8 )
RageException::Throw( "CreateFromStack: table argument must have 4 or 8 entries" );
diff -r a84f412c48bb src/UnlockManager.cpp
--- a/src/UnlockManager.cpp Wed Jan 04 22:23:01 2012 -0600
+++ b/src/UnlockManager.cpp Wed Jan 04 22:24:25 2012 -0600
@@ -63,7 +63,8 @@
Lua *L = LUA->Get();
lua_pushstring( L, "UNLOCKMAN" );
this->PushSelf( L );
- lua_settable( L, LUA_GLOBALSINDEX );
+ //lua_settable( L, LUA_GLOBALSINDEX );
+ lua_setglobal( L, "UNLOCKMAN" );
LUA->Release( L );
}
diff -r a84f412c48bb src/arch/ArchHooks/ArchHooks.cpp
--- a/src/arch/ArchHooks/ArchHooks.cpp Wed Jan 04 22:23:01 2012 -0600
+++ b/src/arch/ArchHooks/ArchHooks.cpp Wed Jan 04 22:24:25 2012 -0600
@@ -86,7 +86,8 @@
{
lua_pushstring( L, "HOOKS" );
HOOKS->PushSelf( L );
- lua_settable( L, LUA_GLOBALSINDEX );
+ //lua_settable( L, LUA_GLOBALSINDEX );
+ lua_setglobal( L, "HOOKS" );
}
REGISTER_WITH_LUA_FUNCTION( LuaFunc_Register_Hooks );
Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment