From 7d1253e14e6c50cb3a437ea706578f8d47319f81 Mon Sep 17 00:00:00 2001 From: WarmUpTill Date: Mon, 4 Dec 2023 20:00:19 +0100 Subject: [PATCH] Use RAII wrappers for OBS data --- src/macro-core/macro-tab.cpp | 25 ++++++++----------------- 1 file changed, 8 insertions(+), 17 deletions(-) diff --git a/src/macro-core/macro-tab.cpp b/src/macro-core/macro-tab.cpp index 500fe507..48aa4f12 100644 --- a/src/macro-core/macro-tab.cpp +++ b/src/macro-core/macro-tab.cpp @@ -235,21 +235,18 @@ void AdvSceneSwitcher::ExportMacros() } } - auto data = obs_data_create(); - auto macroArray = obs_data_array_create(); + OBSDataAutoRelease data = obs_data_create(); + OBSDataArrayAutoRelease macroArray = obs_data_array_create(); for (const auto ¯o : macros) { - obs_data_t *obj = obs_data_create(); + OBSDataAutoRelease obj = obs_data_create(); macro->Save(obj); obs_data_array_push_back(macroArray, obj); - obs_data_release(obj); } obs_data_set_array(data, "macros", macroArray); switcher->SaveVariables(data); - obs_data_array_release(macroArray); obs_data_set_string(data, "version", g_GIT_TAG); auto json = obs_data_get_json(data); QString exportString(json); - obs_data_release(data); MacroExportImportDialog::ExportMacros(exportString); } @@ -394,7 +391,8 @@ void AdvSceneSwitcher::ImportMacros() if (!MacroExportImportDialog::ImportMacros(json)) { return; } - auto data = obs_data_create_from_json(json.toStdString().c_str()); + OBSDataAutoRelease data = + obs_data_create_from_json(json.toStdString().c_str()); if (!data) { DisplayMessage(obs_module_text( "AdvSceneSwitcher.macroTab.import.invalid")); @@ -410,23 +408,21 @@ void AdvSceneSwitcher::ImportMacros() version); } - auto array = obs_data_get_array(data, "macros"); + OBSDataArrayAutoRelease array = obs_data_get_array(data, "macros"); size_t count = obs_data_array_count(array); int groupSize = 0; std::shared_ptr group; auto lock = LockContext(); - for (size_t i = 0; i < count; i++) { - obs_data_t *array_obj = obs_data_array_item(array, i); + OBSDataAutoRelease array_obj = obs_data_array_item(array, i); auto macro = std::make_shared(); macro->Load(array_obj); macro->PostLoad(); if (macroNameExists(macro->Name()) && !ResolveMacroImportNameConflict(macro)) { - obs_data_release(array_obj); groupSize--; continue; } @@ -445,11 +441,7 @@ void AdvSceneSwitcher::ImportMacros() // to the group as they come up. macro->ResetGroupSize(); } - - obs_data_release(array_obj); } - obs_data_array_release(array); - obs_data_release(data); ui->macros->Reset(switcher->macros, switcher->macroProperties._highlightExecuted); @@ -991,13 +983,12 @@ void AdvSceneSwitcher::CopyMacro() return; } - obs_data_t *data = obs_data_create(); + OBSDataAutoRelease data = obs_data_create(); macro->Save(data); newMacro->Load(data); newMacro->PostLoad(); newMacro->SetName(name); Macro::PrepareMoveToGroup(macro->Parent(), newMacro); - obs_data_release(data); ui->macros->Add(newMacro, macro); ui->macroAdd->disconnect(addPulse);