From: <sv...@op...> - 2025-03-10 10:55:18
|
Author: manx Date: Mon Mar 10 11:55:10 2025 New Revision: 23000 URL: https://source.openmpt.org/browse/openmpt/?op=revision&rev=23000 Log: [Ref] Avoid unnecessary CString<->mpt::ustring roundtrips when constructing instrument and sample names. Modified: trunk/OpenMPT/mptrack/Ctrl_ins.cpp trunk/OpenMPT/mptrack/Ctrl_smp.cpp Modified: trunk/OpenMPT/mptrack/Ctrl_ins.cpp ============================================================================== --- trunk/OpenMPT/mptrack/Ctrl_ins.cpp Fri Mar 7 21:17:57 2025 (r22999) +++ trunk/OpenMPT/mptrack/Ctrl_ins.cpp Mon Mar 10 11:55:10 2025 (r23000) @@ -2110,7 +2110,6 @@ maxIns = m_sndFile.GetNumInstruments(); } auto numberFmt = mpt::format_simple_spec<mpt::ustring>().Dec().FillNul().Width(1 + static_cast<int>(std::log10(maxIns))); - CString instrName, instrFilename; bool ok = true; const bool saveXI = !mpt::PathCompareNoCase(dlg.GetExtension(), P_("xi")); @@ -2126,15 +2125,15 @@ fileName = dlg.GetFirstFile(); if(doBatchSave) { - instrName = mpt::ToCString(m_sndFile.GetCharsetInternal(), pIns->name[0] ? pIns->GetName() : "untitled"); - instrFilename = mpt::ToCString(m_sndFile.GetCharsetInternal(), pIns->filename[0] ? pIns->GetFilename() : pIns->GetName()); + mpt::ustring instrName = mpt::ToUnicode(m_sndFile.GetCharsetInternal(), pIns->name[0] ? pIns->GetName() : "untitled"); + mpt::ustring instrFilename = mpt::ToUnicode(m_sndFile.GetCharsetInternal(), pIns->filename[0] ? pIns->GetFilename() : pIns->GetName()); instrName = SanitizePathComponent(instrName); instrFilename = SanitizePathComponent(instrFilename); mpt::ustring fileNameW = fileName.ToUnicode(); fileNameW = mpt::replace(fileNameW, U_("%instrument_number%"), mpt::ufmt::fmt(ins, numberFmt)); - fileNameW = mpt::replace(fileNameW, U_("%instrument_filename%"), mpt::ToUnicode(instrFilename)); - fileNameW = mpt::replace(fileNameW, U_("%instrument_name%"), mpt::ToUnicode(instrName)); + fileNameW = mpt::replace(fileNameW, U_("%instrument_filename%"), instrFilename); + fileNameW = mpt::replace(fileNameW, U_("%instrument_name%"), instrName); fileName = mpt::PathString::FromUnicode(fileNameW); } Modified: trunk/OpenMPT/mptrack/Ctrl_smp.cpp ============================================================================== --- trunk/OpenMPT/mptrack/Ctrl_smp.cpp Fri Mar 7 21:17:57 2025 (r22999) +++ trunk/OpenMPT/mptrack/Ctrl_smp.cpp Mon Mar 10 11:55:10 2025 (r23000) @@ -1394,7 +1394,6 @@ const auto numberFmt = mpt::format_simple_spec<mpt::ustring>().Dec().FillNul().Width(1 + static_cast<int>(std::log10(maxSmp))); bool ok = false; - CString sampleName, sampleFilename; for(SAMPLEINDEX smp = minSmp; smp <= maxSmp; smp++) { @@ -1406,15 +1405,15 @@ fileName = dlg.GetFirstFile(); if(doBatchSave) { - sampleName = mpt::ToCString(m_sndFile.GetCharsetInternal(), (!m_sndFile.m_szNames[smp].empty()) ? std::string(m_sndFile.m_szNames[smp]) : "untitled"); - sampleFilename = mpt::ToCString(m_sndFile.GetCharsetInternal(), (!sample.filename.empty()) ? sample.GetFilename() : m_sndFile.m_szNames[smp]); + mpt::ustring sampleName = mpt::ToUnicode(m_sndFile.GetCharsetInternal(), (!m_sndFile.m_szNames[smp].empty()) ? std::string(m_sndFile.m_szNames[smp]) : "untitled"); + mpt::ustring sampleFilename = mpt::ToUnicode(m_sndFile.GetCharsetInternal(), (!sample.filename.empty()) ? sample.GetFilename() : m_sndFile.m_szNames[smp]); sampleName = SanitizePathComponent(sampleName); sampleFilename = SanitizePathComponent(sampleFilename); mpt::ustring fileNameU = fileName.ToUnicode(); fileNameU = mpt::replace(fileNameU, U_("%sample_number%"), mpt::ufmt::fmt(smp, numberFmt)); - fileNameU = mpt::replace(fileNameU, U_("%sample_filename%"), mpt::ToUnicode(sampleFilename)); - fileNameU = mpt::replace(fileNameU, U_("%sample_name%"), mpt::ToUnicode(sampleName)); + fileNameU = mpt::replace(fileNameU, U_("%sample_filename%"), sampleFilename); + fileNameU = mpt::replace(fileNameU, U_("%sample_name%"), sampleName); fileName = mpt::PathString::FromUnicode(fileNameU); // Need to enforce S3I for Adlib samples |