From aef41f5e2b487c9aa61a2e0f0e5e4b5790459dc5 Mon Sep 17 00:00:00 2001 From: Kamal Mostafa Date: Sat, 3 Aug 2024 22:45:38 -0700 Subject: [PATCH] UI: Fix mem leak if --disable-missing-files-check Make the --disable-missing-files-check flag actually inhibit the collection of a `files` list, not just the display of the missing files dialog. Fixes a memory leak of the `files` list itself when the flag is used (and there are some missing files). Closes: obsproject/obs-studio#11074 --- UI/window-basic-main.cpp | 10 ++++++++-- 1 file changed, 8 insertions(+), 2 deletions(-) diff --git a/UI/window-basic-main.cpp b/UI/window-basic-main.cpp index 15eb25ed6cb2d8..c829f59abf177d 100644 --- a/UI/window-basic-main.cpp +++ b/UI/window-basic-main.cpp @@ -1176,6 +1176,9 @@ void OBSBasic::Load(const char *file) static inline void AddMissingFiles(void *data, obs_source_t *source) { + if (!data) + return; + obs_missing_files_t *f = (obs_missing_files_t *)data; obs_missing_files_t *sf = obs_source_get_missing_files(source); @@ -1264,7 +1267,10 @@ void OBSBasic::LoadData(obs_data_t *data, const char *file) obs_data_array_push_back_array(sources, groups); } - obs_missing_files_t *files = obs_missing_files_create(); + obs_missing_files_t *files = NULL; + if (!App()->IsMissingFilesCheckDisabled()) + files = obs_missing_files_create(); + obs_load_sources(sources, AddMissingFiles, files); if (transitions) @@ -1435,7 +1441,7 @@ void OBSBasic::LoadData(obs_data_t *data, const char *file) LogScenes(); - if (!App()->IsMissingFilesCheckDisabled()) + if (files) ShowMissingFilesDialog(files); disableSaving--;