| Index: net/base/priority_queue.h
|
| diff --git a/net/base/priority_queue.h b/net/base/priority_queue.h
|
| index 7b7d97c0e8e31764d737c59239338cd4a3c17d99..ab4be3ef1f29b8d3990122dc2fcdf9151a2f3a7e 100644
|
| --- a/net/base/priority_queue.h
|
| +++ b/net/base/priority_queue.h
|
| @@ -264,6 +264,31 @@ class PriorityQueue : public base::NonThreadSafe {
|
| size_ = 0u;
|
| }
|
|
|
| + // This can be used to iterate through the composite container, in
|
| + // highest-to-lowest, first-inserted-to-last order.
|
| + Pointer NextHighest(const Pointer& previous) {
|
| + Priority priority = previous.priority_;
|
| + typename Pointer::ListIterator list_entry = previous.iterator_;
|
| +
|
| + if (list_entry != lists_[priority].end()) {
|
| + ++list_entry;
|
| + }
|
| +
|
| + while (priority < lists_.size()) {
|
| + if (list_entry == lists_[priority].end()) {
|
| + if (priority == 0) {
|
| + break;
|
| + }
|
| + priority--;
|
| + list_entry = lists_[priority].begin();
|
| + } else {
|
| + return Pointer(priority, list_entry);
|
| + }
|
| + }
|
| +
|
| + return Pointer();
|
| + }
|
| +
|
| // Returns the number of priorities the queue supports.
|
| size_t num_priorities() const {
|
| DCHECK(CalledOnValidThread());
|
|
|