Skip to content

Instantly share code, notes, and snippets.

@overthink
Created April 30, 2015 19:56
Show Gist options
  • Star 0 You must be signed in to star a gist
  • Fork 0 You must be signed in to fork a gist
  • Save overthink/c7efe144abbd23524004 to your computer and use it in GitHub Desktop.
Save overthink/c7efe144abbd23524004 to your computer and use it in GitHub Desktop.
Bytecode for Using.apply()
public <A extends java/lang/Object, B extends java/lang/Object> B apply(A, scala.Function1<A, B>);
flags: ACC_PUBLIC
Code:
stack=3, locals=7, args_size=3
0: aload_2
1: aload_1
2: invokeinterface #77, 2 // InterfaceMethod scala/Function1.apply:(Ljava/lang/Object;)Ljava/lang/Object;
7: astore_3
8: aload_1
9: ifnull 37
12: aload_1
13: astore 5
15: aload 5
17: invokevirtual #81 // Method java/lang/Object.getClass:()Ljava/lang/Class;
20: invokestatic #83 // Method reflMethod$Method1:(Ljava/lang/Class;)Ljava/lang/reflect/Method;
23: aload 5
25: iconst_0
26: anewarray #4 // class java/lang/Object
29: invokevirtual #87 // Method java/lang/reflect/Method.invoke:(Ljava/lang/Object;[Ljava/lang/Object;)Ljava/lang/Object;
32: pop
33: getstatic #93 // Field scala/runtime/BoxedUnit.UNIT:Lscala/runtime/BoxedUnit;
36: pop
37: aload_3
38: areturn
39: astore 4
41: aload_1
42: ifnull 70
45: aload_1
46: astore 5
48: aload 5
50: invokevirtual #81 // Method java/lang/Object.getClass:()Ljava/lang/Class;
53: invokestatic #83 // Method reflMethod$Method1:(Ljava/lang/Class;)Ljava/lang/reflect/Method;
56: aload 5
58: iconst_0
59: anewarray #4 // class java/lang/Object
62: invokevirtual #87 // Method java/lang/reflect/Method.invoke:(Ljava/lang/Object;[Ljava/lang/Object;)Ljava/lang/Object;
65: pop
66: getstatic #93 // Field scala/runtime/BoxedUnit.UNIT:Lscala/runtime/BoxedUnit;
69: pop
70: aload 4
72: athrow
73: astore 6
75: aload 6
77: invokevirtual #97 // Method java/lang/reflect/InvocationTargetException.getCause:()Ljava/lang/Throwable;
80: athrow
81: astore 6
83: aload 6
85: invokevirtual #97 // Method java/lang/reflect/InvocationTargetException.getCause:()Ljava/lang/Throwable;
88: athrow
Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment