Commit b48e4a0e authored by Kei Nakashima's avatar Kei Nakashima Committed by Commit Bot

Revert "Added a function |InsertBefore| to NewLinkedHashSet."

This reverts commit 32f57805.

Reason for revert: I mistakenly add a wrong file.

Original change's description:
> Added a function |InsertBefore| to NewLinkedHashSet.
> 
> Implemented |NewLinkedHashSet::InsertBefore| and added test for it.
> 
> Change-Id: I987a8c82c329565125d3a42f674b28d18e91ef38
> Reviewed-on: https://chromium-review.googlesource.com/c/chromium/src/+/2103015
> Commit-Queue: Kei Nakashima <keinakashima@google.com>
> Reviewed-by: Bartek Nowierski <bartekn@chromium.org>
> Reviewed-by: Yuki Shiino <yukishiino@chromium.org>
> Reviewed-by: Kentaro Hara <haraken@chromium.org>
> Cr-Commit-Position: refs/heads/master@{#750825}

TBR=yukishiino@chromium.org,haraken@chromium.org,bartekn@chromium.org,keinakashima@google.com

Change-Id: I568bcc2ce4801c57e0e2b4f88f2be93d5e78d226
No-Presubmit: true
No-Tree-Checks: true
No-Try: true
Reviewed-on: https://chromium-review.googlesource.com/c/chromium/src/+/2106699Reviewed-by: default avatarKentaro Hara <haraken@chromium.org>
Commit-Queue: Kei Nakashima <keinakashima@google.com>
Cr-Commit-Position: refs/heads/master@{#750859}
parent 756f1751
...@@ -1092,15 +1092,10 @@ class NewLinkedHashSet { ...@@ -1092,15 +1092,10 @@ class NewLinkedHashSet {
const_iterator find(ValuePeekInType) const; const_iterator find(ValuePeekInType) const;
bool Contains(ValuePeekInType) const; bool Contains(ValuePeekInType) const;
// TODO(keinakahsima): implement functions related to insert
template <typename IncomingValueType> template <typename IncomingValueType>
AddResult insert(IncomingValueType&&); AddResult insert(IncomingValueType&&);
// If |value| is not a new entry, nothing happens.
// If |before_value| doesn't exist in a linked hash set, append |value|.
template <typename IncomingValueType>
AddResult InsertBefore(ValuePeekInType before_value,
IncomingValueType&& value);
template <typename IncomingValueType> template <typename IncomingValueType>
AddResult AppendOrMoveToLast(IncomingValueType&&); AddResult AppendOrMoveToLast(IncomingValueType&&);
...@@ -1116,17 +1111,11 @@ class NewLinkedHashSet { ...@@ -1116,17 +1111,11 @@ class NewLinkedHashSet {
value_to_index_.clear(); value_to_index_.clear();
list_.clear(); list_.clear();
} }
// TODO(keinakashima): implement Trace // TODO(keinakashima): implement Trace
private: private:
enum class MoveType {
kMoveIfValueExists,
kDontMove,
};
template <typename IncomingValueType> template <typename IncomingValueType>
AddResult InsertOrMoveBefore(const_iterator, IncomingValueType&&, MoveType); AddResult InsertOrMoveBefore(const_iterator, IncomingValueType&&);
HashMap<Value, wtf_size_t> value_to_index_; HashMap<Value, wtf_size_t> value_to_index_;
VectorBackedLinkedList<Value> list_; VectorBackedLinkedList<Value> list_;
...@@ -1185,34 +1174,32 @@ template <typename T> ...@@ -1185,34 +1174,32 @@ template <typename T>
template <typename IncomingValueType> template <typename IncomingValueType>
typename NewLinkedHashSet<T>::AddResult NewLinkedHashSet<T>::insert( typename NewLinkedHashSet<T>::AddResult NewLinkedHashSet<T>::insert(
IncomingValueType&& value) { IncomingValueType&& value) {
return InsertOrMoveBefore(end(), std::forward<IncomingValueType>(value), typename Map::AddResult result = value_to_index_.insert(value, kNotFound);
MoveType::kDontMove);
}
template <typename T> if (result.is_new_entry) {
template <typename IncomingValueType> const_iterator stored_position_iterator =
typename NewLinkedHashSet<T>::AddResult NewLinkedHashSet<T>::InsertBefore( list_.insert(list_.end(), std::forward<IncomingValueType>(value));
ValuePeekInType before_value, result.stored_value->value = stored_position_iterator.GetIndex();
IncomingValueType&& value) { return AddResult(stored_position_iterator.Get(), true);
return InsertOrMoveBefore(find(before_value), }
std::forward<IncomingValueType>(value),
MoveType::kDontMove); wtf_size_t index = result.stored_value->value;
const_iterator stored_position_iterator = list_.MakeConstIterator(index);
return AddResult(stored_position_iterator.Get(), false);
} }
template <typename T> template <typename T>
template <typename IncomingValueType> template <typename IncomingValueType>
typename NewLinkedHashSet<T>::AddResult NewLinkedHashSet<T>::AppendOrMoveToLast( typename NewLinkedHashSet<T>::AddResult NewLinkedHashSet<T>::AppendOrMoveToLast(
IncomingValueType&& value) { IncomingValueType&& value) {
return InsertOrMoveBefore(end(), std::forward<IncomingValueType>(value), return InsertOrMoveBefore(end(), std::forward<IncomingValueType>(value));
MoveType::kMoveIfValueExists);
} }
template <typename T> template <typename T>
template <typename IncomingValueType> template <typename IncomingValueType>
typename NewLinkedHashSet<T>::AddResult typename NewLinkedHashSet<T>::AddResult
NewLinkedHashSet<T>::PrependOrMoveToFirst(IncomingValueType&& value) { NewLinkedHashSet<T>::PrependOrMoveToFirst(IncomingValueType&& value) {
return InsertOrMoveBefore(begin(), std::forward<IncomingValueType>(value), return InsertOrMoveBefore(begin(), std::forward<IncomingValueType>(value));
MoveType::kMoveIfValueExists);
} }
template <typename T> template <typename T>
...@@ -1244,8 +1231,7 @@ template <typename T> ...@@ -1244,8 +1231,7 @@ template <typename T>
template <typename IncomingValueType> template <typename IncomingValueType>
typename NewLinkedHashSet<T>::AddResult NewLinkedHashSet<T>::InsertOrMoveBefore( typename NewLinkedHashSet<T>::AddResult NewLinkedHashSet<T>::InsertOrMoveBefore(
const_iterator position, const_iterator position,
IncomingValueType&& value, IncomingValueType&& value) {
MoveType type) {
typename Map::AddResult result = value_to_index_.insert(value, kNotFound); typename Map::AddResult result = value_to_index_.insert(value, kNotFound);
if (result.is_new_entry) { if (result.is_new_entry) {
...@@ -1257,9 +1243,6 @@ typename NewLinkedHashSet<T>::AddResult NewLinkedHashSet<T>::InsertOrMoveBefore( ...@@ -1257,9 +1243,6 @@ typename NewLinkedHashSet<T>::AddResult NewLinkedHashSet<T>::InsertOrMoveBefore(
const_iterator stored_position_iterator = const_iterator stored_position_iterator =
list_.MakeConstIterator(result.stored_value->value); list_.MakeConstIterator(result.stored_value->value);
if (type == MoveType::kDontMove)
return AddResult(stored_position_iterator.Get(), false);
const_iterator moved_position_iterator = const_iterator moved_position_iterator =
list_.MoveTo(stored_position_iterator, position); list_.MoveTo(stored_position_iterator, position);
return AddResult(moved_position_iterator.Get(), false); return AddResult(moved_position_iterator.Get(), false);
......
...@@ -115,30 +115,6 @@ TEST(NewLinkedHashSetTest, Insert) { ...@@ -115,30 +115,6 @@ TEST(NewLinkedHashSetTest, Insert) {
EXPECT_TRUE(it == set.end()); EXPECT_TRUE(it == set.end());
} }
TEST(NewLinkedHashSetTest, InsertBefore) {
using Set = NewLinkedHashSet<int>;
Set set;
set.InsertBefore(1, 1);
set.InsertBefore(10, 3);
set.InsertBefore(3, 2);
set.InsertBefore(10, 5);
set.InsertBefore(5, 4);
Set::const_iterator it = set.begin();
EXPECT_EQ(*it, 1);
++it;
EXPECT_EQ(*it, 2);
++it;
EXPECT_EQ(*it, 3);
++it;
EXPECT_EQ(*it, 4);
++it;
EXPECT_EQ(*it, 5);
++it;
EXPECT_TRUE(it == set.end());
}
TEST(NewLinkedHashSetTest, AppendOrMoveToLast) { TEST(NewLinkedHashSetTest, AppendOrMoveToLast) {
using Set = NewLinkedHashSet<int>; using Set = NewLinkedHashSet<int>;
Set set; Set set;
......
src @ 2d7b73c3
Subproject commit 2d7b73c3acbd0f41dcab487ae5c97c6feae06ce2
Markdown is supported
0%
or
You are about to add 0 people to the discussion. Proceed with caution.
Finish editing this message first!
Please register or to comment