Index: src/ic/ic.h |
diff --git a/src/ic/ic.h b/src/ic/ic.h |
index e8613436f9698cc22a0a58751cf322f0b8684bc4..199b1f60c8a8871dd4161d3b6e4c84e2dc03403c 100644 |
--- a/src/ic/ic.h |
+++ b/src/ic/ic.h |
@@ -78,7 +78,8 @@ |
} |
// Clear the inline cache to initial state. |
- static void Clear(Isolate* isolate, Address address, Address constant_pool); |
+ static void Clear(Isolate* isolate, Address address, |
+ ConstantPoolArray* constant_pool); |
#ifdef DEBUG |
bool IsLoadStub() const { |
@@ -169,9 +170,9 @@ |
// Access the target code for the given IC address. |
static inline Code* GetTargetAtAddress(Address address, |
- Address constant_pool); |
+ ConstantPoolArray* constant_pool); |
static inline void SetTargetAtAddress(Address address, Code* target, |
- Address constant_pool); |
+ ConstantPoolArray* constant_pool); |
static void OnTypeFeedbackChanged(Isolate* isolate, Address address, |
State old_state, State new_state, |
bool target_remains_ic_stub); |
@@ -255,8 +256,8 @@ |
private: |
inline Code* raw_target() const; |
- inline Address constant_pool() const; |
- inline Address raw_constant_pool() const; |
+ inline ConstantPoolArray* constant_pool() const; |
+ inline ConstantPoolArray* raw_constant_pool() const; |
void FindTargetMaps() { |
if (target_maps_set_) return; |
@@ -276,17 +277,17 @@ |
// Frame pointer for the frame that uses (calls) the IC. |
Address fp_; |
- // All access to the program counter and constant pool of an IC structure is |
- // indirect to make the code GC safe. This feature is crucial since |
+ // All access to the program counter of an IC structure is indirect |
+ // to make the code GC safe. This feature is crucial since |
// GetProperty and SetProperty are called and they in turn might |
// invoke the garbage collector. |
Address* pc_address_; |
+ Isolate* isolate_; |
+ |
// The constant pool of the code which originally called the IC (which might |
// be for the breakpointed copy of the original code). |
- Address* constant_pool_address_; |
- |
- Isolate* isolate_; |
+ Handle<ConstantPoolArray> raw_constant_pool_; |
// The original code target that missed. |
Handle<Code> target_; |
@@ -428,7 +429,7 @@ |
Handle<Code> SimpleFieldLoad(FieldIndex index); |
static void Clear(Isolate* isolate, Address address, Code* target, |
- Address constant_pool); |
+ ConstantPoolArray* constant_pool); |
friend class IC; |
}; |
@@ -485,7 +486,7 @@ |
private: |
static void Clear(Isolate* isolate, Address address, Code* target, |
- Address constant_pool); |
+ ConstantPoolArray* constant_pool); |
friend class IC; |
}; |
@@ -553,7 +554,7 @@ |
inline void set_target(Code* code); |
static void Clear(Isolate* isolate, Address address, Code* target, |
- Address constant_pool); |
+ ConstantPoolArray* constant_pool); |
friend class IC; |
}; |
@@ -634,7 +635,7 @@ |
inline void set_target(Code* code); |
static void Clear(Isolate* isolate, Address address, Code* target, |
- Address constant_pool); |
+ ConstantPoolArray* constant_pool); |
KeyedAccessStoreMode GetStoreMode(Handle<JSObject> receiver, |
Handle<Object> key, Handle<Object> value); |
@@ -685,7 +686,7 @@ |
bool strong); |
static void Clear(Isolate* isolate, Address address, Code* target, |
- Address constant_pool); |
+ ConstantPoolArray* constant_pool); |
Token::Value op_; |
@@ -701,7 +702,8 @@ |
static Handle<Code> GetUninitialized(); |
- static void Clear(Address address, Code* target, Address constant_pool); |
+ static void Clear(Address address, Code* target, |
+ ConstantPoolArray* constant_pool); |
static Handle<Object> DoCompareNilSlow(Isolate* isolate, NilValue nil, |
Handle<Object> object); |