Fix memory tracing error in AsyncGeneratorObject

* fix to trace ExecutionPauser and AsyncGeneratorQueue vector members correctly

Signed-off-by: HyukWoo Park <hyukwoo.park@samsung.com>
This commit is contained in:
HyukWoo Park 2020-06-04 12:35:52 +09:00 committed by Boram Bae
commit bdd03a27c2
3 changed files with 6 additions and 2 deletions

View file

@ -90,6 +90,10 @@ private:
GC_set_bit(desc, GC_WORD_OFFSET(AsyncGeneratorObject, m_executionPauser.m_registerFile));
GC_set_bit(desc, GC_WORD_OFFSET(AsyncGeneratorObject, m_executionPauser.m_byteCodeBlock));
GC_set_bit(desc, GC_WORD_OFFSET(AsyncGeneratorObject, m_executionPauser.m_resumeValue));
GC_set_bit(desc, GC_WORD_OFFSET(AsyncGeneratorObject, m_executionPauser.m_promiseCapability.m_promise));
GC_set_bit(desc, GC_WORD_OFFSET(AsyncGeneratorObject, m_executionPauser.m_promiseCapability.m_resolveFunction));
GC_set_bit(desc, GC_WORD_OFFSET(AsyncGeneratorObject, m_executionPauser.m_promiseCapability.m_rejectFunction));
GC_set_bit(desc, GC_WORD_OFFSET(AsyncGeneratorObject, m_asyncGeneratorQueue));
}
friend Value asyncGeneratorEnqueue(ExecutionState& state, const Value& generator, AsyncGeneratorObject::AsyncGeneratorEnqueueType type, const Value& value);

View file

@ -48,8 +48,8 @@ void* ExecutionPauser::operator new(size_t size)
GC_set_bit(desc, GC_WORD_OFFSET(ExecutionPauser, m_byteCodeBlock));
GC_set_bit(desc, GC_WORD_OFFSET(ExecutionPauser, m_resumeValue));
GC_set_bit(desc, GC_WORD_OFFSET(ExecutionPauser, m_promiseCapability.m_promise));
GC_set_bit(desc, GC_WORD_OFFSET(ExecutionPauser, m_promiseCapability.m_rejectFunction));
GC_set_bit(desc, GC_WORD_OFFSET(ExecutionPauser, m_promiseCapability.m_resolveFunction));
GC_set_bit(desc, GC_WORD_OFFSET(ExecutionPauser, m_promiseCapability.m_rejectFunction));
descr = GC_make_descriptor(desc, GC_WORD_LEN(ExecutionPauser));
typeInited = true;
}

View file

@ -67,8 +67,8 @@ public:
m_byteCodeBlock = nullptr;
m_resumeValue = SmallValue();
m_promiseCapability.m_promise = nullptr;
m_promiseCapability.m_rejectFunction = nullptr;
m_promiseCapability.m_resolveFunction = nullptr;
m_promiseCapability.m_rejectFunction = nullptr;
}
enum StartFrom {