From fd6ba1eda113e703792c0ffef4f27c8e48e137a7 Mon Sep 17 00:00:00 2001 From: JellyBrick Date: Mon, 26 Feb 2024 19:13:22 +0900 Subject: [PATCH] fix(downloader): fix memory leak reported in #1791 --- src/plugins/downloader/main/index.ts | 24 ++++++++++-------------- 1 file changed, 10 insertions(+), 14 deletions(-) diff --git a/src/plugins/downloader/main/index.ts b/src/plugins/downloader/main/index.ts index 17414e93..d15dcea7 100644 --- a/src/plugins/downloader/main/index.ts +++ b/src/plugins/downloader/main/index.ts @@ -1,5 +1,4 @@ import { - createWriteStream, existsSync, mkdirSync, writeFileSync, @@ -297,7 +296,7 @@ async function downloadSongUnsafe( mkdirSync(dir); } - const fileBuffer = await iterableStreamToTargetFile( + let fileBuffer = await iterableStreamToTargetFile( iterableStream, targetFileExtension, metadata, @@ -307,19 +306,16 @@ async function downloadSongUnsafe( increasePlaylistProgress, ); + if (fileBuffer && targetFileExtension === 'mp3') { + fileBuffer = await writeID3( + Buffer.from(fileBuffer), + metadata, + sendFeedback, + ); + } + if (fileBuffer) { - if (targetFileExtension !== 'mp3') { - createWriteStream(filePath).write(fileBuffer); - } else { - const buffer = await writeID3( - Buffer.from(fileBuffer), - metadata, - sendFeedback, - ); - if (buffer) { - writeFileSync(filePath, buffer); - } - } + writeFileSync(filePath, fileBuffer); } sendFeedback(null, -1);