< prev index next >

src/jdk.incubator.foreign/share/classes/jdk/internal/foreign/abi/Binding.java

Print this page
@@ -20,16 +20,20 @@
   * or visit www.oracle.com if you need additional information or have any
   * questions.
   */
  package jdk.internal.foreign.abi;
  
+ import jdk.incubator.foreign.MemoryHandles;
  import jdk.incubator.foreign.MemoryLayout;
  
  import java.util.ArrayList;
  import java.util.List;
  import java.util.Objects;
  
+ import java.lang.invoke.VarHandle;
+ import java.nio.ByteOrder;
+ 
  /**
   * The binding operators defined in the Binding class can be combined into argument and return value processing 'recipes'.
   *
   * The binding operators are interpreted using a stack-base interpreter. Operators can either consume operands from the
   * stack, or push them onto the stack.

@@ -362,10 +366,14 @@
  
          public Class<?> type() {
              return type;
          }
  
+         public VarHandle varHandle() {
+             return MemoryHandles.withOffset(MemoryHandles.varHandle(type, ByteOrder.nativeOrder()), offset);
+         }
+ 
          @Override
          public String toString() {
              return "Dereference{" +
                      "tag=" + tag() +
                      ", offset=" + offset +
< prev index next >