aboutsummaryrefslogtreecommitdiffstats
diff options
context:
space:
mode:
authorDaniil Cherednik <dan.cherednik@gmail.com>2018-07-28 01:29:02 +0300
committerDaniil Cherednik <dan.cherednik@gmail.com>2018-07-28 01:29:02 +0300
commitd8014b6a75086decf99526d1538a172b527536e5 (patch)
tree14d50ffc2c8025e4c882ad1a897ce58e3cee8cc6
parenta883931b0d2e40dbfb0a4534694bc98742c09296 (diff)
downloadatracdenc-d8014b6a75086decf99526d1538a172b527536e5.tar.gz
Remove extra copy/allocation
-rw-r--r--src/atrac/atrac3_bitstream.cpp2
-rw-r--r--src/atrac/atrac_scale.cpp1
2 files changed, 2 insertions, 1 deletions
diff --git a/src/atrac/atrac3_bitstream.cpp b/src/atrac/atrac3_bitstream.cpp
index c976ac2..8a391db 100644
--- a/src/atrac/atrac3_bitstream.cpp
+++ b/src/atrac/atrac3_bitstream.cpp
@@ -103,7 +103,7 @@ std::pair<uint8_t, uint32_t> TAtrac3BitStreamWriter::CalcSpecsBitsConsumption(co
const uint32_t numBlocks = precisionPerEachBlocks.size();
uint32_t bitsUsed = numBlocks * 3;
- auto lambda = [=](bool clcMode, bool calcMant) {
+ auto lambda = [this, numBlocks, mantisas, &precisionPerEachBlocks, &scaledBlocks](bool clcMode, bool calcMant) {
uint32_t bits = 0;
for (uint32_t i = 0; i < numBlocks; ++i) {
if (precisionPerEachBlocks[i] == 0)
diff --git a/src/atrac/atrac_scale.cpp b/src/atrac/atrac_scale.cpp
index e41c2a0..a8a6fda 100644
--- a/src/atrac/atrac_scale.cpp
+++ b/src/atrac/atrac_scale.cpp
@@ -66,6 +66,7 @@ TScaledBlock TScaler<TBaseData>::Scale(const TFloat* in, uint16_t len) {
template<class TBaseData>
vector<TScaledBlock> TScaler<TBaseData>::ScaleFrame(const vector<TFloat>& specs, const TBlockSize& blockSize) {
vector<TScaledBlock> scaledBlocks;
+ scaledBlocks.reserve(TBaseData::MaxBfus);
for (uint8_t bandNum = 0; bandNum < this->NumQMF; ++bandNum) {
const bool shortWinMode = !!blockSize.LogCount[bandNum];
for (uint8_t blockNum = this->BlocksPerBand[bandNum]; blockNum < this->BlocksPerBand[bandNum + 1]; ++blockNum) {