| Index: cc/base/list_container_helper.cc
|
| diff --git a/cc/base/list_container.cc b/cc/base/list_container_helper.cc
|
| similarity index 68%
|
| rename from cc/base/list_container.cc
|
| rename to cc/base/list_container_helper.cc
|
| index 48d2bf58ce63c78796216a26b9143dd90ab85fe0..65be43adb3888183392f7930b1c69e67a0f7a9dd 100644
|
| --- a/cc/base/list_container.cc
|
| +++ b/cc/base/list_container_helper.cc
|
| @@ -2,7 +2,7 @@
|
| // Use of this source code is governed by a BSD-style license that can be
|
| // found in the LICENSE file.
|
|
|
| -#include "cc/base/list_container.h"
|
| +#include "cc/base/list_container_helper.h"
|
|
|
| #include <algorithm>
|
| #include <vector>
|
| @@ -15,13 +15,13 @@ const size_t kDefaultNumElementTypesToReserve = 32;
|
|
|
| namespace cc {
|
|
|
| -// ListContainerCharAllocator
|
| +// CharAllocator
|
| ////////////////////////////////////////////////////
|
| // This class deals only with char* and void*. It does allocation and passing
|
| // out raw pointers, as well as memory deallocation when being destroyed.
|
| -class ListContainerBase::ListContainerCharAllocator {
|
| +class ListContainerHelper::CharAllocator {
|
| public:
|
| - // ListContainerCharAllocator::InnerList
|
| + // CharAllocator::InnerList
|
| /////////////////////////////////////////////
|
| // This class holds the raw memory chunk, as well as information about its
|
| // size and availability.
|
| @@ -41,7 +41,7 @@ class ListContainerBase::ListContainerCharAllocator {
|
|
|
| void Erase(char* position) {
|
| // Confident that destructor is called by caller of this function. Since
|
| - // ListContainerCharAllocator does not handle construction after
|
| + // CharAllocator does not handle construction after
|
| // allocation, it doesn't handle desctrution before deallocation.
|
| DCHECK_LE(position, LastElement());
|
| DCHECK_GE(position, Begin());
|
| @@ -99,7 +99,7 @@ class ListContainerBase::ListContainerCharAllocator {
|
| DISALLOW_COPY_AND_ASSIGN(InnerList);
|
| };
|
|
|
| - explicit ListContainerCharAllocator(size_t element_size)
|
| + explicit CharAllocator(size_t element_size)
|
| : element_size_(element_size),
|
| size_(0),
|
| last_list_index_(0),
|
| @@ -108,7 +108,7 @@ class ListContainerBase::ListContainerCharAllocator {
|
| last_list_ = storage_[last_list_index_];
|
| }
|
|
|
| - ListContainerCharAllocator(size_t element_size, size_t element_count)
|
| + CharAllocator(size_t element_size, size_t element_count)
|
| : element_size_(element_size),
|
| size_(0),
|
| last_list_index_(0),
|
| @@ -118,7 +118,7 @@ class ListContainerBase::ListContainerCharAllocator {
|
| last_list_ = storage_[last_list_index_];
|
| }
|
|
|
| - ~ListContainerCharAllocator() {}
|
| + ~CharAllocator() {}
|
|
|
| void* Allocate() {
|
| if (last_list_->IsFull()) {
|
| @@ -171,7 +171,7 @@ class ListContainerBase::ListContainerCharAllocator {
|
| --size_;
|
| }
|
|
|
| - void Erase(PositionInListContainerCharAllocator* position) {
|
| + void Erase(PositionInCharAllocator* position) {
|
| DCHECK_EQ(this, position->ptr_to_container);
|
|
|
| // Update |position| to point to the element after the erased element.
|
| @@ -185,7 +185,7 @@ class ListContainerBase::ListContainerCharAllocator {
|
| --size_;
|
| }
|
|
|
| - void InsertBefore(ListContainerBase::Iterator* position, size_t count) {
|
| + void InsertBefore(ListContainerHelper::Iterator* position, size_t count) {
|
| if (!count)
|
| return;
|
|
|
| @@ -258,46 +258,40 @@ class ListContainerBase::ListContainerCharAllocator {
|
| // This is equivalent to |storage_[last_list_index_]|.
|
| InnerList* last_list_;
|
|
|
| - DISALLOW_COPY_AND_ASSIGN(ListContainerCharAllocator);
|
| + DISALLOW_COPY_AND_ASSIGN(CharAllocator);
|
| };
|
|
|
| -// PositionInListContainerCharAllocator
|
| +// PositionInCharAllocator
|
| //////////////////////////////////////////////////////
|
| -ListContainerBase::PositionInListContainerCharAllocator::
|
| - PositionInListContainerCharAllocator(
|
| - const ListContainerBase::PositionInListContainerCharAllocator& other)
|
| +ListContainerHelper::PositionInCharAllocator::PositionInCharAllocator(
|
| + const ListContainerHelper::PositionInCharAllocator& other)
|
| : ptr_to_container(other.ptr_to_container),
|
| vector_index(other.vector_index),
|
| - item_iterator(other.item_iterator) {
|
| -}
|
| + item_iterator(other.item_iterator) {}
|
|
|
| -ListContainerBase::PositionInListContainerCharAllocator::
|
| - PositionInListContainerCharAllocator(
|
| - ListContainerBase::ListContainerCharAllocator* container,
|
| - size_t vector_ind,
|
| - char* item_iter)
|
| +ListContainerHelper::PositionInCharAllocator::PositionInCharAllocator(
|
| + ListContainerHelper::CharAllocator* container,
|
| + size_t vector_ind,
|
| + char* item_iter)
|
| : ptr_to_container(container),
|
| vector_index(vector_ind),
|
| - item_iterator(item_iter) {
|
| -}
|
| + item_iterator(item_iter) {}
|
|
|
| -bool ListContainerBase::PositionInListContainerCharAllocator::operator==(
|
| - const ListContainerBase::PositionInListContainerCharAllocator& other)
|
| - const {
|
| +bool ListContainerHelper::PositionInCharAllocator::operator==(
|
| + const ListContainerHelper::PositionInCharAllocator& other) const {
|
| DCHECK_EQ(ptr_to_container, other.ptr_to_container);
|
| return vector_index == other.vector_index &&
|
| item_iterator == other.item_iterator;
|
| }
|
|
|
| -bool ListContainerBase::PositionInListContainerCharAllocator::operator!=(
|
| - const ListContainerBase::PositionInListContainerCharAllocator& other)
|
| - const {
|
| +bool ListContainerHelper::PositionInCharAllocator::operator!=(
|
| + const ListContainerHelper::PositionInCharAllocator& other) const {
|
| return !(*this == other);
|
| }
|
|
|
| -ListContainerBase::PositionInListContainerCharAllocator
|
| -ListContainerBase::PositionInListContainerCharAllocator::Increment() {
|
| - ListContainerCharAllocator::InnerList* list =
|
| +ListContainerHelper::PositionInCharAllocator
|
| +ListContainerHelper::PositionInCharAllocator::Increment() {
|
| + CharAllocator::InnerList* list =
|
| ptr_to_container->InnerListById(vector_index);
|
| if (item_iterator == list->LastElement()) {
|
| ++vector_index;
|
| @@ -316,9 +310,9 @@ ListContainerBase::PositionInListContainerCharAllocator::Increment() {
|
| return *this;
|
| }
|
|
|
| -ListContainerBase::PositionInListContainerCharAllocator
|
| -ListContainerBase::PositionInListContainerCharAllocator::ReverseIncrement() {
|
| - ListContainerCharAllocator::InnerList* list =
|
| +ListContainerHelper::PositionInCharAllocator
|
| +ListContainerHelper::PositionInCharAllocator::ReverseIncrement() {
|
| + CharAllocator::InnerList* list =
|
| ptr_to_container->InnerListById(vector_index);
|
| if (item_iterator == list->Begin()) {
|
| --vector_index;
|
| @@ -342,37 +336,34 @@ ListContainerBase::PositionInListContainerCharAllocator::ReverseIncrement() {
|
| return *this;
|
| }
|
|
|
| -// ListContainerBase
|
| +// ListContainerHelper
|
| ////////////////////////////////////////////
|
| -ListContainerBase::ListContainerBase(size_t max_size_for_derived_class)
|
| - : data_(new ListContainerCharAllocator(max_size_for_derived_class)) {
|
| -}
|
| +ListContainerHelper::ListContainerHelper(size_t max_size_for_derived_class)
|
| + : data_(new CharAllocator(max_size_for_derived_class)) {}
|
|
|
| -ListContainerBase::ListContainerBase(size_t max_size_for_derived_class,
|
| - size_t num_of_elements_to_reserve_for)
|
| - : data_(new ListContainerCharAllocator(max_size_for_derived_class,
|
| - num_of_elements_to_reserve_for)) {
|
| -}
|
| +ListContainerHelper::ListContainerHelper(size_t max_size_for_derived_class,
|
| + size_t num_of_elements_to_reserve_for)
|
| + : data_(new CharAllocator(max_size_for_derived_class,
|
| + num_of_elements_to_reserve_for)) {}
|
|
|
| -ListContainerBase::~ListContainerBase() {
|
| -}
|
| +ListContainerHelper::~ListContainerHelper() {}
|
|
|
| -void ListContainerBase::RemoveLast() {
|
| +void ListContainerHelper::RemoveLast() {
|
| data_->RemoveLast();
|
| }
|
|
|
| -void ListContainerBase::EraseAndInvalidateAllPointers(
|
| - ListContainerBase::Iterator* position) {
|
| +void ListContainerHelper::EraseAndInvalidateAllPointers(
|
| + ListContainerHelper::Iterator* position) {
|
| data_->Erase(position);
|
| }
|
|
|
| -void ListContainerBase::InsertBeforeAndInvalidateAllPointers(
|
| - ListContainerBase::Iterator* position,
|
| +void ListContainerHelper::InsertBeforeAndInvalidateAllPointers(
|
| + ListContainerHelper::Iterator* position,
|
| size_t count) {
|
| data_->InsertBefore(position, count);
|
| }
|
|
|
| -ListContainerBase::ConstReverseIterator ListContainerBase::crbegin() const {
|
| +ListContainerHelper::ConstReverseIterator ListContainerHelper::crbegin() const {
|
| if (data_->IsEmpty())
|
| return crend();
|
|
|
| @@ -381,12 +372,12 @@ ListContainerBase::ConstReverseIterator ListContainerBase::crbegin() const {
|
| data_->InnerListById(id)->LastElement(), 0);
|
| }
|
|
|
| -ListContainerBase::ConstReverseIterator ListContainerBase::crend() const {
|
| +ListContainerHelper::ConstReverseIterator ListContainerHelper::crend() const {
|
| return ConstReverseIterator(data_.get(), static_cast<size_t>(-1), NULL,
|
| size());
|
| }
|
|
|
| -ListContainerBase::ReverseIterator ListContainerBase::rbegin() {
|
| +ListContainerHelper::ReverseIterator ListContainerHelper::rbegin() {
|
| if (data_->IsEmpty())
|
| return rend();
|
|
|
| @@ -395,11 +386,11 @@ ListContainerBase::ReverseIterator ListContainerBase::rbegin() {
|
| data_->InnerListById(id)->LastElement(), 0);
|
| }
|
|
|
| -ListContainerBase::ReverseIterator ListContainerBase::rend() {
|
| +ListContainerHelper::ReverseIterator ListContainerHelper::rend() {
|
| return ReverseIterator(data_.get(), static_cast<size_t>(-1), NULL, size());
|
| }
|
|
|
| -ListContainerBase::ConstIterator ListContainerBase::cbegin() const {
|
| +ListContainerHelper::ConstIterator ListContainerHelper::cbegin() const {
|
| if (data_->IsEmpty())
|
| return cend();
|
|
|
| @@ -407,7 +398,7 @@ ListContainerBase::ConstIterator ListContainerBase::cbegin() const {
|
| return ConstIterator(data_.get(), id, data_->InnerListById(id)->Begin(), 0);
|
| }
|
|
|
| -ListContainerBase::ConstIterator ListContainerBase::cend() const {
|
| +ListContainerHelper::ConstIterator ListContainerHelper::cend() const {
|
| if (data_->IsEmpty())
|
| return ConstIterator(data_.get(), 0, NULL, size());
|
|
|
| @@ -415,7 +406,7 @@ ListContainerBase::ConstIterator ListContainerBase::cend() const {
|
| return ConstIterator(data_.get(), id, NULL, size());
|
| }
|
|
|
| -ListContainerBase::Iterator ListContainerBase::begin() {
|
| +ListContainerHelper::Iterator ListContainerHelper::begin() {
|
| if (data_->IsEmpty())
|
| return end();
|
|
|
| @@ -423,7 +414,7 @@ ListContainerBase::Iterator ListContainerBase::begin() {
|
| return Iterator(data_.get(), id, data_->InnerListById(id)->Begin(), 0);
|
| }
|
|
|
| -ListContainerBase::Iterator ListContainerBase::end() {
|
| +ListContainerHelper::Iterator ListContainerHelper::end() {
|
| if (data_->IsEmpty())
|
| return Iterator(data_.get(), 0, NULL, size());
|
|
|
| @@ -431,7 +422,7 @@ ListContainerBase::Iterator ListContainerBase::end() {
|
| return Iterator(data_.get(), id, NULL, size());
|
| }
|
|
|
| -ListContainerBase::ConstIterator ListContainerBase::IteratorAt(
|
| +ListContainerHelper::ConstIterator ListContainerHelper::IteratorAt(
|
| size_t index) const {
|
| DCHECK_LT(index, size());
|
| size_t original_index = index;
|
| @@ -447,7 +438,7 @@ ListContainerBase::ConstIterator ListContainerBase::IteratorAt(
|
| original_index);
|
| }
|
|
|
| -ListContainerBase::Iterator ListContainerBase::IteratorAt(size_t index) {
|
| +ListContainerHelper::Iterator ListContainerHelper::IteratorAt(size_t index) {
|
| DCHECK_LT(index, size());
|
| size_t original_index = index;
|
| size_t list_index;
|
| @@ -462,114 +453,102 @@ ListContainerBase::Iterator ListContainerBase::IteratorAt(size_t index) {
|
| original_index);
|
| }
|
|
|
| -void* ListContainerBase::Allocate(size_t size_of_actual_element_in_bytes) {
|
| +void* ListContainerHelper::Allocate(size_t size_of_actual_element_in_bytes) {
|
| DCHECK_LE(size_of_actual_element_in_bytes, data_->element_size());
|
| return data_->Allocate();
|
| }
|
|
|
| -size_t ListContainerBase::size() const {
|
| +size_t ListContainerHelper::size() const {
|
| return data_->size();
|
| }
|
|
|
| -bool ListContainerBase::empty() const {
|
| +bool ListContainerHelper::empty() const {
|
| return data_->IsEmpty();
|
| }
|
|
|
| -size_t ListContainerBase::MaxSizeForDerivedClass() const {
|
| +size_t ListContainerHelper::MaxSizeForDerivedClass() const {
|
| return data_->element_size();
|
| }
|
|
|
| -size_t ListContainerBase::GetCapacityInBytes() const {
|
| +size_t ListContainerHelper::GetCapacityInBytes() const {
|
| return data_->Capacity() * data_->element_size();
|
| }
|
|
|
| -void ListContainerBase::clear() {
|
| +void ListContainerHelper::clear() {
|
| data_->Clear();
|
| }
|
|
|
| -size_t ListContainerBase::AvailableSizeWithoutAnotherAllocationForTesting()
|
| +size_t ListContainerHelper::AvailableSizeWithoutAnotherAllocationForTesting()
|
| const {
|
| return data_->NumAvailableElementsInLastList();
|
| }
|
|
|
| -// ListContainerBase::Iterator
|
| +// ListContainerHelper::Iterator
|
| /////////////////////////////////////////////////
|
| -ListContainerBase::Iterator::Iterator(ListContainerCharAllocator* container,
|
| - size_t vector_ind,
|
| - char* item_iter,
|
| - size_t index)
|
| - : PositionInListContainerCharAllocator(container, vector_ind, item_iter),
|
| - index_(index) {
|
| -}
|
| +ListContainerHelper::Iterator::Iterator(CharAllocator* container,
|
| + size_t vector_ind,
|
| + char* item_iter,
|
| + size_t index)
|
| + : PositionInCharAllocator(container, vector_ind, item_iter),
|
| + index_(index) {}
|
|
|
| -ListContainerBase::Iterator::~Iterator() {
|
| -}
|
| +ListContainerHelper::Iterator::~Iterator() {}
|
|
|
| -size_t ListContainerBase::Iterator::index() const {
|
| +size_t ListContainerHelper::Iterator::index() const {
|
| return index_;
|
| }
|
|
|
| -// ListContainerBase::ConstIterator
|
| +// ListContainerHelper::ConstIterator
|
| /////////////////////////////////////////////////
|
| -ListContainerBase::ConstIterator::ConstIterator(
|
| - const ListContainerBase::Iterator& other)
|
| - : PositionInListContainerCharAllocator(other), index_(other.index()) {
|
| -}
|
| +ListContainerHelper::ConstIterator::ConstIterator(
|
| + const ListContainerHelper::Iterator& other)
|
| + : PositionInCharAllocator(other), index_(other.index()) {}
|
|
|
| -ListContainerBase::ConstIterator::ConstIterator(
|
| - ListContainerCharAllocator* container,
|
| - size_t vector_ind,
|
| - char* item_iter,
|
| - size_t index)
|
| - : PositionInListContainerCharAllocator(container, vector_ind, item_iter),
|
| - index_(index) {
|
| -}
|
| +ListContainerHelper::ConstIterator::ConstIterator(CharAllocator* container,
|
| + size_t vector_ind,
|
| + char* item_iter,
|
| + size_t index)
|
| + : PositionInCharAllocator(container, vector_ind, item_iter),
|
| + index_(index) {}
|
|
|
| -ListContainerBase::ConstIterator::~ConstIterator() {
|
| -}
|
| +ListContainerHelper::ConstIterator::~ConstIterator() {}
|
|
|
| -size_t ListContainerBase::ConstIterator::index() const {
|
| +size_t ListContainerHelper::ConstIterator::index() const {
|
| return index_;
|
| }
|
|
|
| -// ListContainerBase::ReverseIterator
|
| +// ListContainerHelper::ReverseIterator
|
| /////////////////////////////////////////////////
|
| -ListContainerBase::ReverseIterator::ReverseIterator(
|
| - ListContainerCharAllocator* container,
|
| - size_t vector_ind,
|
| - char* item_iter,
|
| - size_t index)
|
| - : PositionInListContainerCharAllocator(container, vector_ind, item_iter),
|
| - index_(index) {
|
| -}
|
| +ListContainerHelper::ReverseIterator::ReverseIterator(CharAllocator* container,
|
| + size_t vector_ind,
|
| + char* item_iter,
|
| + size_t index)
|
| + : PositionInCharAllocator(container, vector_ind, item_iter),
|
| + index_(index) {}
|
|
|
| -ListContainerBase::ReverseIterator::~ReverseIterator() {
|
| -}
|
| +ListContainerHelper::ReverseIterator::~ReverseIterator() {}
|
|
|
| -size_t ListContainerBase::ReverseIterator::index() const {
|
| +size_t ListContainerHelper::ReverseIterator::index() const {
|
| return index_;
|
| }
|
|
|
| -// ListContainerBase::ConstReverseIterator
|
| +// ListContainerHelper::ConstReverseIterator
|
| /////////////////////////////////////////////////
|
| -ListContainerBase::ConstReverseIterator::ConstReverseIterator(
|
| - const ListContainerBase::ReverseIterator& other)
|
| - : PositionInListContainerCharAllocator(other), index_(other.index()) {
|
| -}
|
| +ListContainerHelper::ConstReverseIterator::ConstReverseIterator(
|
| + const ListContainerHelper::ReverseIterator& other)
|
| + : PositionInCharAllocator(other), index_(other.index()) {}
|
|
|
| -ListContainerBase::ConstReverseIterator::ConstReverseIterator(
|
| - ListContainerCharAllocator* container,
|
| +ListContainerHelper::ConstReverseIterator::ConstReverseIterator(
|
| + CharAllocator* container,
|
| size_t vector_ind,
|
| char* item_iter,
|
| size_t index)
|
| - : PositionInListContainerCharAllocator(container, vector_ind, item_iter),
|
| - index_(index) {
|
| -}
|
| + : PositionInCharAllocator(container, vector_ind, item_iter),
|
| + index_(index) {}
|
|
|
| -ListContainerBase::ConstReverseIterator::~ConstReverseIterator() {
|
| -}
|
| +ListContainerHelper::ConstReverseIterator::~ConstReverseIterator() {}
|
|
|
| -size_t ListContainerBase::ConstReverseIterator::index() const {
|
| +size_t ListContainerHelper::ConstReverseIterator::index() const {
|
| return index_;
|
| }
|
|
|
|
|