Chromium Code Reviews
chromiumcodereview-hr@appspot.gserviceaccount.com (chromiumcodereview-hr) | Please choose your nickname with Settings | Help | Chromium Project | Gerrit Changes | Sign out
(156)

Side by Side Diff: src/utils.h

Issue 2531593002: Parser: store parameters in a ThreadedList instead of ZoneList. (Closed)
Patch Set: oops Created 4 years ago
Use n/p to move between diff chunks; N/P to move between comments. Draft comments are only viewable by you.
Jump to:
View unified diff | Download patch
« no previous file with comments | « src/parsing/preparser.h ('k') | no next file » | no next file with comments »
Toggle Intra-line Diffs ('i') | Expand Comments ('e') | Collapse Comments ('c') | Show Comments Hide Comments ('s')
OLDNEW
1 // Copyright 2012 the V8 project authors. All rights reserved. 1 // Copyright 2012 the V8 project authors. All rights reserved.
2 // Use of this source code is governed by a BSD-style license that can be 2 // Use of this source code is governed by a BSD-style license that can be
3 // found in the LICENSE file. 3 // found in the LICENSE file.
4 4
5 #ifndef V8_UTILS_H_ 5 #ifndef V8_UTILS_H_
6 #define V8_UTILS_H_ 6 #define V8_UTILS_H_
7 7
8 #include <limits.h> 8 #include <limits.h>
9 #include <stdlib.h> 9 #include <stdlib.h>
10 #include <string.h> 10 #include <string.h>
(...skipping 1622 matching lines...) Expand 10 before | Expand all | Expand 10 after
1633 } 1633 }
1634 1634
1635 private: 1635 private:
1636 explicit Iterator(T** entry) : entry_(entry) {} 1636 explicit Iterator(T** entry) : entry_(entry) {}
1637 1637
1638 T** entry_; 1638 T** entry_;
1639 1639
1640 friend class ThreadedList; 1640 friend class ThreadedList;
1641 }; 1641 };
1642 1642
1643 class ConstIterator final {
1644 public:
1645 ConstIterator& operator++() {
1646 entry_ = (*entry_)->next();
1647 return *this;
1648 }
1649 bool operator!=(const ConstIterator& other) {
1650 return entry_ != other.entry_;
1651 }
1652 const T* operator*() const { return *entry_; }
1653
1654 private:
1655 explicit ConstIterator(T* const* entry) : entry_(entry) {}
1656
1657 T* const* entry_;
1658
1659 friend class ThreadedList;
1660 };
1661
1643 Iterator begin() { return Iterator(&head_); } 1662 Iterator begin() { return Iterator(&head_); }
1644 Iterator end() { return Iterator(tail_); } 1663 Iterator end() { return Iterator(tail_); }
1645 1664
1665 ConstIterator begin() const { return ConstIterator(&head_); }
1666 ConstIterator end() const { return ConstIterator(tail_); }
1667
1646 void Rewind(Iterator reset_point) { 1668 void Rewind(Iterator reset_point) {
1647 tail_ = reset_point.entry_; 1669 tail_ = reset_point.entry_;
1648 *tail_ = nullptr; 1670 *tail_ = nullptr;
1649 } 1671 }
1650 1672
1651 void MoveTail(ThreadedList<T>* parent, Iterator location) { 1673 void MoveTail(ThreadedList<T>* parent, Iterator location) {
1652 if (parent->end() != location) { 1674 if (parent->end() != location) {
1653 DCHECK_NULL(*tail_); 1675 DCHECK_NULL(*tail_);
1654 *tail_ = *location; 1676 *tail_ = *location;
1655 tail_ = parent->tail_; 1677 tail_ = parent->tail_;
(...skipping 18 matching lines...) Expand all
1674 private: 1696 private:
1675 T* head_; 1697 T* head_;
1676 T** tail_; 1698 T** tail_;
1677 DISALLOW_COPY_AND_ASSIGN(ThreadedList); 1699 DISALLOW_COPY_AND_ASSIGN(ThreadedList);
1678 }; 1700 };
1679 1701
1680 } // namespace internal 1702 } // namespace internal
1681 } // namespace v8 1703 } // namespace v8
1682 1704
1683 #endif // V8_UTILS_H_ 1705 #endif // V8_UTILS_H_
OLDNEW
« no previous file with comments | « src/parsing/preparser.h ('k') | no next file » | no next file with comments »

Powered by Google App Engine
This is Rietveld 408576698