From e3eabe6476529348ea0aa70eb4cc22171dfcccd7 Mon Sep 17 00:00:00 2001 From: Vaci Koblizek Date: Thu, 3 Dec 2020 12:11:15 +0000 Subject: [PATCH] copy params in direct tail call and remove invalid override in PipelineClient --- runtime-rpc/src/main/java/org/capnproto/RpcState.java | 9 +++------ 1 file changed, 3 insertions(+), 6 deletions(-) diff --git a/runtime-rpc/src/main/java/org/capnproto/RpcState.java b/runtime-rpc/src/main/java/org/capnproto/RpcState.java index 55be7b2..81f6460 100644 --- a/runtime-rpc/src/main/java/org/capnproto/RpcState.java +++ b/runtime-rpc/src/main/java/org/capnproto/RpcState.java @@ -1622,10 +1622,12 @@ final class RpcState { } public VoidPromiseAndPipeline callNoIntercept(long interfaceId, short methodId, CallContextHook ctx) { + // Implement call() by copying params and results messages. var params = ctx.getParams(); var request = newCallNoIntercept(interfaceId, methodId); - ctx.allowCancellation(); + request.getParams().setAs(AnyPointer.factory, params); ctx.releaseParams(); + ctx.allowCancellation(); return ctx.directTailCall(request.getHook()); } @@ -2007,11 +2009,6 @@ final class RpcState { this.ops = ops.clone(); } - @Override - public VoidPromiseAndPipeline call(long interfaceId, short methodId, CallContextHook context) { - return null; - } - @Override public CompletableFuture whenMoreResolved() { return null;