Index: src/deoptimizer.h |
diff --git a/src/deoptimizer.h b/src/deoptimizer.h |
index 931082171f9a0d8cfdf09c99e4c20f21a27a78c2..706d1f0523eb026b96fc0f0011aaf6bafcdea170 100644 |
--- a/src/deoptimizer.h |
+++ b/src/deoptimizer.h |
@@ -60,17 +60,18 @@ class FrameDescription; |
class TranslationIterator; |
class DeoptimizedFrameInfo; |
+template<typename T> |
class HeapNumberMaterializationDescriptor BASE_EMBEDDED { |
public: |
- HeapNumberMaterializationDescriptor(Address slot_address, double val) |
- : slot_address_(slot_address), val_(val) { } |
+ HeapNumberMaterializationDescriptor(T destination, double value) |
+ : destination_(destination), value_(value) { } |
- Address slot_address() const { return slot_address_; } |
- double value() const { return val_; } |
+ T destination() const { return destination_; } |
+ double value() const { return value_; } |
private: |
- Address slot_address_; |
- double val_; |
+ T destination_; |
+ double value_; |
}; |
@@ -431,9 +432,10 @@ class Deoptimizer : public Malloced { |
// Deferred values to be materialized. |
List<Object*> deferred_objects_tagged_values_; |
- List<double> deferred_objects_double_values_; |
+ List<HeapNumberMaterializationDescriptor<int> > |
+ deferred_objects_double_values_; |
List<ObjectMaterializationDescriptor> deferred_objects_; |
- List<HeapNumberMaterializationDescriptor> deferred_heap_numbers_; |
+ List<HeapNumberMaterializationDescriptor<Address> > deferred_heap_numbers_; |
// Output frame information. Only used during heap object materialization. |
List<Handle<JSFunction> > jsframe_functions_; |