From a28e8f0c8d3c792e05c0981888bd12117e52335a Mon Sep 17 00:00:00 2001 From: bruvzg <7645683+bruvzg@users.noreply.github.com> Date: Mon, 2 Jan 2023 21:59:05 +0200 Subject: [TextServer] Make `free` calls thread safe. --- modules/text_server_fb/text_server_fb.cpp | 10 ++++++++-- 1 file changed, 8 insertions(+), 2 deletions(-) (limited to 'modules/text_server_fb') diff --git a/modules/text_server_fb/text_server_fb.cpp b/modules/text_server_fb/text_server_fb.cpp index ea7b7a271b..9fd8c8fb37 100644 --- a/modules/text_server_fb/text_server_fb.cpp +++ b/modules/text_server_fb/text_server_fb.cpp @@ -115,11 +115,17 @@ void TextServerFallback::_free_rid(const RID &p_rid) { _THREAD_SAFE_METHOD_ if (font_owner.owns(p_rid)) { FontFallback *fd = font_owner.get_or_null(p_rid); - font_owner.free(p_rid); + { + MutexLock lock(fd->mutex); + font_owner.free(p_rid); + } memdelete(fd); } else if (shaped_owner.owns(p_rid)) { ShapedTextDataFallback *sd = shaped_owner.get_or_null(p_rid); - shaped_owner.free(p_rid); + { + MutexLock lock(sd->mutex); + shaped_owner.free(p_rid); + } memdelete(sd); } } -- cgit v1.2.3