Last active
December 18, 2015 14:59
-
-
Save ztellman/5800916 to your computer and use it in GitHub Desktop.
This file contains bidirectional Unicode text that may be interpreted or compiled differently than what appears below. To review, open the file in an editor that reveals hidden Unicode characters.
Learn more about bidirectional Unicode characters
> (definterface ISubstring (subs ^String [^long start ^long len])) | |
ISubstring | |
> (deftype Substringable [^String s] ISubstring (subs [_ start len] (.substring s start len))) | |
Substringable | |
> (println (disassemble Substringable)) | |
// Compiled from NO_SOURCE_FILE (version 1.5 : 49.0, super bit) | |
public final class vertigo.bytes.Substringable implements vertigo.bytes.ISubstring, clojure.lang.IType { | |
// Field descriptor #13 Ljava/lang/Object; | |
public final java.lang.Object s; | |
// Method descriptor #11 ()V | |
// Stack: 0, Locals: 0 | |
public static {}; | |
0 return | |
Line numbers: | |
[pc: 0, line: 1] | |
// Method descriptor #15 (Ljava/lang/Object;)V | |
// Stack: 2, Locals: 2 | |
public Substringable(java.lang.Object arg0); | |
0 aload_0 | |
1 invokespecial java.lang.Object() [17] | |
4 aload_0 | |
5 aload_1 | |
6 putfield vertigo.bytes.Substringable.s : java.lang.Object [19] | |
9 return | |
Line numbers: | |
[pc: 0, line: 1] | |
// snip some stuff | |
// Method descriptor #56 (JJ)Ljava/lang/Object; | |
// Stack: 4, Locals: 5 | |
public java.lang.Object subs(long start, long arg1); | |
0 aload_0 [this] | |
1 getfield vertigo.bytes.Substringable.s : java.lang.Object [19] | |
4 checkcast java.lang.String [58] | |
7 lload_1 [start] | |
8 invokestatic clojure.lang.RT.intCast(long) : int [62] | |
11 lload_3 | |
12 invokestatic clojure.lang.RT.intCast(long) : int [62] | |
15 invokevirtual java.lang.String.substring(int, int) : java.lang.String [66] | |
18 areturn | |
Line numbers: | |
[pc: 0, line: 1] | |
[pc: 0, line: 1] | |
Local variable table: | |
[pc: 0, pc: 18] local: this index: 0 type: vertigo.bytes.Substringable | |
[pc: 0, pc: 18] local: start index: 1 type: long | |
[pc: 0, pc: 18] local: len index: 2 type: long |
Sign up for free
to join this conversation on GitHub.
Already have an account?
Sign in to comment