UI: Fix incorrect use of QT_TO_UTF8 in SpeakerLayoutChanged

The string is immediately destroyed after use, so taking a pointer to it
ends up pointing to invalid memory. Let's avoid using QT_TO_UTF8 here.
This commit is contained in:
Richard Stanway
2023-04-05 22:13:23 +02:00
committed by Rodney
parent 6c676d39da
commit 9cdd847445

View File

@@ -4671,17 +4671,20 @@ void OBSBasicSettings::SpeakerLayoutChanged(int idx)
*/
PopulateSimpleBitrates(ui->simpleOutputABitrate, isOpus);
const char *encoder_id = QT_TO_UTF8(
ui->advOutAEncoder->currentData().toString());
QString rec_encoder_id =
ui->advOutRecAEncoder->currentData().toString();
string stream_encoder_id = ui->advOutAEncoder->currentData()
.toString()
.toStdString();
string record_encoder_id = ui->advOutRecAEncoder->currentData()
.toString()
.toStdString();
PopulateAdvancedBitrates(
{ui->advOutTrack1Bitrate, ui->advOutTrack2Bitrate,
ui->advOutTrack3Bitrate, ui->advOutTrack4Bitrate,
ui->advOutTrack5Bitrate, ui->advOutTrack6Bitrate},
encoder_id,
rec_encoder_id == "none" ? encoder_id
: QT_TO_UTF8(rec_encoder_id));
stream_encoder_id.c_str(),
record_encoder_id == "none"
? stream_encoder_id.c_str()
: record_encoder_id.c_str());
} else {
/*
* Reset audio bitrate for simple and adv mode, update list of