Index: runtime/vm/precompiler.h |
diff --git a/runtime/vm/precompiler.h b/runtime/vm/precompiler.h |
index 6f504f18c8c4401fbe6b5f9b3d0483ab111b25d4..e47674cfda4c8ab1d062216decb4e7702d8a421e 100644 |
--- a/runtime/vm/precompiler.h |
+++ b/runtime/vm/precompiler.h |
@@ -87,6 +87,27 @@ class StackMapKeyValueTrait { |
typedef DirectChainedHashMap<StackMapKeyValueTrait> StackMapSet; |
+class CodeSourceMapKeyValueTrait { |
+ public: |
+ // Typedefs needed for the DirectChainedHashMap template. |
+ typedef const CodeSourceMap* Key; |
+ typedef const CodeSourceMap* Value; |
+ typedef const CodeSourceMap* Pair; |
+ |
+ static Key KeyOf(Pair kv) { return kv; } |
+ |
+ static Value ValueOf(Pair kv) { return kv; } |
+ |
+ static inline intptr_t Hashcode(Key key) { return key->Length(); } |
+ |
+ static inline bool IsKeyEqual(Pair pair, Key key) { |
+ return pair->Equals(*key); |
+ } |
+}; |
+ |
+typedef DirectChainedHashMap<CodeSourceMapKeyValueTrait> CodeSourceMapSet; |
+ |
+ |
class ArrayKeyValueTrait { |
public: |
// Typedefs needed for the DirectChainedHashMap template. |
@@ -461,6 +482,7 @@ class Precompiler : public ValueObject { |
void SwitchICCalls(); |
void ShareMegamorphicBuckets(); |
void DedupStackMaps(); |
+ void DedupCodeSourceMaps(); |
void DedupLists(); |
void DedupInstructions(); |
void ResetPrecompilerState(); |