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

Unified Diff: net/spdy/http2_write_scheduler.h

Issue 2287783002: Remove stl_util's STLValueDeleter. (Closed)
Patch Set: rebase Created 4 years, 4 months 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 side-by-side diff with in-line comments
Download patch
« no previous file with comments | « components/sync/syncable/on_disk_directory_backing_store.cc ('k') | no next file » | no next file with comments »
Expand Comments ('e') | Collapse Comments ('c') | Show Comments Hide Comments ('s')
Index: net/spdy/http2_write_scheduler.h
diff --git a/net/spdy/http2_write_scheduler.h b/net/spdy/http2_write_scheduler.h
index af27698148f373d5084823f1c6ee01672e64287a..d8bd3ea1f717c48cc5a7e51db1bf789c32dc61eb 100644
--- a/net/spdy/http2_write_scheduler.h
+++ b/net/spdy/http2_write_scheduler.h
@@ -22,7 +22,7 @@
#include "base/containers/linked_list.h"
#include "base/logging.h"
#include "base/macros.h"
-#include "base/stl_util.h"
+#include "base/memory/ptr_util.h"
#include "net/spdy/spdy_bug_tracker.h"
#include "net/spdy/spdy_protocol.h"
#include "net/spdy/write_scheduler.h"
@@ -81,7 +81,6 @@ class Http2PriorityWriteScheduler : public WriteScheduler<StreamIdType> {
struct StreamInfo;
using StreamInfoVector = std::vector<StreamInfo*>;
- using StreamInfoMap = std::unordered_map<StreamIdType, StreamInfo*>;
struct StreamInfo : public base::LinkNode<StreamInfo> {
// ID for this stream.
@@ -167,8 +166,8 @@ class Http2PriorityWriteScheduler : public WriteScheduler<StreamIdType> {
// Pointee owned by all_stream_infos_.
StreamInfo* root_stream_info_;
// Maps from stream IDs to StreamInfo objects.
- StreamInfoMap all_stream_infos_;
- base::STLValueDeleter<StreamInfoMap> all_stream_infos_deleter_;
+ std::unordered_map<StreamIdType, std::unique_ptr<StreamInfo>>
+ all_stream_infos_;
// Queue containing all ready streams, ordered with streams of higher
// priority before streams of lower priority, and, among streams of equal
// priority, streams with lower ordinal before those with higher
@@ -188,15 +187,15 @@ class Http2PriorityWriteScheduler : public WriteScheduler<StreamIdType> {
};
template <typename StreamIdType>
-Http2PriorityWriteScheduler<StreamIdType>::Http2PriorityWriteScheduler()
- : all_stream_infos_deleter_(&all_stream_infos_) {
- root_stream_info_ = new StreamInfo();
- root_stream_info_->id = kHttp2RootStreamId;
- root_stream_info_->weight = kHttp2DefaultStreamWeight;
- root_stream_info_->parent = nullptr;
- root_stream_info_->priority = 1.0;
- root_stream_info_->ready = false;
- all_stream_infos_[kHttp2RootStreamId] = root_stream_info_;
+Http2PriorityWriteScheduler<StreamIdType>::Http2PriorityWriteScheduler() {
+ std::unique_ptr<StreamInfo> root_stream_info = base::MakeUnique<StreamInfo>();
+ root_stream_info_ = root_stream_info.get();
+ root_stream_info->id = kHttp2RootStreamId;
+ root_stream_info->weight = kHttp2DefaultStreamWeight;
+ root_stream_info->parent = nullptr;
+ root_stream_info->priority = 1.0;
+ root_stream_info->ready = false;
+ all_stream_infos_[kHttp2RootStreamId] = std::move(root_stream_info);
}
template <typename StreamIdType>
@@ -229,26 +228,27 @@ void Http2PriorityWriteScheduler<StreamIdType>::RegisterStream(
parent = root_stream_info_;
}
- StreamInfo* new_stream_info = new StreamInfo;
- new_stream_info->id = stream_id;
- new_stream_info->weight = precedence.weight();
- new_stream_info->parent = parent;
- all_stream_infos_[stream_id] = new_stream_info;
+ std::unique_ptr<StreamInfo> new_stream_info = base::MakeUnique<StreamInfo>();
+ StreamInfo* new_stream_info_ptr = new_stream_info.get();
+ new_stream_info_ptr->id = stream_id;
+ new_stream_info_ptr->weight = precedence.weight();
+ new_stream_info_ptr->parent = parent;
+ all_stream_infos_[stream_id] = std::move(new_stream_info);
if (precedence.is_exclusive()) {
// Move the parent's current children below the new stream.
using std::swap;
- swap(new_stream_info->children, parent->children);
- new_stream_info->total_child_weights = parent->total_child_weights;
+ swap(new_stream_info_ptr->children, parent->children);
+ new_stream_info_ptr->total_child_weights = parent->total_child_weights;
// Update each child's parent.
- for (StreamInfo* child : new_stream_info->children) {
- child->parent = new_stream_info;
+ for (StreamInfo* child : new_stream_info_ptr->children) {
+ child->parent = new_stream_info_ptr;
}
// Clear parent's old child data.
DCHECK(parent->children.empty());
parent->total_child_weights = 0;
}
// Add new stream to parent.
- parent->children.push_back(new_stream_info);
+ parent->children.push_back(new_stream_info_ptr);
parent->total_child_weights += precedence.weight();
// Update all priorities under parent, since addition of a stream affects
@@ -256,7 +256,7 @@ void Http2PriorityWriteScheduler<StreamIdType>::RegisterStream(
UpdatePrioritiesUnder(parent);
// Stream starts with ready == false, so no need to schedule it yet.
- DCHECK(!new_stream_info->ready);
+ DCHECK(!new_stream_info_ptr->ready);
}
template <typename StreamIdType>
@@ -267,7 +267,7 @@ void Http2PriorityWriteScheduler<StreamIdType>::UnregisterStream(
return;
}
// Remove the stream from table.
- typename StreamInfoMap::iterator it = all_stream_infos_.find(stream_id);
+ auto it = all_stream_infos_.find(stream_id);
if (it == all_stream_infos_.end()) {
SPDY_BUG << "Stream " << stream_id << " not registered";
return;
@@ -575,15 +575,15 @@ template <typename StreamIdType>
const typename Http2PriorityWriteScheduler<StreamIdType>::StreamInfo*
Http2PriorityWriteScheduler<StreamIdType>::FindStream(
StreamIdType stream_id) const {
- typename StreamInfoMap::const_iterator it = all_stream_infos_.find(stream_id);
- return it == all_stream_infos_.end() ? nullptr : it->second;
+ auto it = all_stream_infos_.find(stream_id);
+ return it == all_stream_infos_.end() ? nullptr : it->second.get();
}
template <typename StreamIdType>
typename Http2PriorityWriteScheduler<StreamIdType>::StreamInfo*
Http2PriorityWriteScheduler<StreamIdType>::FindStream(StreamIdType stream_id) {
- typename StreamInfoMap::iterator it = all_stream_infos_.find(stream_id);
- return it == all_stream_infos_.end() ? nullptr : it->second;
+ auto it = all_stream_infos_.find(stream_id);
+ return it == all_stream_infos_.end() ? nullptr : it->second.get();
}
template <typename StreamIdType>
@@ -687,7 +687,7 @@ bool Http2PriorityWriteScheduler<StreamIdType>::ValidateInvariantsForTests()
++total_streams;
++streams_visited;
StreamIdType stream_id = kv.first;
- const StreamInfo& stream_info = *kv.second;
+ const StreamInfo& stream_info = *kv.second.get();
// Verify each StreamInfo mapped under the proper stream ID.
if (stream_id != stream_info.id) {
« no previous file with comments | « components/sync/syncable/on_disk_directory_backing_store.cc ('k') | no next file » | no next file with comments »

Powered by Google App Engine
This is Rietveld 408576698