mirror of
https://github.com/Samsung/escargot.git
synced 2026-06-22 10:01:50 +00:00
allocate almost gc objects as typed gc object
Signed-off-by: seonghyun kim <sh8281.kim@samsung.com>
This commit is contained in:
parent
e8689eed07
commit
dbbbdf2374
40 changed files with 506 additions and 105 deletions
|
|
@ -35,4 +35,46 @@ ExtendedNodeLOC ByteCodeBlock::computeNodeLOCFromByteCode(ByteCode* code, CodeBl
|
|||
}
|
||||
return ExtendedNodeLOC(line, column, code->m_loc.index);
|
||||
}
|
||||
|
||||
void* GetObjectInlineCache::operator new(size_t size)
|
||||
{
|
||||
static bool typeInited = false;
|
||||
static GC_descr descr;
|
||||
if (!typeInited) {
|
||||
GC_word obj_bitmap[GC_BITMAP_SIZE(GetObjectInlineCache)] = { 0 };
|
||||
GC_set_bit(obj_bitmap, GC_WORD_OFFSET(GetObjectInlineCache, m_cache));
|
||||
descr = GC_make_descriptor(obj_bitmap, GC_WORD_LEN(GetObjectInlineCache));
|
||||
typeInited = true;
|
||||
}
|
||||
return GC_MALLOC_EXPLICITLY_TYPED(size, descr);
|
||||
}
|
||||
|
||||
void* SetObjectInlineCache::operator new(size_t size)
|
||||
{
|
||||
static bool typeInited = false;
|
||||
static GC_descr descr;
|
||||
if (!typeInited) {
|
||||
GC_word obj_bitmap[GC_BITMAP_SIZE(SetObjectInlineCache)] = { 0 };
|
||||
GC_set_bit(obj_bitmap, GC_WORD_OFFSET(SetObjectInlineCache, m_cachedhiddenClassChain));
|
||||
GC_set_bit(obj_bitmap, GC_WORD_OFFSET(SetObjectInlineCache, m_hiddenClassWillBe));
|
||||
descr = GC_make_descriptor(obj_bitmap, GC_WORD_LEN(SetObjectInlineCache));
|
||||
typeInited = true;
|
||||
}
|
||||
return GC_MALLOC_EXPLICITLY_TYPED(size, descr);
|
||||
}
|
||||
|
||||
void* EnumerateObjectData::operator new(size_t size)
|
||||
{
|
||||
static bool typeInited = false;
|
||||
static GC_descr descr;
|
||||
if (!typeInited) {
|
||||
GC_word obj_bitmap[GC_BITMAP_SIZE(EnumerateObjectData)] = { 0 };
|
||||
GC_set_bit(obj_bitmap, GC_WORD_OFFSET(EnumerateObjectData, m_hiddenClassChain));
|
||||
GC_set_bit(obj_bitmap, GC_WORD_OFFSET(EnumerateObjectData, m_object));
|
||||
GC_set_bit(obj_bitmap, GC_WORD_OFFSET(EnumerateObjectData, m_keys));
|
||||
descr = GC_make_descriptor(obj_bitmap, GC_WORD_LEN(EnumerateObjectData));
|
||||
typeInited = true;
|
||||
}
|
||||
return GC_MALLOC_EXPLICITLY_TYPED(size, descr);
|
||||
}
|
||||
}
|
||||
|
|
|
|||
Loading…
Add table
Add a link
Reference in a new issue