浏览代码

Release sources after name check

Palana 11 年之前
父节点
当前提交
d3463e0772
共有 2 个文件被更改,包括 8 次插入2 次删除
  1. 4 1
      obs/window-basic-main.cpp
  2. 4 1
      obs/window-basic-source-select.cpp

+ 4 - 1
obs/window-basic-main.cpp

@@ -967,8 +967,11 @@ void OBSBasic::on_actionAddScene_triggered()
 
 
 	int i = 1;
 	int i = 1;
 	QString placeHolderText = format.arg(i);
 	QString placeHolderText = format.arg(i);
-	while (obs_get_source_by_name(QT_TO_UTF8(placeHolderText)))
+	obs_source_t source = nullptr;
+	while ((source = obs_get_source_by_name(QT_TO_UTF8(placeHolderText)))) {
+		obs_source_release(source);
 		placeHolderText = format.arg(++i);
 		placeHolderText = format.arg(++i);
+	}
 
 
 	bool accepted = NameDialog::AskForName(this,
 	bool accepted = NameDialog::AskForName(this,
 			QTStr("Basic.Main.AddSceneDlg.Title"),
 			QTStr("Basic.Main.AddSceneDlg.Title"),

+ 4 - 1
obs/window-basic-source-select.cpp

@@ -174,8 +174,11 @@ OBSBasicSourceSelect::OBSBasicSourceSelect(OBSBasic *parent, const char *type_)
 
 
 	QString text{placeHolderText};
 	QString text{placeHolderText};
 	int i = 1;
 	int i = 1;
-	while (obs_get_source_by_name(QT_TO_UTF8(text)))
+	obs_source_t source = nullptr;
+	while ((source = obs_get_source_by_name(QT_TO_UTF8(text)))) {
+		obs_source_release(source);
 		text = QString("%1 %2").arg(placeHolderText).arg(i++);
 		text = QString("%1 %2").arg(placeHolderText).arg(i++);
+	}
 
 
 	ui->sourceName->setText(text);
 	ui->sourceName->setText(text);
 	ui->sourceName->setFocus();	//Fixes deselect of text.
 	ui->sourceName->setFocus();	//Fixes deselect of text.