Browse Source

UI: Replace addref calls with get_ref

Jim 3 years ago
parent
commit
b9e01380f3
1 changed files with 15 additions and 26 deletions
  1. 15 26
      UI/api-interface.cpp

+ 15 - 26
UI/api-interface.cpp

@@ -81,22 +81,19 @@ struct OBSStudioAPI : obs_frontend_callbacks {
 			OBSScene scene = GetOBSRef<OBSScene>(item);
 			obs_source_t *source = obs_scene_get_source(scene);
 
-			obs_source_addref(source);
-			da_push_back(sources->sources, &source);
+			if (obs_source_get_ref(source) != nullptr)
+				da_push_back(sources->sources, &source);
 		}
 	}
 
 	obs_source_t *obs_frontend_get_current_scene(void) override
 	{
-		OBSSource source;
-
 		if (main->IsPreviewProgramMode()) {
-			source = obs_weak_source_get_source(main->programScene);
+			return obs_weak_source_get_source(main->programScene);
 		} else {
-			source = main->GetCurrentSceneSource();
-			obs_source_addref(source);
+			OBSSource source = main->GetCurrentSceneSource();
+			return obs_source_get_ref(source);
 		}
-		return source;
 	}
 
 	void obs_frontend_set_current_scene(obs_source_t *scene) override
@@ -123,17 +120,15 @@ struct OBSStudioAPI : obs_frontend_callbacks {
 			if (!tr)
 				continue;
 
-			obs_source_addref(tr);
-			da_push_back(sources->sources, &tr);
+			if (obs_source_get_ref(tr) != nullptr)
+				da_push_back(sources->sources, &tr);
 		}
 	}
 
 	obs_source_t *obs_frontend_get_current_transition(void) override
 	{
 		OBSSource tr = main->GetCurrentTransition();
-
-		obs_source_addref(tr);
-		return tr;
+		return obs_source_get_ref(tr);
 	}
 
 	void
@@ -391,22 +386,19 @@ struct OBSStudioAPI : obs_frontend_callbacks {
 	obs_output_t *obs_frontend_get_streaming_output(void) override
 	{
 		OBSOutput output = main->outputHandler->streamOutput.Get();
-		obs_output_addref(output);
-		return output;
+		return obs_output_get_ref(output);
 	}
 
 	obs_output_t *obs_frontend_get_recording_output(void) override
 	{
 		OBSOutput out = main->outputHandler->fileOutput.Get();
-		obs_output_addref(out);
-		return out;
+		return obs_output_get_ref(out);
 	}
 
 	obs_output_t *obs_frontend_get_replay_buffer_output(void) override
 	{
 		OBSOutput out = main->outputHandler->replayBuffer.Get();
-		obs_output_addref(out);
-		return out;
+		return obs_output_get_ref(out);
 	}
 
 	config_t *obs_frontend_get_profile_config(void) override
@@ -550,14 +542,12 @@ struct OBSStudioAPI : obs_frontend_callbacks {
 
 	obs_source_t *obs_frontend_get_current_preview_scene(void) override
 	{
-		OBSSource source = nullptr;
-
 		if (main->IsPreviewProgramMode()) {
-			source = main->GetCurrentSceneSource();
-			obs_source_addref(source);
+			OBSSource source = main->GetCurrentSceneSource();
+			return obs_source_get_ref(source);
 		}
 
-		return source;
+		return nullptr;
 	}
 
 	void
@@ -585,8 +575,7 @@ struct OBSStudioAPI : obs_frontend_callbacks {
 	obs_output_t *obs_frontend_get_virtualcam_output(void) override
 	{
 		OBSOutput output = main->outputHandler->virtualCam.Get();
-		obs_output_addref(output);
-		return output;
+		return obs_output_get_ref(output);
 	}
 
 	void obs_frontend_start_virtualcam(void) override