Lines Matching refs:element
20 void PushBack(T* element) {
21 DCHECK(!element->list_node().next());
22 DCHECK(!element->list_node().prev());
25 InsertAfter(element, back_);
27 AddFirstElement(element);
31 void PushFront(T* element) {
32 DCHECK(!element->list_node().next());
33 DCHECK(!element->list_node().prev());
36 InsertBefore(element, front_);
38 AddFirstElement(element);
42 void Remove(T* element) {
43 DCHECK(Contains(element));
44 if (back_ == element) {
45 back_ = element->list_node().prev();
47 if (front_ == element) {
48 front_ = element->list_node().next();
50 T* next = element->list_node().next();
51 T* prev = element->list_node().prev();
54 element->list_node().set_prev(nullptr);
55 element->list_node().set_next(nullptr);
58 bool Contains(T* element) {
61 if (it == element) return true;
73 void AddFirstElement(T* element) {
76 DCHECK(!element->list_node().next());
77 DCHECK(!element->list_node().prev());
78 element->list_node().set_prev(nullptr);
79 element->list_node().set_next(nullptr);
80 front_ = element;
81 back_ = element;
84 void InsertAfter(T* element, T* other) {
86 element->list_node().set_next(other_next);
87 element->list_node().set_prev(other);
88 other->list_node().set_next(element);
90 other_next->list_node().set_prev(element);
92 back_ = element;
95 void InsertBefore(T* element, T* other) {
97 element->list_node().set_next(other);
98 element->list_node().set_prev(other_prev);
99 other->list_node().set_prev(element);
101 other_prev->list_node().set_next(element);
103 front_ = element;