aboutsummaryrefslogtreecommitdiff
path: root/src/jdk/internal/dynalink/linker/LinkerServices.java
diff options
context:
space:
mode:
Diffstat (limited to 'src/jdk/internal/dynalink/linker/LinkerServices.java')
-rw-r--r--src/jdk/internal/dynalink/linker/LinkerServices.java9
1 files changed, 9 insertions, 0 deletions
diff --git a/src/jdk/internal/dynalink/linker/LinkerServices.java b/src/jdk/internal/dynalink/linker/LinkerServices.java
index 9e35d7f6..7fd2c042 100644
--- a/src/jdk/internal/dynalink/linker/LinkerServices.java
+++ b/src/jdk/internal/dynalink/linker/LinkerServices.java
@@ -181,6 +181,15 @@ public interface LinkerServices {
public Comparison compareConversion(Class<?> sourceType, Class<?> targetType1, Class<?> targetType2);
/**
+ * Modifies the method handle so that any parameters that can receive potentially internal language runtime objects
+ * will have a filter added on them to prevent them from escaping, potentially by wrapping them.
+ * It can also potentially add an unwrapping filter to the return value.
+ * @param target the target method handle
+ * @return a method handle with parameters and/or return type potentially filtered for wrapping and unwrapping.
+ */
+ public MethodHandle filterInternalObjects(final MethodHandle target);
+
+ /**
* If we could just use Java 8 constructs, then {@code asTypeSafeReturn} would be a method with default
* implementation. Since we can't do that, we extract common default implementations into this static class.
*/