| 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();
|
| }
|
|
|