(Handle bsm, Object[] bsmArgs)
| 210 | 1, 21, 8 }; |
| 211 | |
| 212 | public static Handle getTargetHandle(Handle bsm, Object[] bsmArgs) { |
| 213 | if (isJavaLambdaMetafactory(bsm)) { |
| 214 | return (Handle) bsmArgs[1]; |
| 215 | } else if (isIrrelevantBsm(bsm)) { |
| 216 | return null; |
| 217 | } else { |
| 218 | Matcher.LOGGER.warn("Unknown invokedynamic bsm: {}/{}{} (tag={} iif={})", |
| 219 | bsm.getOwner(), bsm.getName(), bsm.getDesc(), bsm.getTag(), bsm.isInterface()); |
| 220 | |
| 221 | return null; |
| 222 | } |
| 223 | } |
| 224 | |
| 225 | public static boolean isJavaLambdaMetafactory(Handle bsm) { |
| 226 | return bsm.getTag() == Opcodes.H_INVOKESTATIC |
no test coverage detected