Index: third_party/mojo/src/mojo/public/dart/src/drain_data.dart |
diff --git a/third_party/mojo/src/mojo/public/dart/src/drain_data.dart b/third_party/mojo/src/mojo/public/dart/src/drain_data.dart |
index ffc56e5629434d3f5dc47817f7426422a30cf290..b5929e567a3191f1582a32bcc011bb28a9a43549 100644 |
--- a/third_party/mojo/src/mojo/public/dart/src/drain_data.dart |
+++ b/third_party/mojo/src/mojo/public/dart/src/drain_data.dart |
@@ -16,12 +16,16 @@ class DataPipeDrainer { |
_dataSize = 0; |
} |
+ ByteData _copy(ByteData byteData) => |
+ new ByteData.view( |
+ new Uint8List.fromList(byteData.buffer.asUint8List()).buffer); |
+ |
MojoResult _doRead() { |
ByteData thisRead = _consumer.beginRead(); |
if (thisRead == null) { |
throw 'Data pipe beginRead failed: ${_consumer.status}'; |
} |
- _dataList.add(thisRead); |
+ _dataList.add(_copy(thisRead)); |
_dataSize += thisRead.lengthInBytes; |
return _consumer.endRead(thisRead.lengthInBytes); |
} |