| Index: third_party/mojo/src/mojo/public/dart/lib/src/codec.dart
|
| diff --git a/third_party/mojo/src/mojo/public/dart/src/codec.dart b/third_party/mojo/src/mojo/public/dart/lib/src/codec.dart
|
| similarity index 98%
|
| rename from third_party/mojo/src/mojo/public/dart/src/codec.dart
|
| rename to third_party/mojo/src/mojo/public/dart/lib/src/codec.dart
|
| index 89e32c279ba75e4d2ec7b6eabcfd715c4a181821..07bad358bbff0ad229c4f4a464f3b970cbd5dafd 100644
|
| --- a/third_party/mojo/src/mojo/public/dart/src/codec.dart
|
| +++ b/third_party/mojo/src/mojo/public/dart/lib/src/codec.dart
|
| @@ -201,11 +201,10 @@ class Encoder {
|
|
|
| void encodeInterface(
|
| core.MojoEventStreamListener interface, int offset, bool nullable) {
|
| - // Set the version field to 0 for now.
|
| - encodeUint32(0, offset + kSerializedHandleSize);
|
| -
|
| if (interface == null) {
|
| encodeInvalideHandle(offset, nullable);
|
| + // Set the version field to 0.
|
| + encodeUint32(0, offset + kSerializedHandleSize);
|
| return;
|
| }
|
| if (interface is Stub) {
|
| @@ -214,6 +213,8 @@ class Encoder {
|
| interface.bind(pipe.endpoints[0]);
|
| interface.listen();
|
| encodeMessagePipeHandle(pipe.endpoints[1], offset, nullable);
|
| + // Set the version to the version in the stub.
|
| + encodeUint32(interface.version, offset + kSerializedHandleSize);
|
| } else if (interface is Proxy) {
|
| assert(interface.isBound);
|
| if (!interface.isOpen) {
|
| @@ -222,6 +223,8 @@ class Encoder {
|
| interface.listen();
|
| }
|
| encodeMessagePipeHandle(interface.endpoint, offset, nullable);
|
| + // Set the version to the current version of the proxy.
|
| + encodeUint32(interface.version, offset + kSerializedHandleSize);
|
| } else {
|
| throw new MojoCodecError(
|
| 'Trying to encode an unknown MojoEventStreamListener');
|
| @@ -594,9 +597,14 @@ class Decoder {
|
|
|
| ProxyBase decodeServiceInterface(
|
| int offset, bool nullable, Function clientFactory) {
|
| - // Ignore the version field for now.
|
| var endpoint = decodeMessagePipeHandle(offset, nullable);
|
| - return endpoint.handle.isValid ? clientFactory(endpoint) : null;
|
| + var version = decodeUint32(offset + kSerializedHandleSize);
|
| + if (!endpoint.handle.isValid) {
|
| + return null;
|
| + }
|
| + ProxyBase client = clientFactory(endpoint);
|
| + client.impl._version = version;
|
| + return client;
|
| }
|
|
|
| Stub decodeInterfaceRequest(
|
|
|