Chromium Code Reviews
chromiumcodereview-hr@appspot.gserviceaccount.com (chromiumcodereview-hr) | Please choose your nickname with Settings | Help | Chromium Project | Gerrit Changes | Sign out
(308)

Side by Side Diff: runtime/vm/hash_map.h

Issue 2411823003: VM support for running Kernel binaries. (Closed)
Patch Set: Address comments Created 4 years, 2 months ago
Use n/p to move between diff chunks; N/P to move between comments. Draft comments are only viewable by you.
Jump to:
View unified diff | Download patch
« no previous file with comments | « runtime/vm/flow_graph_inliner.cc ('k') | runtime/vm/intermediate_language.h » ('j') | no next file with comments »
Toggle Intra-line Diffs ('i') | Expand Comments ('e') | Collapse Comments ('c') | Show Comments Hide Comments ('s')
OLDNEW
1 // Copyright (c) 2012, the Dart project authors. Please see the AUTHORS file 1 // Copyright (c) 2012, the Dart project authors. Please see the AUTHORS file
2 // for details. All rights reserved. Use of this source code is governed by a 2 // for details. All rights reserved. Use of this source code is governed by a
3 // BSD-style license that can be found in the LICENSE file. 3 // BSD-style license that can be found in the LICENSE file.
4 4
5 #ifndef VM_HASH_MAP_H_ 5 #ifndef VM_HASH_MAP_H_
6 #define VM_HASH_MAP_H_ 6 #define VM_HASH_MAP_H_
7 7
8 #include "vm/growable_array.h" // For Malloc, EmptyBase 8 #include "vm/growable_array.h" // For Malloc, EmptyBase
9 #include "vm/zone.h" 9 #include "vm/zone.h"
10 10
(...skipping 346 matching lines...) Expand 10 before | Expand all | Expand 10 after
357 typedef T Value; 357 typedef T Value;
358 typedef intptr_t Key; 358 typedef intptr_t Key;
359 typedef T Pair; 359 typedef T Pair;
360 360
361 static intptr_t KeyOf(Pair kv) { return kv.first(); } 361 static intptr_t KeyOf(Pair kv) { return kv.first(); }
362 static T ValueOf(Pair kv) { return kv; } 362 static T ValueOf(Pair kv) { return kv; }
363 static inline intptr_t Hashcode(Key key) { return key; } 363 static inline intptr_t Hashcode(Key key) { return key; }
364 static inline bool IsKeyEqual(Pair kv, Key key) { return kv.first() == key; } 364 static inline bool IsKeyEqual(Pair kv, Key key) { return kv.first() == key; }
365 }; 365 };
366 366
367
368 template<typename K, typename V>
369 class RawPointerKeyValueTrait {
370 public:
371 typedef K* Key;
372 typedef V Value;
373
374 struct Pair {
375 Key key;
376 Value value;
377 Pair() : key(NULL), value() {}
378 Pair(const Key key, const Value& value) : key(key), value(value) {}
379 Pair(const Pair& other) : key(other.key), value(other.value) {}
380 };
381
382 static Key KeyOf(Pair kv) { return kv.key; }
383 static Value ValueOf(Pair kv) { return kv.value; }
384 static intptr_t Hashcode(Key key) { return reinterpret_cast<intptr_t>(key); }
385 static bool IsKeyEqual(Pair kv, Key key) { return kv.key == key; }
386 };
387
367 } // namespace dart 388 } // namespace dart
368 389
369 #endif // VM_HASH_MAP_H_ 390 #endif // VM_HASH_MAP_H_
OLDNEW
« no previous file with comments | « runtime/vm/flow_graph_inliner.cc ('k') | runtime/vm/intermediate_language.h » ('j') | no next file with comments »

Powered by Google App Engine
This is Rietveld 408576698