Use base::MakeRefCounted instead of new to alloc net::IOBuffer instances.
This CL only handles the files in //net. The files outside of //net are
tackled separately, in https://crrev.com/c/1189548.
net::IOBuffer is (thread-safe) ref-counted. Asides from improving the
ability to reason about instance ownership locally, creating instances
via base::MakeRefCounted makes it possible to use 1-based ref-counting
in the future (see base/memory/ref_counted.h).
This CL is mechanical, to avoid introducing any behavior changes. The
difficult cases will be tackled by follow-up CLs. The following
transformations were performed.
* new IOBufferType(args) => base::MakeRefCounted<IOBufferType>(args)
* new IOBufferType => base::MakeRefCounted<IOBufferType>()
* scoped_refptr x(base::MakeRefCounted<IOBufferType>(args)) =>
scoped_refptr x = base::MakeRefCounted<IOBufferType>(args)
* scoped_refptr<IOBufferType>(base::MakeRefCounted<IOBufferType>(args)) =>
base::MakeRefCounted<IOBufferType>(args)
* In comments: creates a new IOBufferType => creates an IOBufferType
(so it wouldn't trigger future searches for "new BufferType")
* Instantiated static members in HttpResponseBodyDrainer,
HttpNetworkTransaction, HttpProxyClientSocket, WritersTest,
UDPSocketTest, TestDelegate, UDPSocketPerfTest
(needed to fix linker errors)
* arraysize -> base::size (where needed to pass presubmit checks)
* git cl format
Cq-Include-Trybots: luci.chromium.try:android_optional_gpu_tests_rel;luci.chromium.try:ios-simulator-cronet;luci.chromium.try:ios-simulator-full-configs;luci.chromium.try:linux_mojo;luci.chromium.try:linux_optional_gpu_tests_rel;luci.chromium.try:mac_optional_gpu_tests_rel;luci.chromium.try:win_optional_gpu_tests_rel;master.tryserver.chromium.android:android_cronet_tester
Change-Id: Ic2cf8eb4dccfa4a97be893aff9a6053eaaf7d7af
Reviewed-on: https://chromium-review.googlesource.com/1188959
Reviewed-by: Bence Béky <[email protected]>
Commit-Queue: Victor Costan <[email protected]>
Cr-Commit-Position: refs/heads/master@{#586281}
diff --git a/net/spdy/bidirectional_stream_spdy_impl.cc b/net/spdy/bidirectional_stream_spdy_impl.cc
index ddabbdb..78c79ac5 100644
--- a/net/spdy/bidirectional_stream_spdy_impl.cc
+++ b/net/spdy/bidirectional_stream_spdy_impl.cc
@@ -141,7 +141,7 @@
if (buffers.size() == 1) {
pending_combined_buffer_ = buffers[0];
} else {
- pending_combined_buffer_ = new net::IOBuffer(total_len);
+ pending_combined_buffer_ = base::MakeRefCounted<net::IOBuffer>(total_len);
int len = 0;
// TODO(xunjieli): Get rid of extra copy. Coalesce headers and data frames.
for (size_t i = 0; i < buffers.size(); ++i) {