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

Unified Diff: content/browser/renderer_host/pepper/pepper_tcp_socket_message_filter.cc

Issue 2881673002: Avoid heap allocations in IPAddress (Closed)
Patch Set: Done Created 3 years, 7 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
Index: content/browser/renderer_host/pepper/pepper_tcp_socket_message_filter.cc
diff --git a/content/browser/renderer_host/pepper/pepper_tcp_socket_message_filter.cc b/content/browser/renderer_host/pepper/pepper_tcp_socket_message_filter.cc
index b91089d347143cf8fc6627041a0c14e444baa184..2a14a47f4e7f93170033db8db817901f01b54971 100644
--- a/content/browser/renderer_host/pepper/pepper_tcp_socket_message_filter.cc
+++ b/content/browser/renderer_host/pepper/pepper_tcp_socket_message_filter.cc
@@ -9,6 +9,7 @@
#include <vector>
#include "base/bind.h"
+#include "base/containers/stack_container.h"
#include "base/location.h"
#include "base/logging.h"
#include "base/memory/ptr_util.h"
@@ -585,14 +586,15 @@ void PepperTCPSocketMessageFilter::DoBind(
int pp_result = PP_OK;
do {
- std::vector<uint8_t> address;
+ base::StackVector<uint8_t, 16> address;
uint16_t port;
if (!NetAddressPrivateImpl::NetAddressToIPEndPoint(
net_addr, &address, &port)) {
pp_result = PP_ERROR_ADDRESS_INVALID;
break;
}
- net::IPEndPoint bind_addr(net::IPAddress(address), port);
+ net::IPEndPoint bind_addr(net::IPAddress(address->data(), address->size()),
+ port);
DCHECK(!socket_->IsValid());
pp_result = NetErrorToPepperError(socket_->Open(bind_addr.GetFamily()));
@@ -670,7 +672,7 @@ void PepperTCPSocketMessageFilter::DoConnectWithNetAddress(
state_.SetPendingTransition(TCPSocketState::CONNECT);
- std::vector<uint8_t> address;
+ base::StackVector<uint8_t, 16> address;
uint16_t port;
if (!NetAddressPrivateImpl::NetAddressToIPEndPoint(
net_addr, &address, &port)) {
@@ -682,7 +684,8 @@ void PepperTCPSocketMessageFilter::DoConnectWithNetAddress(
// Copy the single IPEndPoint to address_list_.
address_index_ = 0;
address_list_.clear();
- address_list_.push_back(net::IPEndPoint(net::IPAddress(address), port));
+ address_list_.push_back(
+ net::IPEndPoint(net::IPAddress(address->data(), address->size()), port));
StartConnect(context);
}

Powered by Google App Engine
This is Rietveld 408576698