Index: runtime/vm/megamorphic_cache_table.h |
diff --git a/runtime/vm/megamorphic_cache_table.h b/runtime/vm/megamorphic_cache_table.h |
index eafb35b12b6ed45d8f656c62668d1518adad1f10..aaf3adc44eeb39bf658009d05c263bf595bfca10 100644 |
--- a/runtime/vm/megamorphic_cache_table.h |
+++ b/runtime/vm/megamorphic_cache_table.h |
@@ -11,6 +11,7 @@ namespace dart { |
class Array; |
class Function; |
+class Isolate; |
class ObjectPointerVisitor; |
class RawArray; |
class RawFunction; |
@@ -21,32 +22,25 @@ class String; |
class MegamorphicCacheTable { |
public: |
- MegamorphicCacheTable(); |
- ~MegamorphicCacheTable(); |
+ explicit MegamorphicCacheTable(Isolate* isolate) : isolate_(isolate) {} |
+ ~MegamorphicCacheTable() {} |
- RawFunction* miss_handler() const { return miss_handler_function_; } |
+ RawFunction* miss_handler() const; |
void InitMissHandler(); |
RawMegamorphicCache* Lookup(const String& name, const Array& descriptor); |
- void VisitObjectPointers(ObjectPointerVisitor* visitor); |
- |
void PrintSizes(); |
private: |
- struct Entry { |
- RawString* name; |
- RawArray* descriptor; |
- RawMegamorphicCache* cache; |
+ enum { |
+ kEntryNameOffset = 0, |
+ kEntryDescriptorOffset, |
+ kEntryCacheOffset, |
+ kEntrySize |
}; |
- static const int kCapacityIncrement = 128; |
- |
- RawFunction* miss_handler_function_; |
- RawCode* miss_handler_code_; |
- intptr_t capacity_; |
- intptr_t length_; |
- Entry* table_; |
+ Isolate* isolate_; |
DISALLOW_COPY_AND_ASSIGN(MegamorphicCacheTable); |
}; |