Fix crash on exit due to remaining DefautlInstance objects

This commit is contained in:
Wojtek Figat
2023-02-10 11:27:01 +01:00
parent 9197d583ce
commit c785a17ca8
2 changed files with 14 additions and 7 deletions

View File

@@ -681,6 +681,16 @@ void* BinaryModule::FindMethod(const ScriptingTypeHandle& typeHandle, const Scri
void BinaryModule::Destroy(bool isReloading)
{
// Destroy any default script instances
for (const auto& type : Types)
{
if (type.Type == ScriptingTypes::Script && type.Script.DefaultInstance)
{
Delete(type.Script.DefaultInstance);
type.Script.DefaultInstance = nullptr;
}
}
// Unregister
GetModules().RemoveKeepOrder(this);
}
@@ -1429,6 +1439,10 @@ void NativeBinaryModule::Destroy(bool isReloading)
{
ManagedBinaryModule::Destroy(isReloading);
// Skip native code unloading from core libs
if (this == GetBinaryModuleCorlib() || this == GetBinaryModuleFlaxEngine())
return;
// Release native library
const auto library = Library;
if (library)