diff options
Diffstat (limited to 'src/frame-element.h')
-rw-r--r-- | src/frame-element.h | 24 |
1 files changed, 8 insertions, 16 deletions
diff --git a/src/frame-element.h b/src/frame-element.h index ae5d6a1b..0c7d0103 100644 --- a/src/frame-element.h +++ b/src/frame-element.h @@ -106,20 +106,9 @@ class FrameElement BASE_EMBEDDED { return result; } - // Static indirection table for handles to constants. If a frame - // element represents a constant, the data contains an index into - // this table of handles to the actual constants. - typedef ZoneList<Handle<Object> > ZoneObjectList; - - static ZoneObjectList* ConstantList(); - static bool ConstantPoolOverflowed() { - return !DataField::is_valid(ConstantList()->length()); - } - - // Clear the constants indirection table. - static void ClearConstantList() { - ConstantList()->Clear(); + return !DataField::is_valid( + Isolate::Current()->frame_element_constant_list()->length()); } bool is_synced() const { return SyncedField::decode(value_); } @@ -164,7 +153,8 @@ class FrameElement BASE_EMBEDDED { Handle<Object> handle() const { ASSERT(is_constant()); - return ConstantList()->at(DataField::decode(value_)); + return Isolate::Current()->frame_element_constant_list()-> + at(DataField::decode(value_)); } int index() const { @@ -232,12 +222,14 @@ class FrameElement BASE_EMBEDDED { // Used to construct constant elements. FrameElement(Handle<Object> value, SyncFlag is_synced, TypeInfo info) { + ZoneObjectList* constant_list = + Isolate::Current()->frame_element_constant_list(); value_ = TypeField::encode(CONSTANT) | CopiedField::encode(false) | SyncedField::encode(is_synced != NOT_SYNCED) | TypeInfoField::encode(info.ToInt()) - | DataField::encode(ConstantList()->length()); - ConstantList()->Add(value); + | DataField::encode(constant_list->length()); + constant_list->Add(value); } Type type() const { return TypeField::decode(value_); } |