v8
V8 is Google’s open source high-performance JavaScript and WebAssembly engine, written in C++.
Loading...
Searching...
No Matches
v8::internal::IdentityMapBase Class Referenceabstract

#include <identity-map.h>

Inheritance diagram for v8::internal::IdentityMapBase:
Collaboration diagram for v8::internal::IdentityMapBase:

Public Member Functions

 IdentityMapBase (const IdentityMapBase &)=delete
 
IdentityMapBaseoperator= (const IdentityMapBase &)=delete
 
bool empty () const
 
int size () const
 
int capacity () const
 
bool is_iterable () const
 

Protected Types

using RawEntry = uintptr_t*
 

Protected Member Functions

 IdentityMapBase (Heap *heap)
 
virtual ~IdentityMapBase ()
 
IdentityMapFindResult< uintptr_t > FindOrInsertEntry (Address key)
 
RawEntry FindEntry (Address key) const
 
RawEntry InsertEntry (Address key)
 
bool DeleteEntry (Address key, uintptr_t *deleted_value)
 
void Clear ()
 
Address KeyAtIndex (int index) const
 
RawEntry EntryAtIndex (int index) const
 
int NextIndex (int index) const
 
void EnableIteration ()
 
void DisableIteration ()
 
virtual uintptr_t * NewPointerArray (size_t length, uintptr_t value)=0
 
virtual void DeletePointerArray (uintptr_t *array, size_t length)=0
 

Private Member Functions

std::pair< int, boolScanKeysFor (Address address, uint32_t hash) const
 
std::pair< int, boolInsertKey (Address address, uint32_t hash)
 
int Lookup (Address key) const
 
std::pair< int, boolLookupOrInsert (Address key)
 
bool DeleteIndex (int index, uintptr_t *deleted_value)
 
void Rehash ()
 
void Resize (int new_capacity)
 
uint32_t Hash (Address address) const
 
bool ShouldGrow () const
 

Private Attributes

base::hash< uintptr_t > hasher_
 
Heapheap_
 
int gc_counter_
 
int size_
 
int capacity_
 
int mask_
 
Addresskeys_
 
StrongRootsEntrystrong_roots_entry_
 
uintptr_t * values_
 
bool is_iterable_
 

Friends

class IdentityMapTester
 

Detailed Description

Definition at line 29 of file identity-map.h.

Member Typedef Documentation

◆ RawEntry

using v8::internal::IdentityMapBase::RawEntry = uintptr_t*
protected

Definition at line 43 of file identity-map.h.

Constructor & Destructor Documentation

◆ IdentityMapBase() [1/2]

v8::internal::IdentityMapBase::IdentityMapBase ( const IdentityMapBase & )
delete

◆ IdentityMapBase() [2/2]

v8::internal::IdentityMapBase::IdentityMapBase ( Heap * heap)
inlineexplicitprotected

Definition at line 45 of file identity-map.h.

◆ ~IdentityMapBase()

v8::internal::IdentityMapBase::~IdentityMapBase ( )
protectedvirtual

Definition at line 18 of file identity-map.cc.

Member Function Documentation

◆ capacity()

int v8::internal::IdentityMapBase::capacity ( ) const
inline

Definition at line 35 of file identity-map.h.

◆ Clear()

void v8::internal::IdentityMapBase::Clear ( )
protected

Definition at line 24 of file identity-map.cc.

Here is the call graph for this function:
Here is the caller graph for this function:

◆ DeleteEntry()

bool v8::internal::IdentityMapBase::DeleteEntry ( Address key,
uintptr_t * deleted_value )
protected

Definition at line 251 of file identity-map.cc.

Here is the call graph for this function:
Here is the caller graph for this function:

◆ DeleteIndex()

bool v8::internal::IdentityMapBase::DeleteIndex ( int index,
uintptr_t * deleted_value )
private

Definition at line 99 of file identity-map.cc.

Here is the call graph for this function:
Here is the caller graph for this function:

◆ DeletePointerArray()

◆ DisableIteration()

void v8::internal::IdentityMapBase::DisableIteration ( )
protected

Definition at line 45 of file identity-map.cc.

Here is the call graph for this function:

◆ empty()

bool v8::internal::IdentityMapBase::empty ( ) const
inline

Definition at line 33 of file identity-map.h.

Here is the caller graph for this function:

◆ EnableIteration()

void v8::internal::IdentityMapBase::EnableIteration ( )
protected

Definition at line 40 of file identity-map.cc.

Here is the call graph for this function:

◆ EntryAtIndex()

IdentityMapBase::RawEntry v8::internal::IdentityMapBase::EntryAtIndex ( int index) const
protected

Definition at line 267 of file identity-map.cc.

Here is the call graph for this function:
Here is the caller graph for this function:

◆ FindEntry()

IdentityMapBase::RawEntry v8::internal::IdentityMapBase::FindEntry ( Address key) const
protected

Definition at line 207 of file identity-map.cc.

Here is the call graph for this function:
Here is the caller graph for this function:

◆ FindOrInsertEntry()

IdentityMapFindResult< uintptr_t > v8::internal::IdentityMapBase::FindOrInsertEntry ( Address key)
protected

Definition at line 192 of file identity-map.cc.

Here is the call graph for this function:
Here is the caller graph for this function:

◆ Hash()

uint32_t v8::internal::IdentityMapBase::Hash ( Address address) const
private

Definition at line 183 of file identity-map.cc.

Here is the caller graph for this function:

◆ InsertEntry()

IdentityMapBase::RawEntry v8::internal::IdentityMapBase::InsertEntry ( Address key)
protected

Definition at line 218 of file identity-map.cc.

Here is the call graph for this function:
Here is the caller graph for this function:

◆ InsertKey()

std::pair< int, bool > v8::internal::IdentityMapBase::InsertKey ( Address address,
uint32_t hash )
private

Definition at line 70 of file identity-map.cc.

Here is the call graph for this function:
Here is the caller graph for this function:

◆ is_iterable()

bool v8::internal::IdentityMapBase::is_iterable ( ) const
inline

Definition at line 36 of file identity-map.h.

Here is the caller graph for this function:

◆ KeyAtIndex()

Address v8::internal::IdentityMapBase::KeyAtIndex ( int index) const
protected

Definition at line 259 of file identity-map.cc.

Here is the call graph for this function:
Here is the caller graph for this function:

◆ Lookup()

int v8::internal::IdentityMapBase::Lookup ( Address key) const
private

Definition at line 140 of file identity-map.cc.

Here is the call graph for this function:
Here is the caller graph for this function:

◆ LookupOrInsert()

std::pair< int, bool > v8::internal::IdentityMapBase::LookupOrInsert ( Address key)
private

Definition at line 154 of file identity-map.cc.

Here is the call graph for this function:
Here is the caller graph for this function:

◆ NewPointerArray()

◆ NextIndex()

int v8::internal::IdentityMapBase::NextIndex ( int index) const
protected

Definition at line 275 of file identity-map.cc.

Here is the call graph for this function:
Here is the caller graph for this function:

◆ operator=()

IdentityMapBase & v8::internal::IdentityMapBase::operator= ( const IdentityMapBase & )
delete

◆ Rehash()

void v8::internal::IdentityMapBase::Rehash ( )
private

Definition at line 288 of file identity-map.cc.

Here is the call graph for this function:
Here is the caller graph for this function:

◆ Resize()

void v8::internal::IdentityMapBase::Resize ( int new_capacity)
private

Definition at line 322 of file identity-map.cc.

Here is the call graph for this function:
Here is the caller graph for this function:

◆ ScanKeysFor()

std::pair< int, bool > v8::internal::IdentityMapBase::ScanKeysFor ( Address address,
uint32_t hash ) const
private

Definition at line 50 of file identity-map.cc.

Here is the caller graph for this function:

◆ ShouldGrow()

bool v8::internal::IdentityMapBase::ShouldGrow ( ) const
private

Definition at line 65 of file identity-map.cc.

Here is the caller graph for this function:

◆ size()

int v8::internal::IdentityMapBase::size ( ) const
inline

Definition at line 34 of file identity-map.h.

Here is the caller graph for this function:

Friends And Related Symbol Documentation

◆ IdentityMapTester

friend class IdentityMapTester
friend

Definition at line 41 of file identity-map.h.

Member Data Documentation

◆ capacity_

int v8::internal::IdentityMapBase::capacity_
private

Definition at line 94 of file identity-map.h.

◆ gc_counter_

int v8::internal::IdentityMapBase::gc_counter_
private

Definition at line 92 of file identity-map.h.

◆ hasher_

base::hash<uintptr_t> v8::internal::IdentityMapBase::hasher_
private

Definition at line 90 of file identity-map.h.

◆ heap_

Heap* v8::internal::IdentityMapBase::heap_
private

Definition at line 91 of file identity-map.h.

◆ is_iterable_

bool v8::internal::IdentityMapBase::is_iterable_
private

Definition at line 99 of file identity-map.h.

◆ keys_

Address* v8::internal::IdentityMapBase::keys_
private

Definition at line 96 of file identity-map.h.

◆ mask_

int v8::internal::IdentityMapBase::mask_
private

Definition at line 95 of file identity-map.h.

◆ size_

int v8::internal::IdentityMapBase::size_
private

Definition at line 93 of file identity-map.h.

◆ strong_roots_entry_

StrongRootsEntry* v8::internal::IdentityMapBase::strong_roots_entry_
private

Definition at line 97 of file identity-map.h.

◆ values_

uintptr_t* v8::internal::IdentityMapBase::values_
private

Definition at line 98 of file identity-map.h.


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