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

Side by Side 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, 8 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 unified diff | Download patch | Annotate | Revision Log
« no previous file with comments | « no previous file | sdk/lib/io/bytes_builder.dart » ('j') | no next file with comments »
Toggle Intra-line Diffs ('i') | Expand Comments ('e') | Collapse Comments ('c') | Show Comments Hide Comments ('s')
OLDNEW
1 // Copyright (c) 2012, the Dart project authors. Please see the AUTHORS file 1 // Copyright (c) 2012, the Dart project authors. Please see the AUTHORS file
2 // for details. All rights reserved. Use of this source code is governed by a 2 // for details. All rights reserved. Use of this source code is governed by a
3 // BSD-style license that can be found in the LICENSE file. 3 // BSD-style license that can be found in the LICENSE file.
4 4
5 library builtin; 5 library builtin;
6 import 'dart:io'; 6 import 'dart:io';
7 import 'dart:async'; 7 import 'dart:async';
8 // import 'root_library'; happens here from C Code 8 // import 'root_library'; happens here from C Code
9 9
10 // The root library (aka the script) is imported into this library. The 10 // The root library (aka the script) is imported into this library. The
(...skipping 67 matching lines...) Expand 10 before | Expand all | Expand 10 after
78 _httpRequestResponse = null; 78 _httpRequestResponse = null;
79 try { 79 try {
80 Uri requestUri = Uri.parse(uri); 80 Uri requestUri = Uri.parse(uri);
81 _client.getUrl(requestUri) 81 _client.getUrl(requestUri)
82 .then((HttpClientRequest request) { 82 .then((HttpClientRequest request) {
83 request.persistentConnection = false; 83 request.persistentConnection = false;
84 return request.close(); 84 return request.close();
85 }) 85 })
86 .then((HttpClientResponse response) { 86 .then((HttpClientResponse response) {
87 // Only create a ByteBuilder, if multiple chunks are received. 87 // Only create a ByteBuilder, if multiple chunks are received.
88 var bufferOrBuilder; 88 var builder = new BytesBuilder(copy: false);
89 response.listen( 89 response.listen(
90 (data) { 90 builder.add,
91 if (bufferOrBuilder == null) {
92 bufferOrBuilder = data;
93 } else {
94 if (bufferOrBuilder is! BytesBuilder) {
95 bufferOrBuilder = new BytesBuilder()
96 ..add(bufferOrBuilder);
97 }
98 bufferOrBuilder.add(data);
99 }
100 },
101 onDone: () { 91 onDone: () {
102 var data = bufferOrBuilder; 92 _requestCompleted(builder.takeBytes(), response);
103 if (data is BytesBuilder) data = data.takeBytes();
104 _requestCompleted(data, response);
105 // Close the client to stop any timers currently held alive. 93 // Close the client to stop any timers currently held alive.
106 _client.close(); 94 _client.close();
107 }, 95 },
108 onError: _requestFailed); 96 onError: _requestFailed);
109 }).catchError((error) { 97 }).catchError((error) {
110 _requestFailed(error); 98 _requestFailed(error);
111 }); 99 });
112 } catch (error) { 100 } catch (error) {
113 _requestFailed(error); 101 _requestFailed(error);
114 } 102 }
(...skipping 201 matching lines...) Expand 10 before | Expand all | Expand 10 after
316 } else if (Platform.isWindows) { 304 } else if (Platform.isWindows) {
317 filename = '$name.dll'; 305 filename = '$name.dll';
318 } else { 306 } else {
319 _logResolution( 307 _logResolution(
320 'Native extensions not supported on ${Platform.operatingSystem}'); 308 'Native extensions not supported on ${Platform.operatingSystem}');
321 throw 'Native extensions not supported on ${Platform.operatingSystem}'; 309 throw 'Native extensions not supported on ${Platform.operatingSystem}';
322 } 310 }
323 311
324 return [path, filename, name]; 312 return [path, filename, name];
325 } 313 }
OLDNEW
« 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