1
0
mirror of https://github.com/cookiengineer/audacity synced 2026-02-07 04:01:54 +01:00

Don't copy wxFileName often, it's not lightweight! Use wxFileNameWrapper...

... which is a new class that defines moves.
This commit is contained in:
Paul Licameli
2016-04-11 00:16:29 -04:00
committed by Paul Licameli
parent b0ef9c4e82
commit b6fdffbab2
23 changed files with 291 additions and 208 deletions

View File

@@ -99,10 +99,10 @@ ArrayOf<char> BlockFile::fullSummary;
/// will store at least the summary data here.
///
/// @param samples The number of samples this BlockFile contains.
BlockFile::BlockFile(wxFileName fileName, sampleCount samples):
BlockFile::BlockFile(wxFileNameWrapper &&fileName, sampleCount samples):
mLockCount(0),
mRefCount(1),
mFileName(fileName),
mFileName(std::move(fileName)),
mLen(samples),
mSummaryInfo(samples)
{
@@ -126,9 +126,9 @@ wxFileName BlockFile::GetFileName() const
}
///sets the file name the summary info will be saved in. threadsafe.
void BlockFile::SetFileName(wxFileName &name)
void BlockFile::SetFileName(wxFileNameWrapper &&name)
{
mFileName=name;
mFileName=std::move(name);
}
@@ -523,26 +523,29 @@ bool BlockFile::Read64K(float *buffer,
/// file.
/// @param aliasChannel The channel where this block's data is located in
/// the aliased file
AliasBlockFile::AliasBlockFile(wxFileName baseFileName,
wxFileName aliasedFileName,
AliasBlockFile::AliasBlockFile(wxFileNameWrapper &&baseFileName,
wxFileNameWrapper &&aliasedFileName,
sampleCount aliasStart,
sampleCount aliasLen, int aliasChannel):
BlockFile(wxFileName(baseFileName.GetFullPath() + wxT(".auf")), aliasLen),
mAliasedFileName(aliasedFileName),
BlockFile {
(baseFileName.SetExt(wxT("auf")), std::move(baseFileName)),
aliasLen
},
mAliasedFileName(std::move(aliasedFileName)),
mAliasStart(aliasStart),
mAliasChannel(aliasChannel)
{
mSilentAliasLog=FALSE;
}
AliasBlockFile::AliasBlockFile(wxFileName existingSummaryFileName,
wxFileName aliasedFileName,
AliasBlockFile::AliasBlockFile(wxFileNameWrapper &&existingSummaryFileName,
wxFileNameWrapper &&aliasedFileName,
sampleCount aliasStart,
sampleCount aliasLen,
int aliasChannel,
float min, float max, float rms):
BlockFile(existingSummaryFileName, aliasLen),
mAliasedFileName(aliasedFileName),
BlockFile(std::move(existingSummaryFileName), aliasLen),
mAliasedFileName(std::move(aliasedFileName)),
mAliasStart(aliasStart),
mAliasChannel(aliasChannel)
{
@@ -629,9 +632,9 @@ bool AliasBlockFile::ReadSummary(void *data)
/// Modify this block to point at a different file. This is generally
/// looked down on, but it is necessary in one case: see
/// DirManager::EnsureSafeFilename().
void AliasBlockFile::ChangeAliasedFileName(wxFileName newAliasedFile)
void AliasBlockFile::ChangeAliasedFileName(wxFileNameWrapper &&newAliasedFile)
{
mAliasedFileName = newAliasedFile;
mAliasedFileName = std::move(newAliasedFile);
}
wxLongLong AliasBlockFile::GetSpaceUsage() const