From 194c0ada2a7276f7a092c15d927fb002de7dd27e Mon Sep 17 00:00:00 2001 From: Vaci Koblizek Date: Fri, 2 Oct 2020 21:43:30 +0100 Subject: [PATCH] correct setter of capability pointer --- runtime/src/main/java/org/capnproto/WirePointer.java | 8 +++++++- 1 file changed, 7 insertions(+), 1 deletion(-) diff --git a/runtime/src/main/java/org/capnproto/WirePointer.java b/runtime/src/main/java/org/capnproto/WirePointer.java index ba33292..167b649 100644 --- a/runtime/src/main/java/org/capnproto/WirePointer.java +++ b/runtime/src/main/java/org/capnproto/WirePointer.java @@ -86,7 +86,13 @@ final class WirePointer { return (int)(wirePointer >>> 32); } + public static boolean isCapability(long wirePointer) { + // lower 30 bits are all zero + return offsetAndKind(wirePointer) == OTHER; + } + public static void setCap(ByteBuffer buffer, int offset, int cap) { - WirePointer.setOffsetAndKind(buffer, offset, (cap << 2) | OTHER); + setOffsetAndKind(buffer, offset, OTHER); + buffer.putInt(offset*8 + 4, cap); } }