Merge pull request #1132 from djpohly/release-the-music-i-mean-lua

Release Lua locks responsibly; fix a USB profile crash
This commit is contained in:
Jason Felds
2016-05-25 18:45:23 -04:00
3 changed files with 5 additions and 0 deletions
+2
View File
@@ -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;
}
+2
View File
@@ -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<XNode> pNode( XmlFileUtil::XNodeFromTable(L) );
if( pNode.get() == NULL )
{
LUA->Release( L );
// XNode will warn about the error
return Sprite::NewBlankSprite();
}
+1
View File
@@ -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 );
}