summaryrefslogtreecommitdiffstats
path: root/net
diff options
context:
space:
mode:
authortedvessenes@gmail.com <tedvessenes@gmail.com@0039d316-1c4b-4281-b951-d872f2087c98>2011-12-17 21:35:27 +0000
committertedvessenes@gmail.com <tedvessenes@gmail.com@0039d316-1c4b-4281-b951-d872f2087c98>2011-12-17 21:35:27 +0000
commit31d5661563a8dafc0409cf677a4e149c08ddb770 (patch)
tree602724525407700923eaca5e3f9b9e01bff5c016 /net
parent3acc642339a305cb5fd1f3f3b485c3df2bfd4155 (diff)
downloadchromium_src-31d5661563a8dafc0409cf677a4e149c08ddb770.zip
chromium_src-31d5661563a8dafc0409cf677a4e149c08ddb770.tar.gz
chromium_src-31d5661563a8dafc0409cf677a4e149c08ddb770.tar.bz2
Standardize StringToInt{,64} interface.
These changes address issue #106655. All variants of StringToInt have been converted to use the StringPiece class. One instance of conversion, in chrome/browser/history/text_database.cc, required copying an underlying string. This is because the string type in question could use 8 or 16 bit characters depending on the OS type, and because StringPiece is not implemented as a template, the code cannot specify whether to create a StringPiece or StringPiece16. This should be remedied in a future CL. R=erikwright@chromium.org BUG=106655 TEST= Review URL: http://codereview.chromium.org/8921006 git-svn-id: svn://svn.chromium.org/chrome/trunk/src@114929 0039d316-1c4b-4281-b951-d872f2087c98
Diffstat (limited to 'net')
-rw-r--r--net/base/net_util.cc4
-rw-r--r--net/base/x509_cert_types.cc4
-rw-r--r--net/ftp/ftp_ctrl_response_buffer.cc10
-rw-r--r--net/ftp/ftp_util.cc27
-rw-r--r--net/http/http_chunked_decoder.cc10
-rw-r--r--net/http/http_response_headers.cc20
-rw-r--r--net/proxy/proxy_bypass_rules.cc5
7 files changed, 46 insertions, 34 deletions
diff --git a/net/base/net_util.cc b/net/base/net_util.cc
index 7ae4363d..180a905 100644
--- a/net/base/net_util.cc
+++ b/net/base/net_util.cc
@@ -1985,8 +1985,8 @@ void SetExplicitlyAllowedPorts(const std::string& allowed_ports) {
if (i == size || allowed_ports[i] == kComma) {
if (i > last) {
int port;
- base::StringToInt(allowed_ports.begin() + last,
- allowed_ports.begin() + i,
+ base::StringToInt(base::StringPiece(allowed_ports.begin() + last,
+ allowed_ports.begin() + i),
&port);
ports.insert(port);
}
diff --git a/net/base/x509_cert_types.cc b/net/base/x509_cert_types.cc
index 6beb3ec..7578ccd 100644
--- a/net/base/x509_cert_types.cc
+++ b/net/base/x509_cert_types.cc
@@ -1,4 +1,4 @@
-// Copyright (c) 2006-2010 The Chromium Authors. All rights reserved.
+// Copyright (c) 2011 The Chromium Authors. All rights reserved.
// Use of this source code is governed by a BSD-style license that can be
// found in the LICENSE file.
@@ -20,7 +20,7 @@ namespace {
// untouched otherwise. Returns the parsed integer.
int ParseIntAndAdvance(const char** field, size_t field_len, bool* ok) {
int result = 0;
- *ok &= base::StringToInt(*field, *field + field_len, &result);
+ *ok &= base::StringToInt(base::StringPiece(*field, field_len), &result);
*field += field_len;
return result;
}
diff --git a/net/ftp/ftp_ctrl_response_buffer.cc b/net/ftp/ftp_ctrl_response_buffer.cc
index 4aeef1f..670c70d 100644
--- a/net/ftp/ftp_ctrl_response_buffer.cc
+++ b/net/ftp/ftp_ctrl_response_buffer.cc
@@ -1,11 +1,12 @@
-// Copyright (c) 2009 The Chromium Authors. All rights reserved. Use of this
-// source code is governed by a BSD-style license that can be found in the
-// LICENSE file.
+// Copyright (c) 2011 The Chromium Authors. All rights reserved.
+// Use of this source code is governed by a BSD-style license that can be
+// found in the LICENSE file.
#include "net/ftp/ftp_ctrl_response_buffer.h"
#include "base/logging.h"
#include "base/string_number_conversions.h"
+#include "base/string_piece.h"
//#include "base/string_util.h"
#include "net/base/net_errors.h"
@@ -91,7 +92,8 @@ FtpCtrlResponseBuffer::ParsedLine FtpCtrlResponseBuffer::ParseLine(
ParsedLine result;
if (line.length() >= 3) {
- if (base::StringToInt(line.begin(), line.begin() + 3, &result.status_code))
+ if (base::StringToInt(base::StringPiece(line.begin(), line.begin() + 3),
+ &result.status_code))
result.has_status_code = (100 <= result.status_code &&
result.status_code <= 599);
if (result.has_status_code && line.length() >= 4 && line[3] == ' ') {
diff --git a/net/ftp/ftp_util.cc b/net/ftp/ftp_util.cc
index 553d513..f6bdf2f 100644
--- a/net/ftp/ftp_util.cc
+++ b/net/ftp/ftp_util.cc
@@ -12,6 +12,7 @@
#include "base/logging.h"
#include "base/memory/singleton.h"
#include "base/string_number_conversions.h"
+#include "base/string_piece.h"
#include "base/string_split.h"
#include "base/string_tokenizer.h"
#include "base/string_util.h"
@@ -21,6 +22,8 @@
#include "unicode/dtfmtsym.h"
#include "unicode/uchar.h"
+using base::StringPiece16;
+
// For examples of Unix<->VMS path conversions, see the unit test file. On VMS
// a path looks differently depending on whether it's a file or directory.
@@ -211,26 +214,26 @@ bool FtpUtil::LsDateListingToTime(const string16& month, const string16& day,
if (!base::StringToInt(rest, &time_exploded.year)) {
// Maybe it's time. Does it look like time (HH:MM)?
if (rest.length() == 5 && rest[2] == ':') {
- if (!base::StringToInt(rest.begin(),
- rest.begin() + 2,
- &time_exploded.hour))
+ if (!base::StringToInt(StringPiece16(rest.begin(), rest.begin() + 2),
+ &time_exploded.hour)) {
return false;
+ }
- if (!base::StringToInt(rest.begin() + 3,
- rest.begin() + 5,
- &time_exploded.minute))
+ if (!base::StringToInt(StringPiece16(rest.begin() + 3, rest.begin() + 5),
+ &time_exploded.minute)) {
return false;
+ }
} else if (rest.length() == 4 && rest[1] == ':') {
// Sometimes it's just H:MM.
- if (!base::StringToInt(rest.begin(),
- rest.begin() + 1,
- &time_exploded.hour))
+ if (!base::StringToInt(StringPiece16(rest.begin(), rest.begin() + 1),
+ &time_exploded.hour)) {
return false;
+ }
- if (!base::StringToInt(rest.begin() + 2,
- rest.begin() + 4,
- &time_exploded.minute))
+ if (!base::StringToInt(StringPiece16(rest.begin() + 2, rest.begin() + 4),
+ &time_exploded.minute)) {
return false;
+ }
} else {
return false;
}
diff --git a/net/http/http_chunked_decoder.cc b/net/http/http_chunked_decoder.cc
index d5b16dd..87f54640 100644
--- a/net/http/http_chunked_decoder.cc
+++ b/net/http/http_chunked_decoder.cc
@@ -1,4 +1,4 @@
-// Copyright (c) 2010 The Chromium Authors. All rights reserved.
+// Copyright (c) 2011 The Chromium Authors. All rights reserved.
// Use of this source code is governed by a BSD-style license that can be
// found in the LICENSE file.
@@ -187,12 +187,14 @@ bool HttpChunkedDecoder::ParseChunkSize(const char* start, int len, int* out) {
// Be more restrictive than HexStringToInt;
// don't allow inputs with leading "-", "+", "0x", "0X"
- if (base::StringPiece(start, len).find_first_not_of("0123456789abcdefABCDEF")
- != base::StringPiece::npos)
+ base::StringPiece chunk_size(start, len);
+ if (chunk_size.find_first_not_of("0123456789abcdefABCDEF")
+ != base::StringPiece::npos) {
return false;
+ }
int parsed_number;
- bool ok = base::HexStringToInt(start, start + len, &parsed_number);
+ bool ok = base::HexStringToInt(chunk_size, &parsed_number);
if (ok && parsed_number >= 0) {
*out = parsed_number;
return true;
diff --git a/net/http/http_response_headers.cc b/net/http/http_response_headers.cc
index f249db8..98bd052 100644
--- a/net/http/http_response_headers.cc
+++ b/net/http/http_response_headers.cc
@@ -15,11 +15,13 @@
#include "base/metrics/histogram.h"
#include "base/pickle.h"
#include "base/string_number_conversions.h"
+#include "base/string_piece.h"
#include "base/string_util.h"
#include "base/time.h"
#include "net/base/escape.h"
#include "net/http/http_util.h"
+using base::StringPiece;
using base::Time;
using base::TimeDelta;
@@ -698,7 +700,7 @@ void HttpResponseHeaders::ParseStatusLine(
raw_headers_.push_back(' ');
raw_headers_.append(code, p);
raw_headers_.push_back(' ');
- base::StringToInt(code, p, &response_code_);
+ base::StringToInt(StringPiece(code, p), &response_code_);
// Skip whitespace.
while (*p == ' ')
@@ -1071,8 +1073,8 @@ bool HttpResponseHeaders::GetMaxAgeValue(TimeDelta* result) const {
value.begin() + kMaxAgePrefixLen,
kMaxAgePrefix)) {
int64 seconds;
- base::StringToInt64(value.begin() + kMaxAgePrefixLen,
- value.end(),
+ base::StringToInt64(StringPiece(value.begin() + kMaxAgePrefixLen,
+ value.end()),
&seconds);
*result = TimeDelta::FromSeconds(seconds);
return true;
@@ -1250,8 +1252,8 @@ bool HttpResponseHeaders::GetContentRange(int64* first_byte_position,
byte_range_resp_spec.begin() + minus_position;
HttpUtil::TrimLWS(&first_byte_pos_begin, &first_byte_pos_end);
- bool ok = base::StringToInt64(first_byte_pos_begin,
- first_byte_pos_end,
+ bool ok = base::StringToInt64(StringPiece(first_byte_pos_begin,
+ first_byte_pos_end),
first_byte_position);
// Obtain last-byte-pos.
@@ -1261,8 +1263,8 @@ bool HttpResponseHeaders::GetContentRange(int64* first_byte_position,
byte_range_resp_spec.end();
HttpUtil::TrimLWS(&last_byte_pos_begin, &last_byte_pos_end);
- ok &= base::StringToInt64(last_byte_pos_begin,
- last_byte_pos_end,
+ ok &= base::StringToInt64(StringPiece(last_byte_pos_begin,
+ last_byte_pos_end),
last_byte_position);
if (!ok) {
*first_byte_position = *last_byte_position = -1;
@@ -1286,8 +1288,8 @@ bool HttpResponseHeaders::GetContentRange(int64* first_byte_position,
if (LowerCaseEqualsASCII(instance_length_begin, instance_length_end, "*")) {
return false;
- } else if (!base::StringToInt64(instance_length_begin,
- instance_length_end,
+ } else if (!base::StringToInt64(StringPiece(instance_length_begin,
+ instance_length_end),
instance_length)) {
*instance_length = -1;
return false;
diff --git a/net/proxy/proxy_bypass_rules.cc b/net/proxy/proxy_bypass_rules.cc
index 3d622a8..1c0fd61 100644
--- a/net/proxy/proxy_bypass_rules.cc
+++ b/net/proxy/proxy_bypass_rules.cc
@@ -7,6 +7,7 @@
#include "base/stl_util.h"
#include "base/stringprintf.h"
#include "base/string_number_conversions.h"
+#include "base/string_piece.h"
#include "base/string_tokenizer.h"
#include "base/string_util.h"
#include "net/base/net_util.h"
@@ -315,7 +316,9 @@ bool ProxyBypassRules::AddRuleFromStringInternal(
host = raw;
port = -1;
if (pos_colon != std::string::npos) {
- if (!base::StringToInt(raw.begin() + pos_colon + 1, raw.end(), &port) ||
+ if (!base::StringToInt(base::StringPiece(raw.begin() + pos_colon + 1,
+ raw.end()),
+ &port) ||
(port < 0 || port > 0xFFFF)) {
return false; // Port was invalid.
}