| Index: src/frame-element.h
|
| ===================================================================
|
| --- src/frame-element.h (revision 7267)
|
| +++ src/frame-element.h (working copy)
|
| @@ -106,22 +106,11 @@
|
| 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());
|
| + return !DataField::is_valid(
|
| + Isolate::Current()->frame_element_constant_list()->length());
|
| }
|
|
|
| - // Clear the constants indirection table.
|
| - static void ClearConstantList() {
|
| - ConstantList()->Clear();
|
| - }
|
| -
|
| bool is_synced() const { return SyncedField::decode(value_); }
|
|
|
| void set_sync() {
|
| @@ -164,7 +153,8 @@
|
|
|
| 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 @@
|
|
|
| // 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_); }
|
|
|