Chromium Code Reviews| Index: sdk/lib/io/http_impl.dart |
| diff --git a/sdk/lib/io/http_impl.dart b/sdk/lib/io/http_impl.dart |
| index a965afa43fe2f18dc4ce986a393e02a64429dd15..40d909d0283213ab071218b464f464e1553833d7 100644 |
| --- a/sdk/lib/io/http_impl.dart |
| +++ b/sdk/lib/io/http_impl.dart |
| @@ -574,29 +574,20 @@ class _HttpResponse extends _HttpOutboundMessage<HttpResponse> |
| } |
| void _writeHeader() { |
| - Uint8List buffer = new Uint8List(_OUTGOING_BUFFER_SIZE); |
| - int offset = 0; |
| - |
| - void write(List<int> bytes) { |
| - int len = bytes.length; |
| - for (int i = 0; i < len; i++) { |
| - buffer[offset + i] = bytes[i]; |
| - } |
| - offset += len; |
| - } |
| + BytesBuilder buffer = new _CopyingBytesBuilder(_OUTGOING_BUFFER_SIZE); |
| // Write status line. |
| if (headers.protocolVersion == "1.1") { |
| - write(_Const.HTTP11); |
| + buffer.add(_Const.HTTP11); |
| } else { |
| - write(_Const.HTTP10); |
| + buffer.add(_Const.HTTP10); |
| } |
| - buffer[offset++] = _CharCode.SP; |
| - write(statusCode.toString().codeUnits); |
| - buffer[offset++] = _CharCode.SP; |
| - write(reasonPhrase.codeUnits); |
| - buffer[offset++] = _CharCode.CR; |
| - buffer[offset++] = _CharCode.LF; |
| + buffer.addByte(_CharCode.SP); |
| + buffer.add(statusCode.toString().codeUnits); |
| + buffer.addByte(_CharCode.SP); |
| + buffer.add(reasonPhrase.codeUnits); |
| + buffer.addByte(_CharCode.CR); |
| + buffer.addByte(_CharCode.LF); |
| var session = _httpRequest._session; |
| if (session != null && !session._destroyed) { |
| @@ -630,10 +621,11 @@ class _HttpResponse extends _HttpOutboundMessage<HttpResponse> |
| headers._finalize(); |
| // Write headers. |
| - offset = headers._write(buffer, offset); |
|
Søren Gjesse
2017/01/05 14:22:12
Is headers._write still used?
Lasse Reichstein Nielsen
2017/01/13 06:22:59
There is another implementation of _writeHeaders,
|
| - buffer[offset++] = _CharCode.CR; |
| - buffer[offset++] = _CharCode.LF; |
| - _outgoing.setHeader(buffer, offset); |
| + headers._build(buffer); |
| + buffer.addByte(_CharCode.CR); |
| + buffer.addByte(_CharCode.LF); |
| + Uint8List headerBytes = buffer.takeBytes(); |
| + _outgoing.setHeader(headerBytes, headerBytes.length); |
| } |
| String _findReasonPhrase(int statusCode) { |
| @@ -1160,7 +1152,6 @@ class _HttpOutgoing implements StreamConsumer<List<int>> { |
| void setHeader(List<int> data, int length) { |
| assert(_length == 0); |
| - assert(data.length == _OUTGOING_BUFFER_SIZE); |
| _buffer = data; |
| _length = length; |
| } |