Flutter Engine
The Flutter Engine
Loading...
Searching...
No Matches
Classes | Public Types | Public Member Functions | Static Public Attributes | List of all members
dart::UnorderedHashTable< KeyTraits, kUserPayloadSize, StorageTraits > Class Template Reference

#include <hash_table.h>

Inheritance diagram for dart::UnorderedHashTable< KeyTraits, kUserPayloadSize, StorageTraits >:
dart::HashTable< KeyTraits, kPayloadSize, kMetaDataSize, StorageTraits > dart::HashTableBase dart::ValueObject

Classes

class  Iterator
 

Public Types

typedef HashTable< KeyTraits, kUserPayloadSize, 0, StorageTraits > BaseTable
 
typedef StorageTraits::ArrayPtr ArrayPtr
 
typedef StorageTraits::ArrayHandle ArrayHandle
 
- Public Types inherited from dart::HashTable< KeyTraits, kPayloadSize, kMetaDataSize, StorageTraits >
typedef KeyTraits Traits
 
typedef StorageTraits Storage
 

Public Member Functions

 UnorderedHashTable (ArrayPtr data)
 
 UnorderedHashTable (Zone *zone, ArrayPtr data)
 
 UnorderedHashTable (Object *key, Smi *value, ArrayHandle *data)
 
- Public Member Functions inherited from dart::HashTable< KeyTraits, kPayloadSize, kMetaDataSize, StorageTraits >
 HashTable (Object *key, Smi *index, typename StorageTraits::ArrayHandle *data)
 
 HashTable (Zone *zone, typename StorageTraits::ArrayPtr data)
 
StorageTraits::ArrayHandle & Release ()
 
 ~HashTable ()
 
void Initialize () const
 
template<typename Key >
bool ContainsKey (const Key &key) const
 
template<typename Key >
intptr_t FindKey (const Key &key) const
 
template<typename Key >
bool FindKeyOrDeletedOrUnused (const Key &key, intptr_t *entry) const
 
void InsertKey (intptr_t entry, const Object &key) const
 
bool IsUnused (intptr_t entry) const
 
bool IsOccupied (intptr_t entry) const
 
bool IsDeleted (intptr_t entry) const
 
ObjectPtr GetKey (intptr_t entry) const
 
ObjectPtr GetPayload (intptr_t entry, intptr_t component) const
 
void UpdatePayload (intptr_t entry, intptr_t component, const Object &value) const
 
void DeleteEntry (intptr_t entry) const
 
intptr_t NumEntries () const
 
intptr_t NumUnused () const
 
intptr_t NumOccupied () const
 
intptr_t NumDeleted () const
 
ObjectKeyHandle () const
 
SmiSmiHandle () const
 
intptr_t NumGrows () const
 
intptr_t NumLT5Collisions () const
 
intptr_t NumLT25Collisions () const
 
intptr_t NumGT25Collisions () const
 
intptr_t NumProbes () const
 
void UpdateGrowth () const
 
void UpdateCollisions (intptr_t collisions) const
 
void PrintStats () const
 
void UpdateWeakDeleted () const
 
- Public Member Functions inherited from dart::ValueObject
 ValueObject ()
 
 ~ValueObject ()
 

Static Public Attributes

static constexpr intptr_t kPayloadSize = kUserPayloadSize
 

Additional Inherited Members

- Static Public Member Functions inherited from dart::HashTable< KeyTraits, kPayloadSize, kMetaDataSize, StorageTraits >
static intptr_t ArrayLengthForNumOccupied (intptr_t num_occupied)
 
- Static Public Member Functions inherited from dart::HashTableBase
static const ObjectUnusedMarker ()
 
static const ObjectDeletedMarker ()
 
- Protected Member Functions inherited from dart::HashTable< KeyTraits, kPayloadSize, kMetaDataSize, StorageTraits >
intptr_t KeyIndex (intptr_t entry) const
 
intptr_t PayloadIndex (intptr_t entry, intptr_t component) const
 
ObjectPtr InternalGetKey (intptr_t entry) const
 
void InternalSetKey (intptr_t entry, const Object &key) const
 
intptr_t GetSmiValueAt (intptr_t index) const
 
void SetSmiValueAt (intptr_t index, intptr_t value) const
 
void AdjustSmiValueAt (intptr_t index, intptr_t delta) const
 
- Protected Attributes inherited from dart::HashTable< KeyTraits, kPayloadSize, kMetaDataSize, StorageTraits >
Objectkey_handle_
 
Smismi_handle_
 
StorageTraits::ArrayHandle * data_
 
StorageTraits::ArrayHandle * released_data_
 
- Static Protected Attributes inherited from dart::HashTable< KeyTraits, kPayloadSize, kMetaDataSize, StorageTraits >
static constexpr intptr_t kOccupiedEntriesIndex = 0
 
static constexpr intptr_t kDeletedEntriesIndex = 1
 
static constexpr intptr_t kNumGrowsIndex = 2
 
static constexpr intptr_t kNumLT5LookupsIndex = 3
 
static constexpr intptr_t kNumLT25LookupsIndex = 4
 
static constexpr intptr_t kNumGT25LookupsIndex = 5
 
static constexpr intptr_t kNumProbesIndex = 6
 
static constexpr intptr_t kHeaderSize = kNumProbesIndex + 1
 
static constexpr intptr_t kMetaDataIndex = kHeaderSize
 
static constexpr intptr_t kFirstKeyIndex = kHeaderSize + kMetaDataSize
 
static constexpr intptr_t kEntrySize = 1 + kPayloadSize
 

Detailed Description

template<typename KeyTraits, intptr_t kUserPayloadSize, typename StorageTraits = ArrayStorageTraits>
class dart::UnorderedHashTable< KeyTraits, kUserPayloadSize, StorageTraits >

Definition at line 534 of file hash_table.h.

Member Typedef Documentation

◆ ArrayHandle

template<typename KeyTraits , intptr_t kUserPayloadSize, typename StorageTraits = ArrayStorageTraits>
typedef StorageTraits::ArrayHandle dart::UnorderedHashTable< KeyTraits, kUserPayloadSize, StorageTraits >::ArrayHandle

Definition at line 539 of file hash_table.h.

◆ ArrayPtr

template<typename KeyTraits , intptr_t kUserPayloadSize, typename StorageTraits = ArrayStorageTraits>
typedef StorageTraits::ArrayPtr dart::UnorderedHashTable< KeyTraits, kUserPayloadSize, StorageTraits >::ArrayPtr

Definition at line 538 of file hash_table.h.

◆ BaseTable

template<typename KeyTraits , intptr_t kUserPayloadSize, typename StorageTraits = ArrayStorageTraits>
typedef HashTable<KeyTraits, kUserPayloadSize, 0, StorageTraits> dart::UnorderedHashTable< KeyTraits, kUserPayloadSize, StorageTraits >::BaseTable

Definition at line 537 of file hash_table.h.

Constructor & Destructor Documentation

◆ UnorderedHashTable() [1/3]

template<typename KeyTraits , intptr_t kUserPayloadSize, typename StorageTraits = ArrayStorageTraits>
dart::UnorderedHashTable< KeyTraits, kUserPayloadSize, StorageTraits >::UnorderedHashTable ( ArrayPtr  data)
inlineexplicit

Definition at line 541 of file hash_table.h.

542 : BaseTable(Thread::Current()->zone(), data) {}
static Thread * Current()
Definition thread.h:361
HashTable< KeyTraits, kUserPayloadSize, 0, StorageTraits > BaseTable
Definition hash_table.h:537
static int8_t data[kExtLength]

◆ UnorderedHashTable() [2/3]

template<typename KeyTraits , intptr_t kUserPayloadSize, typename StorageTraits = ArrayStorageTraits>
dart::UnorderedHashTable< KeyTraits, kUserPayloadSize, StorageTraits >::UnorderedHashTable ( Zone zone,
ArrayPtr  data 
)
inline

Definition at line 543 of file hash_table.h.

543: BaseTable(zone, data) {}

◆ UnorderedHashTable() [3/3]

template<typename KeyTraits , intptr_t kUserPayloadSize, typename StorageTraits = ArrayStorageTraits>
dart::UnorderedHashTable< KeyTraits, kUserPayloadSize, StorageTraits >::UnorderedHashTable ( Object key,
Smi value,
ArrayHandle data 
)
inline

Definition at line 544 of file hash_table.h.

545 : BaseTable(key, value, data) {}

Member Data Documentation

◆ kPayloadSize

template<typename KeyTraits , intptr_t kUserPayloadSize, typename StorageTraits = ArrayStorageTraits>
constexpr intptr_t dart::UnorderedHashTable< KeyTraits, kUserPayloadSize, StorageTraits >::kPayloadSize = kUserPayloadSize
staticconstexpr

Definition at line 540 of file hash_table.h.


The documentation for this class was generated from the following file: