Skip to content

Commit d177570

Browse files
Merge pull request #31235 from RomanPudashkin/online_sounds_memory_leak
Online sounds: fix memory leak
2 parents e4e3ab2 + 7d58977 commit d177570

File tree

1 file changed

+7
-2
lines changed

1 file changed

+7
-2
lines changed

src/framework/musesampler/internal/musesamplerwrapper.cpp

Lines changed: 7 additions & 2 deletions
Original file line numberDiff line numberDiff line change
@@ -42,7 +42,8 @@ static InputProcessingProgress::StatusInfo::StatusData parseStatusData(const std
4242
}
4343

4444
std::string err;
45-
JsonDocument doc = JsonDocument::fromJson(ByteArray(json.c_str()), &err);
45+
ByteArray ba(json.c_str());
46+
JsonDocument doc = JsonDocument::fromJson(ba, &err);
4647

4748
if (!err.empty() || !doc.isObject()) {
4849
LOGE() << "JSON parse error: " << err << ", json: " << json;
@@ -388,8 +389,12 @@ void MuseSamplerWrapper::updateRenderingProgress(ms_RenderingRangeList list, int
388389
long long chunksDurationUs = 0;
389390
bool isRendering = false;
390391

391-
for (int i = 0; i < size; ++i) {
392+
// Call it N + 1 times so that the sampler can delete the list to avoid memory leak
393+
for (int i = 0; i <= size; ++i) {
392394
const RenderRangeInfo info = m_samplerLib->getNextRenderProgressInfo(list);
395+
if (i == size) {
396+
break;
397+
}
393398

394399
switch (info._state) {
395400
case ms_RenderingState_Rendering:

0 commit comments

Comments
 (0)