diff --git a/Source/Editor/CustomEditors/Dedicated/LocalizationSettingsEditor.cs b/Source/Editor/CustomEditors/Dedicated/LocalizationSettingsEditor.cs index fe5729acc..bfe3d5efe 100644 --- a/Source/Editor/CustomEditors/Dedicated/LocalizationSettingsEditor.cs +++ b/Source/Editor/CustomEditors/Dedicated/LocalizationSettingsEditor.cs @@ -137,7 +137,7 @@ namespace FlaxEditor.CustomEditors.Dedicated table.Entries = entries; if (!table.Save(path)) { - Object.Destroy(table); + Object.DestroyNow(table); newTables.Add(FlaxEngine.Content.LoadAsync(path)); } } @@ -153,7 +153,7 @@ namespace FlaxEditor.CustomEditors.Dedicated table.Locale = culture.Name; if (!table.Save(path)) { - Object.Destroy(table); + Object.DestroyNow(table); newTables.Add(FlaxEngine.Content.LoadAsync(path)); } } diff --git a/Source/Engine/Content/JsonAsset.cpp b/Source/Engine/Content/JsonAsset.cpp index abdca7c4b..60f05d38e 100644 --- a/Source/Engine/Content/JsonAsset.cpp +++ b/Source/Engine/Content/JsonAsset.cpp @@ -172,7 +172,7 @@ bool JsonAssetBase::Save(const StringView& path) rapidjson_flax::StringBuffer buffer; PrettyJsonWriter writerObj(buffer); _isResaving = true; - Save(writerObj); + saveInternal(writerObj); _isResaving = false; // Save json to file @@ -189,6 +189,12 @@ bool JsonAssetBase::Save(JsonWriter& writer) const { if (OnCheckSave()) return true; + + return saveInternal(writer); +} + +bool JsonAssetBase::saveInternal(JsonWriter& writer) const +{ ScopeLock lock(Locker); writer.StartObject(); diff --git a/Source/Engine/Content/JsonAsset.h b/Source/Engine/Content/JsonAsset.h index 74f122331..11c13ce80 100644 --- a/Source/Engine/Content/JsonAsset.h +++ b/Source/Engine/Content/JsonAsset.h @@ -101,6 +101,7 @@ protected: void unload(bool isReloading) override; #if USE_EDITOR void onRename(const StringView& newPath) override; + bool saveInternal(JsonWriter& writer) const; #endif };