Index: mojo/public/java/bindings/src/org/chromium/mojo/bindings/Connector.java |
diff --git a/mojo/public/java/bindings/src/org/chromium/mojo/bindings/Connector.java b/mojo/public/java/bindings/src/org/chromium/mojo/bindings/Connector.java |
index 06c627923a68039f89dfdffaf934b489a0997bc1..1d2404b9069e03037eaf83d779a9c18379bb5601 100644 |
--- a/mojo/public/java/bindings/src/org/chromium/mojo/bindings/Connector.java |
+++ b/mojo/public/java/bindings/src/org/chromium/mojo/bindings/Connector.java |
@@ -10,6 +10,7 @@ import org.chromium.mojo.system.MessagePipeHandle; |
import org.chromium.mojo.system.MessagePipeHandle.ReadMessageResult; |
import org.chromium.mojo.system.MojoException; |
import org.chromium.mojo.system.MojoResult; |
+import org.chromium.mojo.system.ResultAnd; |
import java.nio.ByteBuffer; |
@@ -227,15 +228,18 @@ public class Connector implements MessageReceiver, HandleOwner<MessagePipeHandle |
*/ |
static int readAndDispatchMessage(MessagePipeHandle handle, MessageReceiver receiver) { |
// TODO(qsr) Allow usage of a pool of pre-allocated buffer for performance. |
- ReadMessageResult result = handle.readMessage(null, 0, MessagePipeHandle.ReadFlags.NONE); |
+ ResultAnd<ReadMessageResult> result = |
+ handle.readMessage(null, 0, MessagePipeHandle.ReadFlags.NONE); |
if (result.getMojoResult() != MojoResult.RESOURCE_EXHAUSTED) { |
return result.getMojoResult(); |
} |
- ByteBuffer buffer = ByteBuffer.allocateDirect(result.getMessageSize()); |
- result = handle.readMessage(buffer, result.getHandlesCount(), |
- MessagePipeHandle.ReadFlags.NONE); |
+ ReadMessageResult readResult = result.getValue(); |
+ assert readResult != null; |
+ ByteBuffer buffer = ByteBuffer.allocateDirect(readResult.getMessageSize()); |
+ result = handle.readMessage( |
+ buffer, readResult.getHandlesCount(), MessagePipeHandle.ReadFlags.NONE); |
if (receiver != null && result.getMojoResult() == MojoResult.OK) { |
- receiver.accept(new Message(buffer, result.getHandles())); |
+ receiver.accept(new Message(buffer, result.getValue().getHandles())); |
} |
return result.getMojoResult(); |
} |