From bd97a09707e41e2c6051a86602718eaeb59b4a48 Mon Sep 17 00:00:00 2001 From: WarmUpTill <19472752+WarmUpTill@users.noreply.github.com> Date: Wed, 27 May 2026 09:36:11 +0200 Subject: [PATCH] Fix crash on startup Resize of vector could invalidate the this pointers passed to the PostLoad step lambdas --- lib/macro/macro-ref.cpp | 6 +++--- 1 file changed, 3 insertions(+), 3 deletions(-) diff --git a/lib/macro/macro-ref.cpp b/lib/macro/macro-ref.cpp index 9e55728c..5021a3e7 100644 --- a/lib/macro/macro-ref.cpp +++ b/lib/macro/macro-ref.cpp @@ -74,11 +74,11 @@ void LoadMacroList(obs_data_t *obj, std::vector ¯os, { obs_data_array_t *array = obs_data_get_array(obj, name.c_str()); size_t count = obs_data_array_count(array); + macros.reserve(macros.size() + count); for (size_t i = 0; i < count; i++) { obs_data_t *array_obj = obs_data_array_item(array, i); - MacroRef ref; - ref.Load(array_obj); - macros.push_back(ref); + macros.emplace_back(); + macros.back().Load(array_obj); obs_data_release(array_obj); } obs_data_array_release(array);