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

Unified Diff: content/public/common/common_param_traits.cc

Issue 2881673002: Avoid heap allocations in IPAddress (Closed)
Patch Set: Resize 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/public/common/common_param_traits.cc
diff --git a/content/public/common/common_param_traits.cc b/content/public/common/common_param_traits.cc
index 286e6621cc6212cf727ba636c44d4df4a0ba6ceb..b7a6d488c601901456c967dc36c9885eeca39a42 100644
--- a/content/public/common/common_param_traits.cc
+++ b/content/public/common/common_param_traits.cc
@@ -124,11 +124,19 @@ void ParamTraits<net::IPEndPoint>::Log(const param_type& p, std::string* l) {
void ParamTraits<net::IPAddress>::GetSize(base::PickleSizer* s,
const param_type& p) {
- GetParamSize(s, p.bytes());
+ // TODO(rch): avoid creating a vector here.
+ base::StackVector<uint8_t, 16> bytes;
eroman 2017/05/18 18:43:17 Better thanks!
+ for (uint8_t byte : p.bytes())
+ bytes->push_back(byte);
+ GetParamSize(s, bytes);
}
void ParamTraits<net::IPAddress>::Write(base::Pickle* m, const param_type& p) {
- WriteParam(m, p.bytes());
+ // TODO(rch): avoid creating a vector here.
+ base::StackVector<uint8_t, 16> bytes;
+ for (uint8_t byte : p.bytes())
+ bytes->push_back(byte);
+ WriteParam(m, bytes);
}
bool ParamTraits<net::IPAddress>::Read(const base::Pickle* m,

Powered by Google App Engine
This is Rietveld 408576698