| Modifier and Type | Class and Description |
|---|---|
| pack-priv static class | |
| pack-priv static class | |
| private static class |
| Modifier and Type | Field and Description |
|---|---|
| private static final MethodType | |
| private static final MethodType | |
| private static final MethodType | |
| private static final MethodType |
| Access | Constructor and Description |
|---|---|
| pack-priv |
| Modifier and Type | Method and Description |
|---|---|
| pack-priv static < the expected return type T> T | Returns: the expected value, either a CallSite or a constant valuethe expected return type (either CallSite or a constant type) resultType, MethodHandle the BSM to call bootstrapMethod, String the method name or constant name name, Object the method type or constant type type, Object information passed up from the JVM, to derive static arguments info, Class<?> the class containing the resolved method call or constant load callerClass)Factored code for invoking a bootstrap method for invokedynamic or a dynamic constant. |
| private static Object | invokeWithManyArguments(MethodHandle bootstrapMethod, MethodHandles.
|
| private static boolean | isLambdaMetafactoryAltMetafactoryBSM(MethodType bsmType)
Returns: true iff the BSM method type exactly matches
|
| private static boolean | isLambdaMetafactoryIndyBSM(MethodType bsmType)
Returns: true iff the BSM method type exactly matches
|
| private static boolean | isObjectMethodsBootstrapBSM(MethodType bsmType)
Returns: true iff the BSM method type exactly matches
|
| private static boolean | isStringConcatFactoryBSM(MethodType bsmType)
Returns: true iff the BSM method type exactly matches
|
| private static Object | maybeReBox(Object x)
The JVM produces java.lang.Integer values to box CONSTANT_Integer boxes but does not intern them. |
| private static void | |
| pack-priv static MethodHandle | pushMePullYou(MethodHandle bsm, boolean goToPushMode)
Given a push-mode BSM (taking one argument) convert it to a pull-mode BSM (taking N pre-resolved arguments). |
| pack-priv static <T> T | widenAndCast(Object result, Class<T> resultType)
If resultType is a reference type, do Class::cast on the result through an identity function of that type, as-type converted to return the corresponding reference wrapper type for resultType. |
| LMF_ALT_MT | back to summary |
|---|---|
| private static final MethodType LMF_ALT_MT | |
| LMF_INDY_MT | back to summary |
|---|---|
| private static final MethodType LMF_INDY_MT | |
| OBJECT_METHODS_MT | back to summary |
|---|---|
| private static final MethodType OBJECT_METHODS_MT | |
| SCF_MT | back to summary |
|---|---|
| private static final MethodType SCF_MT | |
| BootstrapMethodInvoker | back to summary |
|---|---|
| pack-priv BootstrapMethodInvoker() | |
| invoke | back to summary |
|---|---|
| pack-priv static <T> T invoke(Class<T> resultType, MethodHandle bootstrapMethod, String name, Object type, Object info, Class<?> callerClass) Factored code for invoking a bootstrap method for invokedynamic or a dynamic constant.
| |
| invokeWithManyArguments | back to summary |
|---|---|
| private static Object invokeWithManyArguments(MethodHandle bootstrapMethod, MethodHandles. | |
| isLambdaMetafactoryAltMetafactoryBSM | back to summary |
|---|---|
private static boolean isLambdaMetafactoryAltMetafactoryBSM(MethodType bsmType)
| |
| isLambdaMetafactoryIndyBSM | back to summary |
|---|---|
private static boolean isLambdaMetafactoryIndyBSM(MethodType bsmType)
| |
| isObjectMethodsBootstrapBSM | back to summary |
|---|---|
private static boolean isObjectMethodsBootstrapBSM(MethodType bsmType)
| |
| isStringConcatFactoryBSM | back to summary |
|---|---|
private static boolean isStringConcatFactoryBSM(MethodType bsmType)
| |
| maybeReBox | back to summary |
|---|---|
| private static Object maybeReBox(Object x) The JVM produces java.lang.Integer values to box
CONSTANT_Integer boxes but does not intern them.
Let's intern them. This is slightly wrong for
a | |
| maybeReBoxElements | back to summary |
|---|---|
| private static void maybeReBoxElements(Object[] xa) | |
| pushMePullYou | back to summary |
|---|---|
| pack-priv static MethodHandle pushMePullYou(MethodHandle bsm, boolean goToPushMode) Given a push-mode BSM (taking one argument) convert it to a pull-mode BSM (taking N pre-resolved arguments). This method is used when, in fact, the JVM is passing up pre-resolved arguments, but the BSM is expecting lazy stuff. Or, when goToPushMode is true, do the reverse transform. (The two transforms are exactly inverse.) | |
| widenAndCast | back to summary |
|---|---|
| pack-priv static <T> T widenAndCast(Object result, Class<T> resultType) throws Throwable If resultType is a reference type, do Class::cast on the result through
an identity function of that type, as-type converted to return
the corresponding reference wrapper type for resultType.
Works like | |
| Modifier and Type | Field and Description |
|---|---|
| pack-priv static final MethodHandle |
| Access | Constructor and Description |
|---|---|
| pack-priv |
| Modifier and Type | Method and Description |
|---|---|
| pack-priv static Object | pullFromBootstrapMethod(MethodHandle pushModeBSM, MethodHandles.
|
| MH_pullFromBootstrapMethod | back to summary |
|---|---|
| pack-priv static final MethodHandle MH_pullFromBootstrapMethod | |
| PullAdapter | back to summary |
|---|---|
| pack-priv PullAdapter() | |
| pullFromBootstrapMethod | back to summary |
|---|---|
| pack-priv static Object pullFromBootstrapMethod(MethodHandle pushModeBSM, MethodHandles. | |
| Modifier and Type | Field and Description |
|---|---|
| pack-priv static final MethodHandle |
| Access | Constructor and Description |
|---|---|
| pack-priv |
| Modifier and Type | Method and Description |
|---|---|
| pack-priv static Object | pushToBootstrapMethod(MethodHandle pullModeBSM, MethodHandles.
|
| MH_pushToBootstrapMethod | back to summary |
|---|---|
| pack-priv static final MethodHandle MH_pushToBootstrapMethod | |
| PushAdapter | back to summary |
|---|---|
| pack-priv PushAdapter() | |
| pushToBootstrapMethod | back to summary |
|---|---|
| pack-priv static Object pushToBootstrapMethod(MethodHandle pullModeBSM, MethodHandles. | |
| Modifier and Type | Field and Description |
|---|---|
| private final Class | |
| private final int[] | |
| private static final int |
| Access | Constructor and Description |
|---|---|
| pack-priv |
| Modifier and Type | Method and Description |
|---|---|
| public int | copyConstants(int start, int end, Object[] buf, int pos)
Overrides default java. Copy a sequence of constant values into a given buffer. |
| pack-priv Object | fillCache(int i)
Overrides java. hook for local subclasses |
| private void | |
| private void |
| caller | back to summary |
|---|---|
| private final Class<?> caller | |
| indexInfo | back to summary |
|---|---|
| private final int[] indexInfo | |
| MIN_PF | back to summary |
|---|---|
| private static final int MIN_PF | |
| VM_BSCI | back to summary |
|---|---|
| pack-priv VM_BSCI(MethodHandle bsm, String name, T type, MethodHandles. | |
| copyConstants | back to summary |
|---|---|
| public int copyConstants(int start, int end, Object[] buf, int pos) Overrides default java. Doc from java. Copy a sequence of constant values into a given buffer.
This is equivalent to
| |
| fillCache | back to summary |
|---|---|
| pack-priv Object fillCache(int i) Overrides java. Doc from java. hook for local subclasses
| |
| maybePrefetchIntoCache | back to summary |
|---|---|
| private void maybePrefetchIntoCache(int i, boolean bulk) | |
| prefetchIntoCache | back to summary |
|---|---|
| private void prefetchIntoCache(int i, int pfLimit) | |