commit 94d4b614162e0cf341bcf06e31d2925914586c2e
parent f5e641416cdfce2bf2718ac409ff5fd5510a2c9d
Author: dsp56300 <dsp56300@users.noreply.github.com>
Date: Sat, 22 Feb 2025 00:29:44 +0100
some smaller startup time improvement tweaks
Diffstat:
3 files changed, 12 insertions(+), 7 deletions(-)
diff --git a/source/virusLib/romfile.cpp b/source/virusLib/romfile.cpp
@@ -297,7 +297,9 @@ bool ROMFile::loadPresetFile(std::istream& _file, DeviceModel _model)
_file.read(reinterpret_cast<char*>(&single), sizeof(single));
m_singles.emplace_back(single);
+#ifdef _DEBUG
LOG("Loaded single " << i << ", name = " << getSingleName(single));
+#endif
}
if(multiCount)
@@ -311,7 +313,9 @@ bool ROMFile::loadPresetFile(std::istream& _file, DeviceModel _model)
_file.read(reinterpret_cast<char*>(&multi), sizeof(multi));
m_multis.emplace_back(multi);
+#ifdef _DEBUG
LOG("Loaded multi " << i << ", name = " << getMultiName(multi));
+#endif
}
}
diff --git a/source/virusLib/unpacker.cpp b/source/virusLib/unpacker.cpp
@@ -89,11 +89,11 @@ namespace virusLib
auto presetFile = unpackFile(parts, presetFileId);
if (!presetFile.empty())
{
- presets.emplace_back(presetFile);
+ presets.emplace_back(std::move(presetFile));
}
}
- return Firmware{dsp, presets};
+ return Firmware{std::move(dsp), std::move(presets)};
}
std::string ROMUnpacker::getVtiFilename(const DeviceModel _model)
@@ -133,18 +133,19 @@ namespace virusLib
{
chunk.data.resize(chunk.size);
_file.read(chunk.data.data(), chunk.size);
- result.emplace_back(chunk);
+ result.emplace_back(std::move(chunk));
}
}
return result;
}
- std::vector<char> ROMUnpacker::unpackFile(std::vector<Chunk>& _chunks, const char _fileId)
+ std::vector<char> ROMUnpacker::unpackFile(const std::vector<Chunk>& _chunks, const char _fileId)
{
std::vector<char> content;
+ content.reserve(1 << 20);
- for (auto& chunk: _chunks)
+ for (const auto& chunk : _chunks)
{
if (chunk.name[0] != _fileId)
{
@@ -159,7 +160,7 @@ namespace virusLib
// each chunk has 2 remaining bytes (checksum?)
for (size_t i = 0; i < chunk.size - 2; i += 35)
{
- const auto idx = swap16(*reinterpret_cast<uint16_t*>(&chunk.data[i + 1]));
+ const auto idx = swap16(*reinterpret_cast<const uint16_t*>(&chunk.data[i + 1]));
assert (idx == ctr);
for (size_t j = 0; j < 32; ++j)
{
diff --git a/source/virusLib/unpacker.h b/source/virusLib/unpacker.h
@@ -39,7 +39,7 @@ namespace virusLib
static std::vector<Chunk> getChunks(std::istream& _file);
- static std::vector<char> unpackFile(std::vector<Chunk>& _chunks, char _fileId);
+ static std::vector<char> unpackFile(const std::vector<Chunk>& _chunks, char _fileId);
};
}