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_); } |