| Index: mojo/dart/packages/mojo/lib/src/fill_data.dart
|
| diff --git a/mojo/dart/packages/mojo/lib/src/fill_data.dart b/mojo/dart/packages/mojo/lib/src/fill_data.dart
|
| index c139a7c3c4c2182d70c4fcf6159c8108a7483f4e..0fa5ec6cf0a8d11f2acdec05be408a3aaf4062f6 100644
|
| --- a/mojo/dart/packages/mojo/lib/src/fill_data.dart
|
| +++ b/mojo/dart/packages/mojo/lib/src/fill_data.dart
|
| @@ -15,12 +15,13 @@ class DataPipeFiller {
|
| _dataPosition = 0;
|
| }
|
|
|
| - MojoResult _doWrite() {
|
| + int _doWrite() {
|
| ByteData view = new ByteData.view(
|
| _data.buffer, _dataPosition, _data.lengthInBytes - _dataPosition);
|
| int written = _producer.write(view);
|
| - if (!_producer.status.isOk) {
|
| - throw 'Data pipe beginWrite failed: ${_producer.status}';
|
| + if (_producer.status != MojoResult.kOk) {
|
| + throw 'Data pipe beginWrite failed: '
|
| + '${MojoResult.string(_producer.status)}';
|
| }
|
| _dataPosition += written;
|
| return _producer.status;
|
| @@ -29,18 +30,20 @@ class DataPipeFiller {
|
| void fill() {
|
| _eventSubscription.enableWriteEvents();
|
| _eventSubscription.subscribe((List<int> event) {
|
| - var mojoSignals = new MojoHandleSignals(event[1]);
|
| - if (mojoSignals.isWritable) {
|
| - MojoResult result = _doWrite();
|
| - if (_dataPosition >= _data.lengthInBytes || !result.isOk) {
|
| + int mojoSignals = event[1];
|
| + if (MojoHandleSignals.isWritable(mojoSignals)) {
|
| + int result = _doWrite();
|
| + if ((_dataPosition >= _data.lengthInBytes) ||
|
| + (result != MojoResult.kOk)) {
|
| _eventSubscription.close();
|
| _eventSubscription = null;
|
| }
|
| - } else if (mojoSignals.isPeerClosed) {
|
| + } else if (MojoHandleSignals.isPeerClosed(mojoSignals)) {
|
| _eventSubscription.close();
|
| _eventSubscription = null;
|
| } else {
|
| - throw 'Unexpected handle event: $mojoSignals';
|
| + String signals = MojoHandleSignals.string(mojoSignals);
|
| + throw 'Unexpected handle event: $signals';
|
| }
|
| });
|
| }
|
|
|