diff --git a/src/ActorFrame.cpp b/src/ActorFrame.cpp index 148d31f348..dd165eac62 100644 --- a/src/ActorFrame.cpp +++ b/src/ActorFrame.cpp @@ -238,6 +238,7 @@ void ActorFrame::DrawPrimitives() m_DrawFunction.PushSelf( L ); if( lua_isnil(L, -1) ) { + LUA->Release(L); LuaHelpers::ReportScriptErrorFmt( "Error compiling DrawFunction" ); return; } @@ -487,6 +488,7 @@ void ActorFrame::UpdateInternal( float fDeltaTime ) m_UpdateFunction.PushSelf( L ); if( lua_isnil(L, -1) ) { + LUA->Release(L); LuaHelpers::ReportScriptErrorFmt( "Error compiling UpdateFunction" ); return; } diff --git a/src/NoteSkinManager.cpp b/src/NoteSkinManager.cpp index 9d38562394..012651611c 100644 --- a/src/NoteSkinManager.cpp +++ b/src/NoteSkinManager.cpp @@ -487,6 +487,7 @@ Actor *NoteSkinManager::LoadActor( const RString &sButton, const RString &sEleme if( !PushActorTemplate(L, sButton, sElement, bSpriteOnly) ) { + LUA->Release( L ); // ActorUtil will warn about the error return Sprite::NewBlankSprite(); } @@ -494,6 +495,7 @@ Actor *NoteSkinManager::LoadActor( const RString &sButton, const RString &sEleme auto_ptr pNode( XmlFileUtil::XNodeFromTable(L) ); if( pNode.get() == NULL ) { + LUA->Release( L ); // XNode will warn about the error return Sprite::NewBlankSprite(); } diff --git a/src/Player.cpp b/src/Player.cpp index ce05ba414c..b29eeb22da 100644 --- a/src/Player.cpp +++ b/src/Player.cpp @@ -3142,6 +3142,7 @@ void Player::SetHoldJudgment( TapNote &tn, int iTrack ) Lua* L = LUA->Get(); tn.PushSelf(L); msg.SetParamFromStack( L, "TapNote" ); + LUA->Release( L ); MESSAGEMAN->Broadcast( msg ); }