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..c47d4d89f6e9a89da1b20d7913c339d54d67850f 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; |
@@ -19,36 +20,24 @@ class RawMegamorphicCache; |
class RawString; |
class String; |
-class MegamorphicCacheTable { |
+class MegamorphicCacheTable : public AllStatic { |
public: |
- MegamorphicCacheTable(); |
- ~MegamorphicCacheTable(); |
+ static RawFunction* miss_handler(Isolate* isolate); |
+ static void InitMissHandler(Isolate* isolate); |
- RawFunction* miss_handler() const { return miss_handler_function_; } |
- void InitMissHandler(); |
+ static RawMegamorphicCache* Lookup(Isolate* isolate, |
+ const String& name, |
+ const Array& descriptor); |
- RawMegamorphicCache* Lookup(const String& name, const Array& descriptor); |
- |
- void VisitObjectPointers(ObjectPointerVisitor* visitor); |
- |
- void PrintSizes(); |
+ static void PrintSizes(Isolate* isolate); |
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_; |
- |
- DISALLOW_COPY_AND_ASSIGN(MegamorphicCacheTable); |
}; |
} // namespace dart |