null pointer checks on all uses of WaveTrackCache::Get
This commit is contained in:
parent
31832b21a3
commit
87775d35e0
20
src/Mix.cpp
20
src/Mix.cpp
|
@ -456,7 +456,10 @@ size_t Mixer::MixVariableRates(int *channelFlags, WaveTrackCache &cache,
|
|||
if (getLen > 0) {
|
||||
if (backwards) {
|
||||
auto results = cache.Get(floatSample, *pos - (getLen - 1), getLen);
|
||||
memcpy(&queue[*queueLen], results, sizeof(float) * getLen);
|
||||
if (results)
|
||||
memcpy(&queue[*queueLen], results, sizeof(float) * getLen);
|
||||
else
|
||||
memset(&queue[*queueLen], 0, sizeof(float) * getLen);
|
||||
|
||||
track->GetEnvelopeValues(mEnvValues,
|
||||
getLen,
|
||||
|
@ -465,7 +468,10 @@ size_t Mixer::MixVariableRates(int *channelFlags, WaveTrackCache &cache,
|
|||
}
|
||||
else {
|
||||
auto results = cache.Get(floatSample, *pos, getLen);
|
||||
memcpy(&queue[*queueLen], results, sizeof(float) * getLen);
|
||||
if (results)
|
||||
memcpy(&queue[*queueLen], results, sizeof(float) * getLen);
|
||||
else
|
||||
memset(&queue[*queueLen], 0, sizeof(float) * getLen);
|
||||
|
||||
track->GetEnvelopeValues(mEnvValues,
|
||||
getLen,
|
||||
|
@ -571,7 +577,10 @@ size_t Mixer::MixSameRate(int *channelFlags, WaveTrackCache &cache,
|
|||
|
||||
if (backwards) {
|
||||
auto results = cache.Get(floatSample, *pos - (slen - 1), slen);
|
||||
memcpy(mFloatBuffer, results, sizeof(float) * slen);
|
||||
if (results)
|
||||
memcpy(mFloatBuffer, results, sizeof(float) * slen);
|
||||
else
|
||||
memset(mFloatBuffer, 0, sizeof(float) * slen);
|
||||
track->GetEnvelopeValues(mEnvValues, slen, t - (slen - 1) / mRate);
|
||||
for(decltype(slen) i = 0; i < slen; i++)
|
||||
mFloatBuffer[i] *= mEnvValues[i]; // Track gain control will go here?
|
||||
|
@ -581,7 +590,10 @@ size_t Mixer::MixSameRate(int *channelFlags, WaveTrackCache &cache,
|
|||
}
|
||||
else {
|
||||
auto results = cache.Get(floatSample, *pos, slen);
|
||||
memcpy(mFloatBuffer, results, sizeof(float) * slen);
|
||||
if (results)
|
||||
memcpy(mFloatBuffer, results, sizeof(float) * slen);
|
||||
else
|
||||
memset(mFloatBuffer, 0, sizeof(float) * slen);
|
||||
track->GetEnvelopeValues(mEnvValues, slen, t);
|
||||
for(decltype(slen) i = 0; i < slen; i++)
|
||||
mFloatBuffer[i] *= mEnvValues[i]; // Track gain control will go here?
|
||||
|
|
|
@ -854,12 +854,16 @@ bool SpecCache::CalculateOneSpectrum
|
|||
myLen)
|
||||
);
|
||||
|
||||
if (copy)
|
||||
memcpy(adj, useBuffer, myLen * sizeof(float));
|
||||
if (copy) {
|
||||
if (useBuffer)
|
||||
memcpy(adj, useBuffer, myLen * sizeof(float));
|
||||
else
|
||||
memset(adj, 0, myLen * sizeof(float));
|
||||
}
|
||||
}
|
||||
}
|
||||
|
||||
if (copy)
|
||||
if (copy || !useBuffer)
|
||||
useBuffer = scratch;
|
||||
|
||||
if (autocorrelation) {
|
||||
|
|
Loading…
Reference in New Issue