diff --git a/UI/context-bar-controls.cpp b/UI/context-bar-controls.cpp index 9e79a3d84..09d2783fb 100644 --- a/UI/context-bar-controls.cpp +++ b/UI/context-bar-controls.cpp @@ -36,19 +36,22 @@ SourceToolbar::SourceToolbar(QWidget *parent, OBSSource source) void SourceToolbar::SaveOldProperties(obs_source_t *source) { - if (oldData) - obs_data_release(oldData); - oldData = obs_data_create(); + obs_data_release(oldData); + obs_data_t *oldSettings = obs_source_get_settings(source); obs_data_apply(oldData, oldSettings); obs_data_set_string(oldData, "undo_sname", obs_source_get_name(source)); obs_data_release(oldSettings); - obs_data_release(oldData); } void SourceToolbar::SetUndoProperties(obs_source_t *source) { + if (!oldData) { + blog(LOG_ERROR, "%s: somehow oldData was null.", __FUNCTION__); + return; + } + OBSBasic *main = reinterpret_cast(App()->GetMainWindow()); std::string scene_name = @@ -88,7 +91,7 @@ void SourceToolbar::SetUndoProperties(obs_source_t *source) obs_data_release(new_settings); obs_data_release(curr_settings); - obs_data_release(oldData); + oldData = nullptr; } /* ========================================================================= */