diff --git a/modules/betsy/image_compress_betsy.cpp b/modules/betsy/image_compress_betsy.cpp index 4138ad7679b..468bb1c209e 100644 --- a/modules/betsy/image_compress_betsy.cpp +++ b/modules/betsy/image_compress_betsy.cpp @@ -259,6 +259,14 @@ void BetsyCompressor::_thread_exit() { compress_rd->free(cached_shaders[i].compiled); } } + + // Free the RD (and RCD if necessary). + memdelete(compress_rd); + compress_rd = nullptr; + if (compress_rcd != nullptr) { + memdelete(compress_rcd); + compress_rcd = nullptr; + } } } @@ -268,16 +276,6 @@ void BetsyCompressor::finish() { WorkerThreadPool::get_singleton()->wait_for_task_completion(task_id); task_id = WorkerThreadPool::INVALID_TASK_ID; } - - if (compress_rd != nullptr) { - // Free the RD (and RCD if necessary). - memdelete(compress_rd); - compress_rd = nullptr; - if (compress_rcd != nullptr) { - memdelete(compress_rcd); - compress_rcd = nullptr; - } - } } // Helper functions.