V8 Project
v8::internal::SeqOneByteSubStringKey Class Reference

#include <objects-inl.h>

+ Inheritance diagram for v8::internal::SeqOneByteSubStringKey:
+ Collaboration diagram for v8::internal::SeqOneByteSubStringKey:

Public Member Functions

 SeqOneByteSubStringKey (Handle< SeqOneByteString > string, int from, int length)
 
virtual uint32_t Hash () OVERRIDE
 
virtual uint32_t HashForObject (Object *other) OVERRIDE
 
virtual bool IsMatch (Object *string) OVERRIDE
 
virtual Handle< ObjectAsHandle (Isolate *isolate) OVERRIDE
 
- Public Member Functions inherited from v8::internal::HashTableKey
virtual ~HashTableKey ()
 

Private Attributes

Handle< SeqOneByteStringstring_
 
int from_
 
int length_
 
uint32_t hash_field_
 

Detailed Description

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

Constructor & Destructor Documentation

◆ SeqOneByteSubStringKey()

v8::internal::SeqOneByteSubStringKey::SeqOneByteSubStringKey ( Handle< SeqOneByteString string,
int  from,
int  length 
)
inline

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

541  : string_(string), from_(from), length_(length) {
542  DCHECK(string_->IsSeqOneByteString());
543  }
Handle< SeqOneByteString > string_
Definition: objects-inl.h:564
#define DCHECK(condition)
Definition: logging.h:205

References DCHECK, and string_.

Member Function Documentation

◆ AsHandle()

Handle< Object > v8::internal::SeqOneByteSubStringKey::AsHandle ( Isolate isolate)
virtual

Implements v8::internal::HashTableKey.

Definition at line 13689 of file objects.cc.

13689  {
13690  if (hash_field_ == 0) Hash();
13691  return isolate->factory()->NewOneByteInternalizedSubString(
13693 }
virtual uint32_t Hash() OVERRIDE
Definition: objects-inl.h:545

References v8::internal::Isolate::factory(), and v8::internal::Hash().

+ Here is the call graph for this function:

◆ Hash()

virtual uint32_t v8::internal::SeqOneByteSubStringKey::Hash ( )
inlinevirtual

Implements v8::internal::HashTableKey.

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

545  {
546  DCHECK(length_ >= 0);
547  DCHECK(from_ + length_ <= string_->length());
548  const uint8_t* chars = string_->GetChars() + from_;
550  chars, length_, string_->GetHeap()->HashSeed());
552  DCHECK(result != 0); // Ensure that the hash value of 0 is never computed.
553  return result;
554  }
static const int kHashShift
Definition: objects.h:8499
static uint32_t HashSequentialString(const schar *chars, int length, uint32_t seed)
Definition: objects-inl.h:6563

References DCHECK, from_, hash_field_, v8::internal::StringHasher::HashSequentialString(), v8::internal::Name::kHashShift, length_, and string_.

+ Here is the call graph for this function:

◆ HashForObject()

virtual uint32_t v8::internal::SeqOneByteSubStringKey::HashForObject ( Object other)
inlinevirtual

Implements v8::internal::HashTableKey.

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

556  {
557  return String::cast(other)->Hash();
558  }

◆ IsMatch()

bool v8::internal::SeqOneByteSubStringKey::IsMatch ( Object string)
virtual

Implements v8::internal::HashTableKey.

Definition at line 13696 of file objects.cc.

13696  {
13697  Vector<const uint8_t> chars(string_->GetChars() + from_, length_);
13698  return String::cast(string)->IsOneByteEqualTo(chars);
13699 }

Member Data Documentation

◆ from_

int v8::internal::SeqOneByteSubStringKey::from_
private

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

Referenced by Hash().

◆ hash_field_

uint32_t v8::internal::SeqOneByteSubStringKey::hash_field_
private

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

Referenced by Hash().

◆ length_

int v8::internal::SeqOneByteSubStringKey::length_
private

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

Referenced by Hash().

◆ string_

Handle<SeqOneByteString> v8::internal::SeqOneByteSubStringKey::string_
private

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

Referenced by Hash(), and SeqOneByteSubStringKey().


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