From 591ef069693a38ba790060c138040c15c1edd017 Mon Sep 17 00:00:00 2001 From: Glenn Maynard Date: Fri, 22 Sep 2006 02:08:00 +0000 Subject: [PATCH] use LuaReference::SetFromExpression --- stepmania/src/LuaManager.cpp | 16 +++++++++++++--- 1 file changed, 13 insertions(+), 3 deletions(-) diff --git a/stepmania/src/LuaManager.cpp b/stepmania/src/LuaManager.cpp index a239d9d560..41434a92d8 100644 --- a/stepmania/src/LuaManager.cpp +++ b/stepmania/src/LuaManager.cpp @@ -543,11 +543,13 @@ bool LuaHelpers::RunExpressionB( const RString &str ) { Lua *L = LUA->Get(); - if( !LuaHelpers::RunScript(L, "return " + str, "", 1) ) + LuaReference val; + if( !val.SetFromExpression(str) ) { LUA->Release( L ); return false; } + val.PushSelf( L ); /* Don't accept a function as a return value. */ if( lua_isfunction( L, -1 ) ) @@ -563,12 +565,16 @@ bool LuaHelpers::RunExpressionB( const RString &str ) float LuaHelpers::RunExpressionF( const RString &str ) { Lua *L = LUA->Get(); - if( !LuaHelpers::RunScript(L, "return " + str, "", 1) ) + + LuaReference val; + if( !val.SetFromExpression(str) ) { LUA->Release( L ); return 0; } + val.PushSelf( L ); + /* Don't accept a function as a return value. */ if( lua_isfunction( L, -1 ) ) RageException::Throw( "Result is a function; did you forget \"()\"?" ); @@ -588,11 +594,15 @@ int LuaHelpers::RunExpressionI( const RString &str ) bool LuaHelpers::RunExpressionS( const RString &str, RString &sOut ) { Lua *L = LUA->Get(); - if( !LuaHelpers::RunScript(L, "return " + str, "", 1) ) + + LuaReference val; + if( !val.SetFromExpression(str) ) { LUA->Release( L ); + sOut = ""; return false; } + val.PushSelf( L ); /* Don't accept a function as a return value. */ if( lua_isfunction( L, -1 ) )