< prev index next >

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

Print this page
@@ -24,10 +24,11 @@
  
  import jdk.incubator.foreign.FunctionDescriptor;
  
  import java.lang.invoke.MethodType;
  import java.util.List;
+ import java.util.stream.IntStream;
  import java.util.stream.Stream;
  
  public class CallingSequence {
      private final MethodType mt;
      private final FunctionDescriptor desc;

@@ -41,25 +42,36 @@
          this.desc = desc;
          this.returnBindings = returnBindings;
          this.argumentBindings = argumentBindings;
      }
  
-     public Stream<Binding.Move> moveBindings() {
+     public Stream<Binding.Move> argMoveBindings() {
          return argumentBindings.stream()
                  .flatMap(List::stream)
                  .filter(Binding.Move.class::isInstance)
                  .map(Binding.Move.class::cast);
      }
  
+     public Stream<Binding.Move> retMoveBindings() {
+         return returnBindings()
+             .stream()
+             .filter(Binding.Move.class::isInstance)
+             .map(Binding.Move.class::cast);
+     }
+ 
      public int argumentCount() {
          return argumentBindings.size();
      }
  
      public List<Binding> argumentBindings(int i) {
          return argumentBindings.get(i);
      }
  
+     public Stream<Binding> argumentBindings() {
+         return argumentBindings.stream().flatMap(List::stream);
+     }
+ 
      public List<Binding> returnBindings() {
          return returnBindings;
      }
  
      public String asString() {
< prev index next >