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

Unified Diff: runtime/bin/builtin.dart

Issue 218493012: Make non-copying version of BytesBuidler and make file-reads faster. (Closed) Base URL: https://dart.googlecode.com/svn/branches/bleeding_edge/dart
Patch Set: Created 6 years, 9 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
« no previous file with comments | « no previous file | sdk/lib/io/bytes_builder.dart » ('j') | no next file with comments »
Expand Comments ('e') | Collapse Comments ('c') | Show Comments Hide Comments ('s')
Index: runtime/bin/builtin.dart
diff --git a/runtime/bin/builtin.dart b/runtime/bin/builtin.dart
index 24d6de1754c5d03266c91011dd4ea0b2db753d36..496e7c0ef3fa53736aabdb4b69a39efc7ec8fb8a 100644
--- a/runtime/bin/builtin.dart
+++ b/runtime/bin/builtin.dart
@@ -85,23 +85,11 @@ void _makeHttpRequest(String uri) {
})
.then((HttpClientResponse response) {
// Only create a ByteBuilder, if multiple chunks are received.
- var bufferOrBuilder;
+ var builder = new BytesBuilder(copy: false);
response.listen(
- (data) {
- if (bufferOrBuilder == null) {
- bufferOrBuilder = data;
- } else {
- if (bufferOrBuilder is! BytesBuilder) {
- bufferOrBuilder = new BytesBuilder()
- ..add(bufferOrBuilder);
- }
- bufferOrBuilder.add(data);
- }
- },
+ builder.add,
onDone: () {
- var data = bufferOrBuilder;
- if (data is BytesBuilder) data = data.takeBytes();
- _requestCompleted(data, response);
+ _requestCompleted(builder.takeBytes(), response);
// Close the client to stop any timers currently held alive.
_client.close();
},
« no previous file with comments | « no previous file | sdk/lib/io/bytes_builder.dart » ('j') | no next file with comments »

Powered by Google App Engine
This is Rietveld 408576698