v8  3.25.30(node0.11.13)
V8 is Google's open source JavaScript engine
 All Data Structures Namespaces Files Functions Variables Typedefs Enumerations Enumerator Friends Macros Pages
HashTable< Shape, Key > Class Template Reference

#include <objects.h>

Inheritance diagram for HashTable< Shape, Key >:
Collaboration diagram for HashTable< Shape, Key >:

Public Member Functions

uint32_t Hash (Key key)
 
uint32_t HashForObject (Key key, Object *object)
 
int NumberOfElements ()
 
int NumberOfDeletedElements ()
 
int Capacity ()
 
void ElementAdded ()
 
void ElementRemoved ()
 
void ElementsRemoved (int n)
 
ObjectKeyAt (int entry)
 
bool IsKey (Object *k)
 
void IteratePrefix (ObjectVisitor *visitor)
 
void IterateElements (ObjectVisitor *visitor)
 
 INLINE (static uint32_t GetProbeOffset(uint32_t n))
 
int FindEntry (Key key)
 
int FindEntry (Isolate *isolate, Key key)
 
void Rehash (Key key)
 
- Public Member Functions inherited from FixedArray
Objectget (int index)
 
void set (int index, Object *value)
 
bool is_the_hole (int index)
 
void set (int index, Smi *value)
 
void set (int index, Object *value, WriteBarrierMode mode)
 
void set_undefined (int index)
 
void set_null (int index)
 
void set_the_hole (int index)
 
Object ** GetFirstElementAddress ()
 
bool ContainsOnlySmisOrHoles ()
 
Object ** data_start ()
 
void Shrink (int length)
 
MUST_USE_RESULT MaybeObject * Copy ()
 
MUST_USE_RESULT MaybeObject * CopySize (int new_length, PretenureFlag pretenure=NOT_TENURED)
 
MUST_USE_RESULT MaybeObject * AddKeysFromJSArray (JSArray *array)
 
MUST_USE_RESULT MaybeObject * UnionOfKeys (FixedArray *other)
 
void CopyTo (int pos, FixedArray *dest, int dest_pos, int len)
 
Object ** RawFieldOfElementAt (int index)
 
void SwapPairs (FixedArray *numbers, int i, int j)
 
void SortPairs (FixedArray *numbers, uint32_t len)
 
- Public Member Functions inherited from FixedArrayBase
int length ()
 
void set_length (int value)
 
- Public Member Functions inherited from HeapObject
Mapmap ()
 
void set_map (Map *value)
 
void set_map_no_write_barrier (Map *value)
 
MapWord map_word ()
 
void set_map_word (MapWord map_word)
 
HeapGetHeap ()
 
IsolateGetIsolate ()
 
Address address ()
 
void Iterate (ObjectVisitor *v)
 
void IterateBody (InstanceType type, int object_size, ObjectVisitor *v)
 
int Size ()
 
int SizeFromMap (Map *map)
 
WriteBarrierMode GetWriteBarrierMode (const DisallowHeapAllocation &promise)
 
void HeapObjectShortPrint (StringStream *accumulator)
 
 STATIC_CHECK (kMapOffset==Internals::kHeapObjectMapOffset)
 
- Public Member Functions inherited from Object
bool IsObject ()
 
bool IsFixedArrayBase ()
 
bool IsExternal ()
 
bool IsAccessorInfo ()
 
bool IsStruct ()
 
 INLINE (bool IsSpecObject())
 
 INLINE (bool IsSpecFunction())
 
bool IsCallable ()
 
 INLINE (bool IsUndefined())
 
 INLINE (bool IsNull())
 
 INLINE (bool IsTheHole())
 
 INLINE (bool IsUninitialized())
 
 INLINE (bool IsTrue())
 
 INLINE (bool IsFalse())
 
bool IsArgumentsMarker ()
 
bool NonFailureIsHeapObject ()
 
bool IsFiller ()
 
double Number ()
 
bool IsNaN ()
 
bool ToInt32 (int32_t *value)
 
bool ToUint32 (uint32_t *value)
 
Representation OptimalRepresentation (ValueType type=OPTIMAL_REPRESENTATION)
 
bool FitsRepresentation (Representation representation)
 
MaybeObject * AllocateNewStorageFor (Heap *heap, Representation representation)
 
bool HasValidElements ()
 
bool HasSpecificClassOf (String *name)
 
MUST_USE_RESULT MaybeObject * ToObject (Isolate *isolate)
 
bool BooleanValue ()
 
MUST_USE_RESULT MaybeObject * ToObject (Context *native_context)
 
MUST_USE_RESULT MaybeObject * ToSmi ()
 
void Lookup (Name *name, LookupResult *result)
 
MUST_USE_RESULT MaybeObject * GetProperty (Name *key)
 
MUST_USE_RESULT MaybeObject * GetProperty (Name *key, PropertyAttributes *attributes)
 
MUST_USE_RESULT MaybeObject * GetPropertyWithReceiver (Object *receiver, Name *key, PropertyAttributes *attributes)
 
MUST_USE_RESULT MaybeObject * GetProperty (Object *receiver, LookupResult *result, Name *key, PropertyAttributes *attributes)
 
MUST_USE_RESULT MaybeObject * GetPropertyWithDefinedGetter (Object *receiver, JSReceiver *getter)
 
ObjectGetPrototype (Isolate *isolate)
 
MapGetMarkerMap (Isolate *isolate)
 
ObjectGetHash ()
 
bool SameValue (Object *other)
 
bool ToArrayIndex (uint32_t *index)
 
bool IsStringObjectWithCharacterAt (uint32_t index)
 
void VerifyApiCallResultType ()
 
void ShortPrint (FILE *out=stdout)
 
void ShortPrint (StringStream *accumulator)
 

Static Public Member Functions

static MUST_USE_RESULT
MaybeObject * 
Allocate (Heap *heap, int at_least_space_for, MinimumCapacity capacity_option=USE_DEFAULT_MINIMUM_CAPACITY, PretenureFlag pretenure=NOT_TENURED)
 
static int ComputeCapacity (int at_least_space_for)
 
static HashTablecast (Object *obj)
 
- Static Public Member Functions inherited from FixedArray
static int SizeFor (int length)
 
static int OffsetOfElementAt (int index)
 
static FixedArraycast (Object *obj)
 
- Static Public Member Functions inherited from FixedArrayBase
static FixedArrayBasecast (Object *object)
 
- Static Public Member Functions inherited from HeapObject
static HeapObjectFromAddress (Address address)
 
static Object ** RawField (HeapObject *obj, int offset)
 
static void UpdateMapCodeCache (Handle< HeapObject > object, Handle< Name > name, Handle< Code > code)
 
static HeapObjectcast (Object *obj)
 
- Static Public Member Functions inherited from Object
static MUST_USE_RESULT Handle
< Object
ToSmi (Isolate *isolate, Handle< Object > object)
 
static Handle< ObjectGetPropertyWithReceiver (Handle< Object > object, Handle< Object > receiver, Handle< Name > name, PropertyAttributes *attributes)
 
static Handle< ObjectGetProperty (Handle< Object > object, Handle< Name > key)
 
static Handle< ObjectGetProperty (Handle< Object > object, Handle< Object > receiver, LookupResult *result, Handle< Name > key, PropertyAttributes *attributes)
 
static MUST_USE_RESULT
MaybeObject * 
GetPropertyOrFail (Handle< Object > object, Handle< Object > receiver, LookupResult *result, Handle< Name > key, PropertyAttributes *attributes)
 
static Handle< ObjectGetElement (Isolate *isolate, Handle< Object > object, uint32_t index)
 
static Handle< ObjectGetElementNoExceptionThrown (Isolate *isolate, Handle< Object > object, uint32_t index)
 
static Handle< ObjectGetElementWithReceiver (Isolate *isolate, Handle< Object > object, Handle< Object > receiver, uint32_t index)
 
static Handle< ObjectGetOrCreateHash (Handle< Object > object, Isolate *isolate)
 
static Objectcast (Object *value)
 

Static Public Attributes

static const int kNumberOfElementsIndex = 0
 
static const int kNumberOfDeletedElementsIndex = 1
 
static const int kCapacityIndex = 2
 
static const int kPrefixStartIndex = 3
 
static const int kElementsStartIndex
 
static const int kEntrySize = Shape::kEntrySize
 
static const int kElementsStartOffset
 
static const int kCapacityOffset
 
static const int kNotFound = -1
 
static const int kMaxCapacity
 
- Static Public Attributes inherited from FixedArray
static const int kMaxSize = 128 * MB * kPointerSize
 
static const int kMaxLength = (kMaxSize - kHeaderSize) / kPointerSize
 
- Static Public Attributes inherited from FixedArrayBase
static const int kLengthOffset = HeapObject::kHeaderSize
 
static const int kHeaderSize = kLengthOffset + kPointerSize
 
- Static Public Attributes inherited from HeapObject
static const int kMapOffset = Object::kHeaderSize
 
static const int kHeaderSize = kMapOffset + kPointerSize
 
- Static Public Attributes inherited from Object
static const int kHeaderSize = 0
 

Protected Member Functions

uint32_t FindInsertionEntry (uint32_t hash)
 
void SetNumberOfElements (int nof)
 
void SetNumberOfDeletedElements (int nod)
 
void SetCapacity (int capacity)
 
uint32_t EntryForProbe (Key key, Object *k, int probe, uint32_t expected)
 
void Swap (uint32_t entry1, uint32_t entry2, WriteBarrierMode mode)
 
MUST_USE_RESULT MaybeObject * Rehash (HashTable *new_table, Key key)
 
MUST_USE_RESULT MaybeObject * Shrink (Key key)
 
MUST_USE_RESULT MaybeObject * EnsureCapacity (int n, Key key, PretenureFlag pretenure=NOT_TENURED)
 
- Protected Member Functions inherited from HeapObject
void IteratePointers (ObjectVisitor *v, int start, int end)
 
void IteratePointer (ObjectVisitor *v, int offset)
 
void IterateNextCodeLink (ObjectVisitor *v, int offset)
 

Static Protected Member Functions

static int EntryToIndex (int entry)
 
static uint32_t GetProbe (uint32_t hash, uint32_t number, uint32_t size)
 
static uint32_t FirstProbe (uint32_t hash, uint32_t size)
 
static uint32_t NextProbe (uint32_t last, uint32_t number, uint32_t size)
 
- Static Protected Member Functions inherited from FixedArray
static void NoWriteBarrierSet (FixedArray *array, int index, Object *value)
 
static void NoIncrementalWriteBarrierSet (FixedArray *array, int index, Object *value)
 

Friends

class ObjectHashSet
 
class ObjectHashTable
 

Additional Inherited Members

- Public Types inherited from Object
enum  ValueType { OPTIMAL_REPRESENTATION, FORCE_TAGGED }
 

Detailed Description

template<typename Shape, typename Key>
class v8::internal::HashTable< Shape, Key >

Definition at line 3634 of file objects.h.

Member Function Documentation

HashTable< Shape, Key > * cast ( Object obj)
inlinestatic
int ComputeCapacity ( int  at_least_space_for)
static

Definition at line 2783 of file objects-inl.h.

References v8::internal::RoundUpToPowerOf2().

void ElementRemoved ( )
inline

Definition at line 3676 of file objects.h.

Referenced by Dictionary< Shape, Key >::DeleteProperty().

void ElementsRemoved ( int  n)
inline

Definition at line 3680 of file objects.h.

Referenced by DictionaryElementsAccessor::SetLengthWithoutNormalize().

uint32_t EntryForProbe ( Key  key,
Object k,
int  probe,
uint32_t  expected 
)
protected

Definition at line 13972 of file objects.cc.

References HashTable< Shape, Key >::HashForObject().

static int EntryToIndex ( int  entry)
inlinestaticprotected
int FindEntry ( Isolate isolate,
Key  key 
)

Definition at line 2801 of file objects-inl.h.

References Isolate::heap(), and DescriptorArray::kNotFound.

static uint32_t FirstProbe ( uint32_t  hash,
uint32_t  size 
)
inlinestaticprotected

Definition at line 3785 of file objects.h.

static uint32_t GetProbe ( uint32_t  hash,
uint32_t  number,
uint32_t  size 
)
inlinestaticprotected

Definition at line 3780 of file objects.h.

uint32_t Hash ( Key  key)
inline

Definition at line 3637 of file objects.h.

uint32_t HashForObject ( Key  key,
Object object 
)
inline
INLINE ( static uint32_t   GetProbeOffsetuint32_t n)
inline

Definition at line 3713 of file objects.h.

bool IsKey ( Object k)
inline

Definition at line 3701 of file objects.h.

Referenced by JSObject::PrepareSlowElementsForSort().

void IterateElements ( ObjectVisitor *  visitor)
void IteratePrefix ( ObjectVisitor *  visitor)

Definition at line 13859 of file objects.cc.

References HeapObject::IteratePointers().

static uint32_t NextProbe ( uint32_t  last,
uint32_t  number,
uint32_t  size 
)
inlinestaticprotected

Definition at line 3789 of file objects.h.

int NumberOfDeletedElements ( )
inline

Definition at line 3661 of file objects.h.

void Rehash ( Key  key)

Definition at line 14007 of file objects.cc.

References HeapObject::GetWriteBarrierMode().

Referenced by TEST().

void SetCapacity ( int  capacity)
inlineprotected

Definition at line 3769 of file objects.h.

Referenced by HashTable< Shape, Key >::Allocate().

void SetNumberOfDeletedElements ( int  nod)
inlineprotected
void SetNumberOfElements ( int  nof)
inlineprotected
void Swap ( uint32_t  entry1,
uint32_t  entry2,
WriteBarrierMode  mode 
)
protected

Definition at line 13988 of file objects.cc.

References FixedArray::set().

Friends And Related Function Documentation

friend class ObjectHashSet
friend

Definition at line 3746 of file objects.h.

friend class ObjectHashTable
friend

Definition at line 3747 of file objects.h.

Field Documentation

const int kCapacityIndex = 2
static

Definition at line 3719 of file objects.h.

const int kCapacityOffset
static
Initial value:

Definition at line 3726 of file objects.h.

const int kElementsStartIndex
static
Initial value:
=
kPrefixStartIndex + Shape::kPrefixSize

Definition at line 3721 of file objects.h.

const int kElementsStartOffset
static
Initial value:

Definition at line 3724 of file objects.h.

const int kEntrySize = Shape::kEntrySize
static

Definition at line 3723 of file objects.h.

const int kMaxCapacity
static
Initial value:

Definition at line 3735 of file objects.h.

Referenced by HashTable< Shape, Key >::Allocate().

const int kNotFound = -1
static

Definition at line 3730 of file objects.h.

const int kNumberOfDeletedElementsIndex = 1
static

Definition at line 3718 of file objects.h.

const int kNumberOfElementsIndex = 0
static

Definition at line 3717 of file objects.h.

const int kPrefixStartIndex = 3
static

Definition at line 3720 of file objects.h.


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