| OLD | NEW |
| 1 // Copyright (c) 2014, the Dart project authors. Please see the AUTHORS file | 1 // Copyright (c) 2014, 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_TABLE_H_ | 5 #ifndef VM_HASH_TABLE_H_ |
| 6 #define VM_HASH_TABLE_H_ | 6 #define VM_HASH_TABLE_H_ |
| 7 | 7 |
| 8 // Temporarily used when sorting the indices in EnumIndexHashTable. | 8 // Temporarily used when sorting the indices in EnumIndexHashTable. |
| 9 // TODO(koda): Remove these dependencies before using in production. | 9 // TODO(koda): Remove these dependencies before using in production. |
| 10 #include <map> | 10 #include <map> |
| (...skipping 365 matching lines...) Expand 10 before | Expand all | Expand 10 after Loading... |
| 376 } | 376 } |
| 377 | 377 |
| 378 // No extra book-keeping needed for DeleteEntry. | 378 // No extra book-keeping needed for DeleteEntry. |
| 379 }; | 379 }; |
| 380 | 380 |
| 381 | 381 |
| 382 class HashTables : public AllStatic { | 382 class HashTables : public AllStatic { |
| 383 public: | 383 public: |
| 384 // Allocates and initializes a table. | 384 // Allocates and initializes a table. |
| 385 template<typename Table> | 385 template<typename Table> |
| 386 static RawArray* New(intptr_t initial_capacity) { | 386 static RawArray* New(intptr_t initial_capacity, |
| 387 Heap::Space space = Heap::kNew) { |
| 387 Table table(Array::Handle(Array::New( | 388 Table table(Array::Handle(Array::New( |
| 388 Table::ArrayLengthForNumOccupied(initial_capacity)))); | 389 Table::ArrayLengthForNumOccupied(initial_capacity), space))); |
| 389 table.Initialize(); | 390 table.Initialize(); |
| 390 return table.Release(); | 391 return table.Release(); |
| 391 } | 392 } |
| 392 | 393 |
| 393 // Clears 'to' and inserts all elements from 'from', in iteration order. | 394 // Clears 'to' and inserts all elements from 'from', in iteration order. |
| 394 // The tables must have the same user payload size. | 395 // The tables must have the same user payload size. |
| 395 template<typename From, typename To> | 396 template<typename From, typename To> |
| 396 static void Copy(const From& from, const To& to) { | 397 static void Copy(const From& from, const To& to) { |
| 397 COMPILE_ASSERT(From::kPayloadSize == To::kPayloadSize); | 398 COMPILE_ASSERT(From::kPayloadSize == To::kPayloadSize); |
| 398 to.Initialize(); | 399 to.Initialize(); |
| (...skipping 149 matching lines...) Expand 10 before | Expand all | Expand 10 after Loading... |
| 548 template<typename KeyTraits> | 549 template<typename KeyTraits> |
| 549 class EnumIndexHashSet : public HashSet<EnumIndexHashTable<KeyTraits, 0> > { | 550 class EnumIndexHashSet : public HashSet<EnumIndexHashTable<KeyTraits, 0> > { |
| 550 public: | 551 public: |
| 551 typedef HashSet<EnumIndexHashTable<KeyTraits, 0> > BaseSet; | 552 typedef HashSet<EnumIndexHashTable<KeyTraits, 0> > BaseSet; |
| 552 explicit EnumIndexHashSet(Array& data) : BaseSet(data) {} | 553 explicit EnumIndexHashSet(Array& data) : BaseSet(data) {} |
| 553 }; | 554 }; |
| 554 | 555 |
| 555 } // namespace dart | 556 } // namespace dart |
| 556 | 557 |
| 557 #endif // VM_HASH_TABLE_H_ | 558 #endif // VM_HASH_TABLE_H_ |
| OLD | NEW |