Index: pkg/mime/lib/src/mime_multipart_transformer.dart |
diff --git a/pkg/mime/lib/src/mime_multipart_transformer.dart b/pkg/mime/lib/src/mime_multipart_transformer.dart |
index 024cd714cd68c69a38ad7bbdca6cd12e8e2a0f8d..a35b491365372a53a99d1e115f39bd5648a9ab72 100644 |
--- a/pkg/mime/lib/src/mime_multipart_transformer.dart |
+++ b/pkg/mime/lib/src/mime_multipart_transformer.dart |
@@ -86,8 +86,8 @@ class MimeMultipartTransformer |
int _index; |
List<int> _buffer; |
- StringBuffer _headerField = new StringBuffer(); |
- StringBuffer _headerValue = new StringBuffer(); |
+ List<int> _headerField = []; |
+ List<int> _headerValue = []; |
/** |
* Construct a new MIME multipart parser with the boundary |
@@ -246,7 +246,7 @@ class MimeMultipartTransformer |
_state = _HEADER_ENDING; |
} else { |
// Start of new header field. |
- _headerField.writeCharCode(_toLowerCase(byte)); |
+ _headerField.add(_toLowerCase(byte)); |
_state = _HEADER_FIELD; |
} |
break; |
@@ -258,7 +258,7 @@ class MimeMultipartTransformer |
if (!_isTokenChar(byte)) { |
throw new MimeMultipartException("Invalid header field name"); |
} |
- _headerField.writeCharCode(_toLowerCase(byte)); |
+ _headerField.add(_toLowerCase(byte)); |
} |
break; |
@@ -267,7 +267,7 @@ class MimeMultipartTransformer |
_state = _HEADER_VALUE_FOLDING_OR_ENDING; |
} else if (byte != _CharCode.SP && byte != _CharCode.HT) { |
// Start of new header value. |
- _headerValue.writeCharCode(byte); |
+ _headerValue.add(byte); |
_state = _HEADER_VALUE; |
} |
break; |
@@ -276,7 +276,7 @@ class MimeMultipartTransformer |
if (byte == _CharCode.CR) { |
_state = _HEADER_VALUE_FOLDING_OR_ENDING; |
} else { |
- _headerValue.writeCharCode(byte); |
+ _headerValue.add(byte); |
} |
break; |
@@ -289,16 +289,16 @@ class MimeMultipartTransformer |
if (byte == _CharCode.SP || byte == _CharCode.HT) { |
_state = _HEADER_VALUE_START; |
} else { |
- String headerField = _headerField.toString(); |
- String headerValue =_headerValue.toString(); |
+ String headerField = UTF8.decode(_headerField); |
Søren Gjesse
2013/10/30 10:08:09
Should there be a way of configuring this?
Anders Johnsen
2013/10/30 10:34:04
I don't think so. The only behavior I've seen has
|
+ String headerValue = UTF8.decode(_headerValue); |
_headers[headerField.toLowerCase()] = headerValue; |
- _headerField = new StringBuffer(); |
- _headerValue = new StringBuffer(); |
+ _headerField = []; |
+ _headerValue = []; |
if (byte == _CharCode.CR) { |
_state = _HEADER_ENDING; |
} else { |
// Start of new header field. |
- _headerField.writeCharCode(_toLowerCase(byte)); |
+ _headerField.add(_toLowerCase(byte)); |
_state = _HEADER_FIELD; |
} |
} |