Skip to content

Commit 02bada1

Browse files
FuroYTHundrec
authored andcommitted
Fix Memory Leak (pt 2)
1 parent a940717 commit 02bada1

File tree

1 file changed

+11
-9
lines changed

1 file changed

+11
-9
lines changed

src/funkin/vis/dsp/SpectralAnalyzer.hx

Lines changed: 11 additions & 9 deletions
Original file line numberDiff line numberDiff line change
@@ -205,31 +205,33 @@ class SpectralAnalyzer
205205
startFrame -= startFrame % numOctets;
206206
var segment = audioSource.buffer.data.subarray(startFrame, min(startFrame + wantedLength, audioSource.buffer.data.length));
207207

208-
var signal = getSignal(segment, audioSource.buffer.bitsPerSample);
208+
getSignal(segment, audioSource.buffer.bitsPerSample); // Sets _buffer
209209

210210
if (audioSource.buffer.channels > 1) {
211-
_mixedCache.resize(Std.int(signal.length / audioSource.buffer.channels));
211+
var wantedArrayLength = Std.int(_buffer.length / audioSource.buffer.channels);
212+
if (_mixedCache.length != wantedArrayLength)
213+
_mixedCache.resize(wantedArrayLength);
214+
212215
for (i in 0..._mixedCache.length) {
213216
_mixedCache[i] = 0.0;
214217
for (c in 0...audioSource.buffer.channels) {
215-
_mixedCache[i] += 0.7 * signal[i*audioSource.buffer.channels+c];
218+
_mixedCache[i] += 0.7 * _buffer[i*audioSource.buffer.channels+c];
216219
}
217220
_mixedCache[i] *= blackmanWindow[i];
218221
}
219-
signal = _mixedCache;
222+
//_buffer = _mixedCache;
220223
}
221224

222225
var range = 16;
223-
var freqs = fft.calcFreq(signal);
226+
var freqs = fft.calcFreq(_mixedCache);
224227

225228
_logGraphCache = vis.makeLogGraph(freqs, barCount + 1, Math.floor(maxDb - minDb), range, _logGraphCache);
226229

227-
if (_logGraphCache.length - 1 > barHistories.length) {
230+
/*if (_logGraphCache.length - 1 > barHistories.length) {
228231
barHistories.resize(_logGraphCache.length - 1);
229-
}
230-
232+
}*/
233+
// levels.resize(_logGraphCache.length-1);
231234

232-
levels.resize(_logGraphCache.length-1);
233235
for (i in 0..._logGraphCache.length-1) {
234236

235237
if (barHistories[i] == null) barHistories[i] = new RecentPeakFinder();

0 commit comments

Comments
 (0)