From 13cf0be08a856a75d423cb2911fd8635689d6ea2 Mon Sep 17 00:00:00 2001 From: luissemp Date: Thu, 29 Apr 2021 10:09:35 -0700 Subject: [PATCH 1/2] Restored the code that clears the Lua asset cache --- .../AzCore/AzCore/Script/ScriptSystemComponent.cpp | 6 +++++- 1 file changed, 5 insertions(+), 1 deletion(-) diff --git a/Code/Framework/AzCore/AzCore/Script/ScriptSystemComponent.cpp b/Code/Framework/AzCore/AzCore/Script/ScriptSystemComponent.cpp index f12da5c60e..d428b91a19 100644 --- a/Code/Framework/AzCore/AzCore/Script/ScriptSystemComponent.cpp +++ b/Code/Framework/AzCore/AzCore/Script/ScriptSystemComponent.cpp @@ -349,7 +349,7 @@ ScriptLoadResult ScriptSystemComponent::LoadAndGetNativeContext(const Data::Asse // Check if already loaded auto scriptIt = container->m_loadedScripts.find(asset.GetId().m_guid); - if (scriptIt != container->m_loadedScripts.end()) + if (scriptIt != container->m_loadedScripts.end() && scriptIt->second.m_scriptAsset.Get()) { lua_rawgeti(lua, LUA_REGISTRYINDEX, scriptIt->second.m_tableReference); @@ -699,6 +699,10 @@ Data::AssetHandler::LoadResult ScriptSystemComponent::LoadAssetData( script->m_scriptBuffer.resize(scriptDataLength); stream->Read(scriptDataLength, script->m_scriptBuffer.data()); + // Clear cached references in the event of a successful load. This function has to be queued on + // AssetBus where NotifyAssetReloaded is also queued, to ensure its execution before NotifyAssetReloaded + Data::AssetBus::QueueFunction(&ScriptSystemComponent::ClearAssetReferences, this, asset.GetId()); + return Data::AssetHandler::LoadResult::LoadComplete; } From f5a9aaff5b11819ab46e8f96d0337aacccd3500d Mon Sep 17 00:00:00 2001 From: luissemp Date: Thu, 29 Apr 2021 10:12:09 -0700 Subject: [PATCH 2/2] Removed temporary debugging test --- Code/Framework/AzCore/AzCore/Script/ScriptSystemComponent.cpp | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/Code/Framework/AzCore/AzCore/Script/ScriptSystemComponent.cpp b/Code/Framework/AzCore/AzCore/Script/ScriptSystemComponent.cpp index d428b91a19..015554538f 100644 --- a/Code/Framework/AzCore/AzCore/Script/ScriptSystemComponent.cpp +++ b/Code/Framework/AzCore/AzCore/Script/ScriptSystemComponent.cpp @@ -349,7 +349,7 @@ ScriptLoadResult ScriptSystemComponent::LoadAndGetNativeContext(const Data::Asse // Check if already loaded auto scriptIt = container->m_loadedScripts.find(asset.GetId().m_guid); - if (scriptIt != container->m_loadedScripts.end() && scriptIt->second.m_scriptAsset.Get()) + if (scriptIt != container->m_loadedScripts.end()) { lua_rawgeti(lua, LUA_REGISTRYINDEX, scriptIt->second.m_tableReference);