From f8dbf363b6112c033dd0225462227ca17c2ec75c Mon Sep 17 00:00:00 2001 From: Wojtek Figat Date: Tue, 7 Oct 2025 18:09:18 +0200 Subject: [PATCH] Fix crash on Android when loading mesh with SDF data --- Source/Engine/Content/Assets/Model.cpp | 3 +++ Source/Engine/Content/Storage/FlaxStorageReference.h | 5 +++++ 2 files changed, 8 insertions(+) diff --git a/Source/Engine/Content/Assets/Model.cpp b/Source/Engine/Content/Assets/Model.cpp index 1830f40de..829eaeb11 100644 --- a/Source/Engine/Content/Assets/Model.cpp +++ b/Source/Engine/Content/Assets/Model.cpp @@ -33,12 +33,14 @@ class StreamModelSDFTask : public GPUUploadTextureMipTask { private: WeakAssetReference _asset; + FlaxStorageReference _dataRef; FlaxStorage::LockData _dataLock; public: StreamModelSDFTask(Model* model, GPUTexture* texture, const Span& data, int32 mipIndex, int32 rowPitch, int32 slicePitch) : GPUUploadTextureMipTask(texture, mipIndex, data, rowPitch, slicePitch, false) , _asset(model) + , _dataRef(model->Storage) , _dataLock(model->Storage->Lock()) { } @@ -59,6 +61,7 @@ public: void OnEnd() override { _dataLock.Release(); + _dataRef = FlaxStorageReference(); // Base GPUUploadTextureMipTask::OnEnd(); diff --git a/Source/Engine/Content/Storage/FlaxStorageReference.h b/Source/Engine/Content/Storage/FlaxStorageReference.h index 94929baa4..402e312d8 100644 --- a/Source/Engine/Content/Storage/FlaxStorageReference.h +++ b/Source/Engine/Content/Storage/FlaxStorageReference.h @@ -13,6 +13,11 @@ private: FlaxStorage* _storage; public: + FlaxStorageReference() + : _storage(nullptr) + { + } + FlaxStorageReference(FlaxStorage* storage) : _storage(storage) {