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

Unified Diff: sdk/lib/io/http_parser.dart

Issue 11418010: Do not use StringBuffer to create strings from individual char (Closed) Base URL: https://dart.googlecode.com/svn/branches/bleeding_edge/dart
Patch Set: Created 8 years, 1 month 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 | « no previous file | no next file » | no next file with comments »
Expand Comments ('e') | Collapse Comments ('c') | Show Comments Hide Comments ('s')
Index: sdk/lib/io/http_parser.dart
diff --git a/sdk/lib/io/http_parser.dart b/sdk/lib/io/http_parser.dart
index 45a2d4f0a43296c949e0922c9af2775b1f9a33b3..2b7eb2ff6415bad813b1e4f6bd55dc2787bc2de2 100644
--- a/sdk/lib/io/http_parser.dart
+++ b/sdk/lib/io/http_parser.dart
@@ -170,7 +170,7 @@ class _HttpParser {
if (!_isTokenChar(byte)) {
throw new HttpParserException("Invalid request method");
}
- _method_or_status_code.addCharCode(byte);
+ _method_or_status_code.add(byte);
if (!_requestParser) {
throw new HttpParserException("Invalid response line");
}
@@ -195,12 +195,12 @@ class _HttpParser {
} else {
// Did not parse HTTP version. Expect method instead.
for (int i = 0; i < _httpVersionIndex; i++) {
- _method_or_status_code.addCharCode(_Const.HTTP[i]);
+ _method_or_status_code.add(_Const.HTTP[i]);
}
if (byte == _CharCode.SP) {
_state = _State.REQUEST_LINE_URI;
} else {
- _method_or_status_code.addCharCode(byte);
+ _method_or_status_code.add(byte);
_httpVersion = _HttpVersion.UNDETERMINED;
if (!_requestParser) {
throw new HttpParserException("Invalid response line");
@@ -243,7 +243,7 @@ class _HttpParser {
if (_Const.SEPARATORS_AND_CR_LF.indexOf(byte) != -1) {
throw new HttpParserException("Invalid request method");
}
- _method_or_status_code.addCharCode(byte);
+ _method_or_status_code.add(byte);
}
break;
@@ -258,7 +258,7 @@ class _HttpParser {
if (byte == _CharCode.CR || byte == _CharCode.LF) {
throw new HttpParserException("Invalid request URI");
}
- _uri_or_reason_phrase.addCharCode(byte);
+ _uri_or_reason_phrase.add(byte);
}
break;
@@ -289,8 +289,8 @@ class _HttpParser {
case _State.REQUEST_LINE_ENDING:
_expect(byte, _CharCode.LF);
_messageType = _MessageType.REQUEST;
- requestStart(_method_or_status_code.toString(),
- _uri_or_reason_phrase.toString(),
+ requestStart(new String.fromCharCodes(_method_or_status_code),
+ new String.fromCharCodes(_uri_or_reason_phrase),
version);
_method_or_status_code.clear();
_uri_or_reason_phrase.clear();
@@ -307,7 +307,7 @@ class _HttpParser {
if (byte < 0x30 && 0x39 < byte) {
throw new HttpParserException("Invalid response status code");
} else {
- _method_or_status_code.addCharCode(byte);
+ _method_or_status_code.add(byte);
}
}
break;
@@ -322,14 +322,14 @@ class _HttpParser {
if (byte == _CharCode.CR || byte == _CharCode.LF) {
throw new HttpParserException("Invalid response reason phrase");
}
- _uri_or_reason_phrase.addCharCode(byte);
+ _uri_or_reason_phrase.add(byte);
}
break;
case _State.RESPONSE_LINE_ENDING:
_expect(byte, _CharCode.LF);
_messageType == _MessageType.RESPONSE;
- int statusCode = parseInt(_method_or_status_code.toString());
+ int statusCode = parseInt(new String.fromCharCodes(_method_or_status_code));
if (statusCode < 100 || statusCode > 599) {
throw new HttpParserException("Invalid response status code");
} else {
@@ -338,7 +338,7 @@ class _HttpParser {
statusCode <= 199 || statusCode == 204 || statusCode == 304;
}
responseStart(statusCode,
- _uri_or_reason_phrase.toString(),
+ new String.fromCharCodes(_uri_or_reason_phrase),
version);
_method_or_status_code.clear();
_uri_or_reason_phrase.clear();
@@ -350,7 +350,7 @@ class _HttpParser {
_state = _State.HEADER_ENDING;
} else {
// Start of new header field.
- _headerField.addCharCode(_toLowerCase(byte));
+ _headerField.add(_toLowerCase(byte));
_state = _State.HEADER_FIELD;
}
break;
@@ -362,7 +362,7 @@ class _HttpParser {
if (!_isTokenChar(byte)) {
throw new HttpParserException("Invalid header field name");
}
- _headerField.addCharCode(_toLowerCase(byte));
+ _headerField.add(_toLowerCase(byte));
}
break;
@@ -371,7 +371,7 @@ class _HttpParser {
_state = _State.HEADER_VALUE_FOLDING_OR_ENDING;
} else if (byte != _CharCode.SP && byte != _CharCode.HT) {
// Start of new header value.
- _headerValue.addCharCode(byte);
+ _headerValue.add(byte);
_state = _State.HEADER_VALUE;
}
break;
@@ -380,7 +380,7 @@ class _HttpParser {
if (byte == _CharCode.CR) {
_state = _State.HEADER_VALUE_FOLDING_OR_ENDING;
} else {
- _headerValue.addCharCode(byte);
+ _headerValue.add(byte);
}
break;
@@ -393,8 +393,8 @@ class _HttpParser {
if (byte == _CharCode.SP || byte == _CharCode.HT) {
_state = _State.HEADER_VALUE_START;
} else {
- String headerField = _headerField.toString();
- String headerValue =_headerValue.toString();
+ String headerField = new String.fromCharCodes(_headerField);
+ String headerValue = new String.fromCharCodes(_headerValue);
bool reportHeader = true;
if (headerField == "content-length" && !_chunked) {
// Ignore the Content-Length header if Transfer-Encoding
@@ -431,7 +431,7 @@ class _HttpParser {
_state = _State.HEADER_ENDING;
} else {
// Start of new header field.
- _headerField.addCharCode(_toLowerCase(byte));
+ _headerField.add(_toLowerCase(byte));
_state = _State.HEADER_FIELD;
}
}
@@ -658,10 +658,10 @@ class _HttpParser {
_reset() {
_state = _State.START;
_messageType = _MessageType.UNDETERMINED;
- _headerField = new StringBuffer();
- _headerValue = new StringBuffer();
- _method_or_status_code = new StringBuffer();
- _uri_or_reason_phrase = new StringBuffer();
+ _headerField = new List();
+ _headerValue = new List();
+ _method_or_status_code = new List();
+ _uri_or_reason_phrase = new List();
_httpVersion = _HttpVersion.UNDETERMINED;
_contentLength = -1;
@@ -735,10 +735,10 @@ class _HttpParser {
int _state;
int _httpVersionIndex;
int _messageType;
- StringBuffer _method_or_status_code;
- StringBuffer _uri_or_reason_phrase;
- StringBuffer _headerField;
- StringBuffer _headerValue;
+ List _method_or_status_code;
+ List _uri_or_reason_phrase;
+ List _headerField;
+ List _headerValue;
int _httpVersion;
int _contentLength;
« no previous file with comments | « no previous file | no next file » | no next file with comments »

Powered by Google App Engine
This is Rietveld 408576698