diff options
| author | Rémi Verschelde <rverschelde@gmail.com> | 2024-08-06 12:32:13 +0200 |
|---|---|---|
| committer | Rémi Verschelde <rverschelde@gmail.com> | 2024-08-06 12:32:13 +0200 |
| commit | b36885c8bd64e5fd3fcd99cd8e0e93d8d1003fc2 (patch) | |
| tree | 6be33b7da1415aec71e9a785750f39bacb348e3e /core/io/resource_loader.cpp | |
| parent | 6a10330cebed1ae66ed25fe8bfb5255e937393e1 (diff) | |
| parent | f5bb14dcebd6a48aafd04a3208b5d6ad8d52f072 (diff) | |
| download | redot-engine-b36885c8bd64e5fd3fcd99cd8e0e93d8d1003fc2.tar.gz | |
Merge pull request #95186 from bruvzg/thr_load_dbl_free
[ResourceLoader] Add check to prevent double free crashes.
Diffstat (limited to 'core/io/resource_loader.cpp')
| -rw-r--r-- | core/io/resource_loader.cpp | 7 |
1 files changed, 5 insertions, 2 deletions
diff --git a/core/io/resource_loader.cpp b/core/io/resource_loader.cpp index 2b5e83264e..c5582ad231 100644 --- a/core/io/resource_loader.cpp +++ b/core/io/resource_loader.cpp @@ -408,7 +408,10 @@ void ResourceLoader::_thread_load_function(void *p_userdata) { MessageQueue::set_thread_singleton_override(nullptr); memdelete(own_mq_override); } - memdelete(load_paths_stack); + if (load_paths_stack) { + memdelete(load_paths_stack); + load_paths_stack = nullptr; + } } } @@ -1304,7 +1307,7 @@ bool ResourceLoader::timestamp_on_load = false; thread_local int ResourceLoader::load_nesting = 0; thread_local WorkerThreadPool::TaskID ResourceLoader::caller_task_id = 0; -thread_local Vector<String> *ResourceLoader::load_paths_stack; +thread_local Vector<String> *ResourceLoader::load_paths_stack = nullptr; thread_local HashMap<int, HashMap<String, Ref<Resource>>> ResourceLoader::res_ref_overrides; template <> |
