| Index: mojo/public/dart/mojo/lib/src/message.dart
|
| diff --git a/mojo/public/dart/mojo/lib/src/message.dart b/mojo/public/dart/mojo/lib/src/message.dart
|
| index 55feee3b70522d5383802490f2b25b7c23a12624..d617d1e035629ea3630b8c8d834c43bb2689ea34 100644
|
| --- a/mojo/public/dart/mojo/lib/src/message.dart
|
| +++ b/mojo/public/dart/mojo/lib/src/message.dart
|
| @@ -77,10 +77,11 @@ class MessageHeader {
|
| class Message {
|
| final ByteData buffer;
|
| final List<core.MojoHandle> handles;
|
| - int get numHandles => (handles == null) ? 0 : handles.length;
|
| - Message(this.buffer, this.handles);
|
| + final dataLength;
|
| + final handlesLength;
|
| + Message(this.buffer, this.handles, this.dataLength, this.handlesLength);
|
| String toString() =>
|
| - "Message(numBytes=${buffer.lengthInBytes}, numHandles=${numHandles})";
|
| + "Message(numBytes=${dataLength}, numHandles=${handlesLength})";
|
| }
|
|
|
| class ServiceMessage extends Message {
|
| @@ -88,7 +89,8 @@ class ServiceMessage extends Message {
|
| Message _payload;
|
|
|
| ServiceMessage(Message message, this.header)
|
| - : super(message.buffer, message.handles);
|
| + : super(message.buffer, message.handles, message.dataLength,
|
| + message.handlesLength);
|
|
|
| ServiceMessage.fromMessage(Message message)
|
| : this(message, new MessageHeader.fromMessage(message));
|
| @@ -96,7 +98,8 @@ class ServiceMessage extends Message {
|
| Message get payload {
|
| if (_payload == null) {
|
| var truncatedBuffer = new ByteData.view(buffer.buffer, header.size);
|
| - _payload = new Message(truncatedBuffer, handles);
|
| + _payload = new Message(
|
| + truncatedBuffer, handles, dataLength - header.size, handlesLength);
|
| }
|
| return _payload;
|
| }
|
|
|