V8 Project
v8::internal::SequenceCollector< T, growth_factor, max_growth > Class Template Reference

#include <utils.h>

+ Inheritance diagram for v8::internal::SequenceCollector< T, growth_factor, max_growth >:
+ Collaboration diagram for v8::internal::SequenceCollector< T, growth_factor, max_growth >:

Public Member Functions

 SequenceCollector (int initial_capacity)
 
virtual ~SequenceCollector ()
 
void StartSequence ()
 
Vector< TEndSequence ()
 
void DropSequence ()
 
virtual void Reset ()
 
- Public Member Functions inherited from v8::internal::Collector< T, 2, 1 *MB >
 Collector (int initial_capacity=kMinCapacity)
 
virtual ~Collector ()
 
void Add (T value)
 
Vector< TAddBlock (int size, T initial_value)
 
Vector< TAddBlock (Vector< const T > source)
 
void WriteTo (Vector< T > destination)
 
Vector< TToVector ()
 
int size ()
 

Private Member Functions

virtual void NewChunk (int new_capacity)
 

Private Attributes

int sequence_start_
 

Static Private Attributes

static const int kNoSequence = -1
 

Additional Inherited Members

- Protected Member Functions inherited from v8::internal::Collector< T, 2, 1 *MB >
void Grow (int min_capacity)
 
- Protected Attributes inherited from v8::internal::Collector< T, 2, 1 *MB >
List< Vector< T > > chunks_
 
Vector< Tcurrent_chunk_
 
int index_
 
int size_
 
- Static Protected Attributes inherited from v8::internal::Collector< T, 2, 1 *MB >
static const int kMinCapacity
 

Detailed Description

template<typename T, int growth_factor = 2, int max_growth = 1 * MB>
class v8::internal::SequenceCollector< T, growth_factor, max_growth >

Definition at line 620 of file utils.h.

Constructor & Destructor Documentation

◆ SequenceCollector()

template<typename T , int growth_factor = 2, int max_growth = 1 * MB>
v8::internal::SequenceCollector< T, growth_factor, max_growth >::SequenceCollector ( int  initial_capacity)
inlineexplicit

Definition at line 622 of file utils.h.

623  : Collector<T, growth_factor, max_growth>(initial_capacity),
static const int kNoSequence
Definition: utils.h:656

◆ ~SequenceCollector()

template<typename T , int growth_factor = 2, int max_growth = 1 * MB>
virtual v8::internal::SequenceCollector< T, growth_factor, max_growth >::~SequenceCollector ( )
inlinevirtual

Definition at line 626 of file utils.h.

626 {}

Member Function Documentation

◆ DropSequence()

template<typename T , int growth_factor = 2, int max_growth = 1 * MB>
void v8::internal::SequenceCollector< T, growth_factor, max_growth >::DropSequence ( )
inline

◆ EndSequence()

template<typename T , int growth_factor = 2, int max_growth = 1 * MB>
Vector<T> v8::internal::SequenceCollector< T, growth_factor, max_growth >::EndSequence ( )
inline

Definition at line 633 of file utils.h.

633  {
635  int sequence_start = sequence_start_;
637  if (sequence_start == this->index_) return Vector<T>();
638  return this->current_chunk_.SubVector(sequence_start, this->index_);
639  }

References v8::internal::Collector< T, 2, 1 *MB >::current_chunk_, DCHECK, v8::internal::Collector< T, 2, 1 *MB >::index_, v8::internal::SequenceCollector< T, growth_factor, max_growth >::kNoSequence, and v8::internal::SequenceCollector< T, growth_factor, max_growth >::sequence_start_.

Referenced by v8::internal::DuplicateFinder::BackupKey().

+ Here is the caller graph for this function:

◆ NewChunk()

template<typename T , int growth_factor = 2, int max_growth = 1 * MB>
virtual void v8::internal::SequenceCollector< T, growth_factor, max_growth >::NewChunk ( int  new_capacity)
inlineprivatevirtual

Reimplemented from v8::internal::Collector< T, 2, 1 *MB >.

Definition at line 660 of file utils.h.

660  {
661  if (sequence_start_ == kNoSequence) {
662  // Fall back on default behavior if no sequence has been started.
664  return;
665  }
666  int sequence_length = this->index_ - sequence_start_;
667  Vector<T> new_chunk = Vector<T>::New(sequence_length + new_capacity);
668  DCHECK(sequence_length < new_chunk.length());
669  for (int i = 0; i < sequence_length; i++) {
670  new_chunk[i] = this->current_chunk_[sequence_start_ + i];
671  }
672  if (sequence_start_ > 0) {
673  this->chunks_.Add(this->current_chunk_.SubVector(0, sequence_start_));
674  } else {
675  this->current_chunk_.Dispose();
676  }
677  this->current_chunk_ = new_chunk;
678  this->index_ = sequence_length;
679  sequence_start_ = 0;
680  }
List< Vector< T > > chunks_
Definition: utils.h:565
virtual void NewChunk(int new_capacity)
Definition: utils.h:597
static Vector< T > New(int length)
Definition: vector.h:27

References v8::internal::Collector< T, 2, 1 *MB >::chunks_, v8::internal::Collector< T, 2, 1 *MB >::current_chunk_, DCHECK, v8::internal::Collector< T, 2, 1 *MB >::index_, v8::internal::SequenceCollector< T, growth_factor, max_growth >::kNoSequence, v8::internal::Vector< T >::length(), v8::internal::Vector< T >::New(), v8::internal::Collector< T, growth_factor, max_growth >::NewChunk(), and v8::internal::SequenceCollector< T, growth_factor, max_growth >::sequence_start_.

+ Here is the call graph for this function:

◆ Reset()

template<typename T , int growth_factor = 2, int max_growth = 1 * MB>
virtual void v8::internal::SequenceCollector< T, growth_factor, max_growth >::Reset ( )
inlinevirtual

Reimplemented from v8::internal::Collector< T, 2, 1 *MB >.

Definition at line 650 of file utils.h.

References v8::internal::SequenceCollector< T, growth_factor, max_growth >::kNoSequence, v8::internal::Collector< T, growth_factor, max_growth >::Reset(), and v8::internal::SequenceCollector< T, growth_factor, max_growth >::sequence_start_.

+ Here is the call graph for this function:

◆ StartSequence()

template<typename T , int growth_factor = 2, int max_growth = 1 * MB>
void v8::internal::SequenceCollector< T, growth_factor, max_growth >::StartSequence ( )
inline

Definition at line 628 of file utils.h.

628  {
630  sequence_start_ = this->index_;
631  }

References DCHECK, v8::internal::Collector< T, 2, 1 *MB >::index_, v8::internal::SequenceCollector< T, growth_factor, max_growth >::kNoSequence, and v8::internal::SequenceCollector< T, growth_factor, max_growth >::sequence_start_.

Referenced by v8::internal::DuplicateFinder::BackupKey().

+ Here is the caller graph for this function:

Member Data Documentation

◆ kNoSequence

◆ sequence_start_


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