Libraryless. Click here for Pure Java version (9161L/50K).
1 | sO callWithVarargs_sentinel(O o, S methodName, O methodNotFoundSentinel, O... args) ctex { |
2 | if (o == null) null; |
3 | |
4 | if (o instanceof Class) { |
5 | Class c = (Class) o; |
6 | _MethodCache cache = callOpt_getCache(c); |
7 | |
8 | Method me = cache.findStaticMethod(methodName, args); |
9 | if (me != null) |
10 | ret invokeMethod(me, null, args); |
11 | |
12 | // try varargs |
13 | L<Method> methods = cache.cache.get(methodName); |
14 | if (methods != null) methodSearch: for (Method m : methods) { |
15 | continue unless m.isVarArgs(); |
16 | continue unless isStaticMethod(m); |
17 | O[] newArgs = massageArgsForVarArgsCall(m, args); |
18 | if (newArgs != null) |
19 | ret invokeMethod(m, null, newArgs); |
20 | } |
21 | |
22 | methodNotFoundSentinel; |
23 | } else { |
24 | Class c = o.getClass(); |
25 | _MethodCache cache = callOpt_getCache(c); |
26 | |
27 | Method me = cache.findMethod(methodName, args); |
28 | if (me != null) |
29 | ret invokeMethod(me, o, args); |
30 | |
31 | // try varargs |
32 | L<Method> methods = cache.cache.get(methodName); |
33 | if (methods != null) methodSearch: for (Method m : methods) { |
34 | continue unless m.isVarArgs(); |
35 | O[] newArgs = massageArgsForVarArgsCall(m, args); |
36 | if (newArgs != null) |
37 | ret invokeMethod(m, o, newArgs); |
38 | } |
39 | |
40 | methodNotFoundSentinel; |
41 | } |
42 | } |
Began life as a copy of #1022095
download show line numbers debug dex old transpilations
Travelled to 2 computer(s): mowyntqkapby, mqqgnosmbjvj
No comments. add comment
Snippet ID: | #1035533 |
Snippet name: | callWithVarargs_sentinel |
Eternal ID of this version: | #1035533/1 |
Text MD5: | c70da5c74eb755a7e6cbab7e74c56b6a |
Transpilation MD5: | bb7d81d4cfe321a6427f76b1ed8765a4 |
Author: | stefan |
Category: | javax |
Type: | JavaX fragment (include) |
Public (visible to everyone): | Yes |
Archived (hidden from active list): | No |
Created/modified: | 2022-06-04 09:07:06 |
Source code size: | 1314 bytes / 42 lines |
Pitched / IR pitched: | No / No |
Views / Downloads: | 165 / 222 |
Referenced in: | [show references] |