Index: runtime/vm/kernel_to_il.h |
diff --git a/runtime/vm/kernel_to_il.h b/runtime/vm/kernel_to_il.h |
index 298125b4c714fc0bcf62f7b97da1254e45187e0f..676b74c575448927ab39b51ad74142e9c9773752 100644 |
--- a/runtime/vm/kernel_to_il.h |
+++ b/runtime/vm/kernel_to_il.h |
@@ -81,6 +81,35 @@ class Map : public DirectChainedHashMap<RawPointerKeyValueTrait<K, V> > { |
} |
}; |
+template <typename K, typename V> |
+class MallocMap |
+ : public MallocDirectChainedHashMap<RawPointerKeyValueTrait<K, V> > { |
+ public: |
+ typedef typename RawPointerKeyValueTrait<K, V>::Key Key; |
+ typedef typename RawPointerKeyValueTrait<K, V>::Value Value; |
+ typedef typename RawPointerKeyValueTrait<K, V>::Pair Pair; |
+ |
+ inline void Insert(const Key& key, const Value& value) { |
+ Pair pair(key, value); |
+ MallocDirectChainedHashMap<RawPointerKeyValueTrait<K, V> >::Insert(pair); |
+ } |
+ |
+ inline V Lookup(const Key& key) { |
+ Pair* pair = |
+ MallocDirectChainedHashMap<RawPointerKeyValueTrait<K, V> >::Lookup(key); |
+ if (pair == NULL) { |
+ return V(); |
+ } else { |
+ return pair->value; |
+ } |
+ } |
+ |
+ inline Pair* LookupPair(const Key& key) { |
+ return MallocDirectChainedHashMap<RawPointerKeyValueTrait<K, V> >::Lookup( |
+ key); |
+ } |
+}; |
+ |
class BreakableBlock; |
class CatchBlock; |
class FlowGraphBuilder; |