Skip to content

Commit

Permalink
Prune Async, Generator function ByteCodeBlock if possible
Browse files Browse the repository at this point in the history
* Don't hold Async, Generator function ByteCodeBlock while GC

Signed-off-by: Seonghyun Kim <[email protected]>
  • Loading branch information
ksh8281 committed Jun 17, 2024
1 parent f646e36 commit f0e761f
Showing 1 changed file with 2 additions and 8 deletions.
10 changes: 2 additions & 8 deletions src/runtime/VMInstance.cpp
Original file line number Diff line number Diff line change
Expand Up @@ -215,10 +215,7 @@ void vmMarkStartCallback(void* data)

auto& v = self->compiledByteCodeBlocks();
for (size_t i = 0; i < v.size(); i++) {
auto cb = v[i]->m_codeBlock;
if (LIKELY(!cb->isAsync() && !cb->isGenerator())) {
v[i]->m_codeBlock->setByteCodeBlock(nullptr);
}
v[i]->m_codeBlock->setByteCodeBlock(nullptr);
}
}
#endif
Expand Down Expand Up @@ -248,10 +245,7 @@ void vmReclaimEndCallback(void* data)
currentCodeSizeTotal = 0;
auto& v = self->compiledByteCodeBlocks();
for (size_t i = 0; i < v.size(); i++) {
auto cb = v[i]->m_codeBlock;
if (UNLIKELY(!cb->isAsync() && !cb->isGenerator())) {
v[i]->m_codeBlock->setByteCodeBlock(v[i]);
}
v[i]->m_codeBlock->setByteCodeBlock(v[i]);
ASSERT(v[i]->m_codeBlock->byteCodeBlock() == v[i]);

currentCodeSizeTotal += v[i]->memoryAllocatedSize();
Expand Down

0 comments on commit f0e761f

Please sign in to comment.