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:
@@ -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;
|
||||
}
|
||||
|
||||
@@ -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();
|
||||
}
|
||||
|
||||
@@ -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 );
|
||||
}
|
||||
|
||||
Reference in New Issue
Block a user