Index: third_party/mojo/src/mojo/public/java/bindings/src/org/chromium/mojo/bindings/Encoder.java |
diff --git a/third_party/mojo/src/mojo/public/java/bindings/src/org/chromium/mojo/bindings/Encoder.java b/third_party/mojo/src/mojo/public/java/bindings/src/org/chromium/mojo/bindings/Encoder.java |
index 23a618885cf8735fa772ef070937c30144626f5b..c820ac5284583ae93f103bc981d22cfac3dacbbc 100644 |
--- a/third_party/mojo/src/mojo/public/java/bindings/src/org/chromium/mojo/bindings/Encoder.java |
+++ b/third_party/mojo/src/mojo/public/java/bindings/src/org/chromium/mojo/bindings/Encoder.java |
@@ -250,10 +250,9 @@ public class Encoder { |
*/ |
public <T extends Interface> void encode(T v, int offset, boolean nullable, |
Interface.Manager<T, ?> manager) { |
- // Set the version field to 0 for now. |
- encode(0, offset + BindingsHelper.SERIALIZED_HANDLE_SIZE); |
if (v == null) { |
encodeInvalidHandle(offset, nullable); |
+ encode(0, offset + BindingsHelper.SERIALIZED_HANDLE_SIZE); |
return; |
} |
if (mEncoderState.core == null) { |
@@ -266,6 +265,7 @@ public class Encoder { |
if (handler.getMessageReceiver() instanceof HandleOwner) { |
encode(((HandleOwner<?>) handler.getMessageReceiver()).passHandle(), offset, |
nullable); |
+ encode(handler.getVersion(), offset + BindingsHelper.SERIALIZED_HANDLE_SIZE); |
return; |
} |
// If the proxy is not over a message pipe, the default case applies. |
@@ -274,6 +274,7 @@ public class Encoder { |
mEncoderState.core.createMessagePipe(null); |
manager.bind(v, handles.first); |
encode(handles.second, offset, nullable); |
+ encode(manager.getVersion(), offset + BindingsHelper.SERIALIZED_HANDLE_SIZE); |
} |
/** |