Skip to content

Instantly share code, notes, and snippets.

@amalloy
Created July 23, 2012 18:35
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 amalloy/3165293 to your computer and use it in GitHub Desktop.
Save amalloy/3165293 to your computer and use it in GitHub Desktop.
Compiled from "core.clj"
public final class ring_buffer.core.RingBuffer extends java.lang.Object implements clojure.lang.Counted,clojure.lang.IPersistentCollection,clojure.lang.IPersistentStack,clojure.lang.IObj,clojure.lang.Sequential,clojure.lang.IType{
public static final clojure.lang.Var const__0;
public static final clojure.lang.Var const__1;
public static final clojure.lang.Var const__2;
public static final clojure.lang.Var const__3;
public static final clojure.lang.Var const__4;
public static final clojure.lang.Var const__5;
public static final clojure.lang.Var const__6;
public static final clojure.lang.Var const__7;
public static final clojure.lang.Var const__8;
public static final clojure.lang.Var const__9;
public static final clojure.lang.Var const__10;
public static final java.lang.Object const__11;
public static final clojure.lang.Var const__12;
public static final clojure.lang.Var const__13;
public static final clojure.lang.Var const__14;
public static final clojure.lang.Var const__15;
public static final clojure.lang.Var const__16;
public static final clojure.lang.Var const__17;
public final long start;
public final long len;
public final java.lang.Object buf;
public final java.lang.Object meta;
public static {};
Code:
0: ldc #41; //String clojure.core
2: ldc #43; //String =
4: invokestatic #49; //Method clojure/lang/RT.var:(Ljava/lang/String;Ljava/lang/String;)Lclojure/lang/Var;
7: checkcast #51; //class clojure/lang/Var
10: putstatic #53; //Field const__0:Lclojure/lang/Var;
13: ldc #41; //String clojure.core
15: ldc #55; //String count
17: invokestatic #49; //Method clojure/lang/RT.var:(Ljava/lang/String;Ljava/lang/String;)Lclojure/lang/Var;
20: checkcast #51; //class clojure/lang/Var
23: putstatic #57; //Field const__1:Lclojure/lang/Var;
26: ldc #41; //String clojure.core
28: ldc #59; //String mod
30: invokestatic #49; //Method clojure/lang/RT.var:(Ljava/lang/String;Ljava/lang/String;)Lclojure/lang/Var;
33: checkcast #51; //class clojure/lang/Var
36: putstatic #61; //Field const__2:Lclojure/lang/Var;
39: ldc #41; //String clojure.core
41: ldc #63; //String inc
43: invokestatic #49; //Method clojure/lang/RT.var:(Ljava/lang/String;Ljava/lang/String;)Lclojure/lang/Var;
46: checkcast #51; //class clojure/lang/Var
49: putstatic #65; //Field const__3:Lclojure/lang/Var;
52: ldc #41; //String clojure.core
54: ldc #67; //String assoc
56: invokestatic #49; //Method clojure/lang/RT.var:(Ljava/lang/String;Ljava/lang/String;)Lclojure/lang/Var;
59: checkcast #51; //class clojure/lang/Var
62: putstatic #69; //Field const__4:Lclojure/lang/Var;
65: ldc #41; //String clojure.core
67: ldc #71; //String +
69: invokestatic #49; //Method clojure/lang/RT.var:(Ljava/lang/String;Ljava/lang/String;)Lclojure/lang/Var;
72: checkcast #51; //class clojure/lang/Var
75: putstatic #73; //Field const__5:Lclojure/lang/Var;
78: ldc #41; //String clojure.core
80: ldc #75; //String seq
82: invokestatic #49; //Method clojure/lang/RT.var:(Ljava/lang/String;Ljava/lang/String;)Lclojure/lang/Var;
85: checkcast #51; //class clojure/lang/Var
88: putstatic #77; //Field const__6:Lclojure/lang/Var;
91: ldc #41; //String clojure.core
93: ldc #79; //String range
95: invokestatic #49; //Method clojure/lang/RT.var:(Ljava/lang/String;Ljava/lang/String;)Lclojure/lang/Var;
98: checkcast #51; //class clojure/lang/Var
101: putstatic #81; //Field const__7:Lclojure/lang/Var;
104: ldc #41; //String clojure.core
106: ldc #83; //String nth
108: invokestatic #49; //Method clojure/lang/RT.var:(Ljava/lang/String;Ljava/lang/String;)Lclojure/lang/Var;
111: checkcast #51; //class clojure/lang/Var
114: putstatic #85; //Field const__8:Lclojure/lang/Var;
117: ldc #41; //String clojure.core
119: ldc #87; //String zero?
121: invokestatic #49; //Method clojure/lang/RT.var:(Ljava/lang/String;Ljava/lang/String;)Lclojure/lang/Var;
124: checkcast #51; //class clojure/lang/Var
127: putstatic #89; //Field const__9:Lclojure/lang/Var;
130: ldc #41; //String clojure.core
132: ldc #91; //String dec
134: invokestatic #49; //Method clojure/lang/RT.var:(Ljava/lang/String;Ljava/lang/String;)Lclojure/lang/Var;
137: checkcast #51; //class clojure/lang/Var
140: putstatic #93; //Field const__10:Lclojure/lang/Var;
143: lconst_0
144: invokestatic #99; //Method java/lang/Long.valueOf:(J)Ljava/lang/Long;
147: putstatic #101; //Field const__11:Ljava/lang/Object;
150: ldc #41; //String clojure.core
152: ldc #103; //String vec
154: invokestatic #49; //Method clojure/lang/RT.var:(Ljava/lang/String;Ljava/lang/String;)Lclojure/lang/Var;
157: checkcast #51; //class clojure/lang/Var
160: putstatic #105; //Field const__12:Lclojure/lang/Var;
163: ldc #41; //String clojure.core
165: ldc #107; //String repeat
167: invokestatic #49; //Method clojure/lang/RT.var:(Ljava/lang/String;Ljava/lang/String;)Lclojure/lang/Var;
170: checkcast #51; //class clojure/lang/Var
173: putstatic #109; //Field const__13:Lclojure/lang/Var;
176: ldc #41; //String clojure.core
178: ldc #111; //String sequential?
180: invokestatic #49; //Method clojure/lang/RT.var:(Ljava/lang/String;Ljava/lang/String;)Lclojure/lang/Var;
183: checkcast #51; //class clojure/lang/Var
186: putstatic #113; //Field const__14:Lclojure/lang/Var;
189: ldc #41; //String clojure.core
191: ldc #115; //String not
193: invokestatic #49; //Method clojure/lang/RT.var:(Ljava/lang/String;Ljava/lang/String;)Lclojure/lang/Var;
196: checkcast #51; //class clojure/lang/Var
199: putstatic #117; //Field const__15:Lclojure/lang/Var;
202: ldc #41; //String clojure.core
204: ldc #119; //String counted?
206: invokestatic #49; //Method clojure/lang/RT.var:(Ljava/lang/String;Ljava/lang/String;)Lclojure/lang/Var;
209: checkcast #51; //class clojure/lang/Var
212: putstatic #121; //Field const__16:Lclojure/lang/Var;
215: ldc #41; //String clojure.core
217: ldc #123; //String pr-str
219: invokestatic #49; //Method clojure/lang/RT.var:(Ljava/lang/String;Ljava/lang/String;)Lclojure/lang/Var;
222: checkcast #51; //class clojure/lang/Var
225: putstatic #125; //Field const__17:Lclojure/lang/Var;
228: return
LineNumberTable:
line 7: 0
public ring_buffer.core.RingBuffer(long, long, java.lang.Object, java.lang.Object);
Code:
0: aload_0
1: invokespecial #134; //Method java/lang/Object."<init>":()V
4: aload_0
5: lload_1
6: putfield #136; //Field start:J
9: aload_0
10: lload_3
11: putfield #138; //Field len:J
14: aload_0
15: aload 5
17: putfield #140; //Field buf:Ljava/lang/Object;
20: aload_0
21: aload 6
23: putfield #142; //Field meta:Ljava/lang/Object;
26: return
LineNumberTable:
line 7: 0
public static clojure.lang.IPersistentVector getBasis();
Code:
0: iconst_4
1: anewarray #4; //class java/lang/Object
4: dup
5: iconst_0
6: aconst_null
7: ldc #145; //String start
9: invokestatic #151; //Method clojure/lang/Symbol.intern:(Ljava/lang/String;Ljava/lang/String;)Lclojure/lang/Symbol;
12: checkcast #12; //class clojure/lang/IObj
15: iconst_2
16: anewarray #4; //class java/lang/Object
19: dup
20: iconst_0
21: aconst_null
22: ldc #153; //String tag
24: invokestatic #157; //Method clojure/lang/RT.keyword:(Ljava/lang/String;Ljava/lang/String;)Lclojure/lang/Keyword;
27: aastore
28: dup
29: iconst_1
30: aconst_null
31: ldc #159; //String long
33: invokestatic #151; //Method clojure/lang/Symbol.intern:(Ljava/lang/String;Ljava/lang/String;)Lclojure/lang/Symbol;
36: aastore
37: invokestatic #163; //Method clojure/lang/RT.map:([Ljava/lang/Object;)Lclojure/lang/IPersistentMap;
40: checkcast #165; //class clojure/lang/IPersistentMap
43: invokeinterface #169, 2; //InterfaceMethod clojure/lang/IObj.withMeta:(Lclojure/lang/IPersistentMap;)Lclojure/lang/IObj;
48: aastore
49: dup
50: iconst_1
51: aconst_null
52: ldc #170; //String len
54: invokestatic #151; //Method clojure/lang/Symbol.intern:(Ljava/lang/String;Ljava/lang/String;)Lclojure/lang/Symbol;
57: checkcast #12; //class clojure/lang/IObj
60: iconst_2
61: anewarray #4; //class java/lang/Object
64: dup
65: iconst_0
66: aconst_null
67: ldc #153; //String tag
69: invokestatic #157; //Method clojure/lang/RT.keyword:(Ljava/lang/String;Ljava/lang/String;)Lclojure/lang/Keyword;
72: aastore
73: dup
74: iconst_1
75: aconst_null
76: ldc #159; //String long
78: invokestatic #151; //Method clojure/lang/Symbol.intern:(Ljava/lang/String;Ljava/lang/String;)Lclojure/lang/Symbol;
81: aastore
82: invokestatic #163; //Method clojure/lang/RT.map:([Ljava/lang/Object;)Lclojure/lang/IPersistentMap;
85: checkcast #165; //class clojure/lang/IPersistentMap
88: invokeinterface #169, 2; //InterfaceMethod clojure/lang/IObj.withMeta:(Lclojure/lang/IPersistentMap;)Lclojure/lang/IObj;
93: aastore
94: dup
95: iconst_2
96: aconst_null
97: ldc #171; //String buf
99: invokestatic #151; //Method clojure/lang/Symbol.intern:(Ljava/lang/String;Ljava/lang/String;)Lclojure/lang/Symbol;
102: aastore
103: dup
104: iconst_3
105: aconst_null
106: ldc #172; //String meta
108: invokestatic #151; //Method clojure/lang/Symbol.intern:(Ljava/lang/String;Ljava/lang/String;)Lclojure/lang/Symbol;
111: aastore
112: invokestatic #176; //Method clojure/lang/RT.vector:([Ljava/lang/Object;)Lclojure/lang/IPersistentVector;
115: areturn
public int count();
Code:
0: aload_0
1: getfield #138; //Field len:J
4: invokestatic #181; //Method clojure/lang/RT.intCast:(J)I
7: ireturn
LineNumberTable:
line 7: 0
LocalVariableTable:
Start Length Slot Name Signature
0 7 0 this Lring_buffer/core/RingBuffer;
public clojure.lang.IPersistentMap meta();
Code:
0: aload_0
1: getfield #142; //Field meta:Ljava/lang/Object;
4: checkcast #165; //class clojure/lang/IPersistentMap
7: areturn
LineNumberTable:
line 7: 0
LocalVariableTable:
Start Length Slot Name Signature
0 7 0 this Lring_buffer/core/RingBuffer;
public clojure.lang.IObj withMeta(clojure.lang.IPersistentMap);
Code:
0: new #2; //class ring_buffer/core/RingBuffer
3: dup
4: aload_0
5: getfield #136; //Field start:J
8: aload_0
9: getfield #138; //Field len:J
12: aload_0
13: getfield #140; //Field buf:Ljava/lang/Object;
16: aload_1
17: aconst_null
18: astore_1
19: invokespecial #186; //Method "<init>":(JJLjava/lang/Object;Ljava/lang/Object;)V
22: checkcast #12; //class clojure/lang/IObj
25: areturn
LineNumberTable:
line 7: 0
LocalVariableTable:
Start Length Slot Name Signature
0 25 0 this Lring_buffer/core/RingBuffer;
0 25 1 m Lclojure/lang/IPersistentMap;
public java.lang.String toString();
Code:
0: getstatic #125; //Field const__17:Lclojure/lang/Var;
3: invokevirtual #194; //Method clojure/lang/Var.getRawRoot:()Ljava/lang/Object;
6: checkcast #196; //class clojure/lang/IFn
9: new #198; //class clojure/lang/LazySeq
12: dup
13: new #200; //class ring_buffer/core/RingBuffer$fn__28
16: dup
17: aload_0
18: invokespecial #203; //Method ring_buffer/core/RingBuffer$fn__28."<init>":(Ljava/lang/Object;)V
21: checkcast #196; //class clojure/lang/IFn
24: invokespecial #206; //Method clojure/lang/LazySeq."<init>":(Lclojure/lang/IFn;)V
27: invokeinterface #210, 2; //InterfaceMethod clojure/lang/IFn.invoke:(Ljava/lang/Object;)Ljava/lang/Object;
32: checkcast #212; //class java/lang/String
35: areturn
LineNumberTable:
line 7: 0
line 20: 0
LocalVariableTable:
Start Length Slot Name Signature
0 35 0 this Lring_buffer/core/RingBuffer;
public boolean equiv(java.lang.Object);
Code:
0: getstatic #113; //Field const__14:Lclojure/lang/Var;
3: invokevirtual #194; //Method clojure/lang/Var.getRawRoot:()Ljava/lang/Object;
6: checkcast #196; //class clojure/lang/IFn
9: aload_1
10: invokeinterface #210, 2; //InterfaceMethod clojure/lang/IFn.invoke:(Ljava/lang/Object;)Ljava/lang/Object;
15: astore_2
16: aload_2
17: dup
18: ifnull 169
21: getstatic #220; //Field java/lang/Boolean.FALSE:Ljava/lang/Boolean;
24: if_acmpeq 170
27: getstatic #117; //Field const__15:Lclojure/lang/Var;
30: invokevirtual #194; //Method clojure/lang/Var.getRawRoot:()Ljava/lang/Object;
33: checkcast #196; //class clojure/lang/IFn
36: getstatic #121; //Field const__16:Lclojure/lang/Var;
39: invokevirtual #194; //Method clojure/lang/Var.getRawRoot:()Ljava/lang/Object;
42: checkcast #196; //class clojure/lang/IFn
45: aload_1
46: invokeinterface #210, 2; //InterfaceMethod clojure/lang/IFn.invoke:(Ljava/lang/Object;)Ljava/lang/Object;
51: invokeinterface #210, 2; //InterfaceMethod clojure/lang/IFn.invoke:(Ljava/lang/Object;)Ljava/lang/Object;
56: astore_3
57: aload_3
58: dup
59: ifnull 74
62: getstatic #220; //Field java/lang/Boolean.FALSE:Ljava/lang/Boolean;
65: if_acmpeq 75
68: aload_3
69: aconst_null
70: astore_3
71: goto 100
74: pop
75: aload_0
76: invokestatic #223; //Method clojure/lang/RT.count:(Ljava/lang/Object;)I
79: i2l
80: aload_1
81: invokestatic #223; //Method clojure/lang/RT.count:(Ljava/lang/Object;)I
84: i2l
85: invokestatic #228; //Method clojure/lang/Util.equiv:(JJ)Z
88: ifeq 97
91: getstatic #231; //Field java/lang/Boolean.TRUE:Ljava/lang/Boolean;
94: goto 100
97: getstatic #220; //Field java/lang/Boolean.FALSE:Ljava/lang/Boolean;
100: astore_3
101: aload_3
102: dup
103: ifnull 162
106: getstatic #220; //Field java/lang/Boolean.FALSE:Ljava/lang/Boolean;
109: if_acmpeq 163
112: getstatic #77; //Field const__6:Lclojure/lang/Var;
115: invokevirtual #194; //Method clojure/lang/Var.getRawRoot:()Ljava/lang/Object;
118: checkcast #196; //class clojure/lang/IFn
121: aload_0
122: invokeinterface #210, 2; //InterfaceMethod clojure/lang/IFn.invoke:(Ljava/lang/Object;)Ljava/lang/Object;
127: getstatic #77; //Field const__6:Lclojure/lang/Var;
130: invokevirtual #194; //Method clojure/lang/Var.getRawRoot:()Ljava/lang/Object;
133: checkcast #196; //class clojure/lang/IFn
136: aload_1
137: aconst_null
138: astore_1
139: invokeinterface #210, 2; //InterfaceMethod clojure/lang/IFn.invoke:(Ljava/lang/Object;)Ljava/lang/Object;
144: invokestatic #235; //Method clojure/lang/Util.equiv:(Ljava/lang/Object;Ljava/lang/Object;)Z
147: ifeq 156
150: getstatic #231; //Field java/lang/Boolean.TRUE:Ljava/lang/Boolean;
153: goto 159
156: getstatic #220; //Field java/lang/Boolean.FALSE:Ljava/lang/Boolean;
159: goto 166
162: pop
163: aload_3
164: aconst_null
165: astore_3
166: goto 173
169: pop
170: aload_2
171: aconst_null
172: astore_2
173: checkcast #216; //class java/lang/Boolean
176: invokevirtual #241; //Method java/lang/Boolean.booleanValue:()Z
179: ireturn
LineNumberTable:
line 7: 0
line 32: 0
line 32: 16
line 33: 27
line 33: 36
line 33: 57
line 34: 75
line 34: 75
line 34: 80
line 32: 101
line 35: 112
line 35: 112
line 35: 127
LocalVariableTable:
Start Length Slot Name Signature
57 43 3 or__3824__auto__31 Ljava/lang/Object;
101 65 3 and__3822__auto__32 Ljava/lang/Object;
16 157 2 and__3822__auto__33 Ljava/lang/Object;
0 179 0 this Lring_buffer/core/RingBuffer;
0 179 1 other Ljava/lang/Object;
public clojure.lang.IPersistentCollection empty();
Code:
0: new #2; //class ring_buffer/core/RingBuffer
3: dup
4: lconst_0
5: lconst_0
6: getstatic #105; //Field const__12:Lclojure/lang/Var;
9: invokevirtual #194; //Method clojure/lang/Var.getRawRoot:()Ljava/lang/Object;
12: checkcast #196; //class clojure/lang/IFn
15: getstatic #109; //Field const__13:Lclojure/lang/Var;
18: invokevirtual #194; //Method clojure/lang/Var.getRawRoot:()Ljava/lang/Object;
21: checkcast #196; //class clojure/lang/IFn
24: aload_0
25: getfield #140; //Field buf:Ljava/lang/Object;
28: invokestatic #223; //Method clojure/lang/RT.count:(Ljava/lang/Object;)I
31: invokestatic #249; //Method java/lang/Integer.valueOf:(I)Ljava/lang/Integer;
34: aconst_null
35: invokeinterface #252, 3; //InterfaceMethod clojure/lang/IFn.invoke:(Ljava/lang/Object;Ljava/lang/Object;)Ljava/lang/Object;
40: invokeinterface #210, 2; //InterfaceMethod clojure/lang/IFn.invoke:(Ljava/lang/Object;)Ljava/lang/Object;
45: aload_0
46: getfield #142; //Field meta:Ljava/lang/Object;
49: invokespecial #186; //Method "<init>":(JJLjava/lang/Object;Ljava/lang/Object;)V
52: checkcast #8; //class clojure/lang/IPersistentCollection
55: areturn
LineNumberTable:
line 7: 0
line 30: 6
line 30: 15
line 30: 24
LocalVariableTable:
Start Length Slot Name Signature
0 55 0 this Lring_buffer/core/RingBuffer;
public clojure.lang.IPersistentStack pop();
Code:
0: aload_0
1: getfield #138; //Field len:J
4: lconst_0
5: lcmp
6: ifne 30
9: new #256; //class java/lang/IllegalStateException
12: dup
13: ldc_w #258; //String Can't pop empty queue
16: checkcast #212; //class java/lang/String
19: invokespecial #261; //Method java/lang/IllegalStateException."<init>":(Ljava/lang/String;)V
22: checkcast #263; //class java/lang/Throwable
25: athrow
26: goto 113
29: pop
30: new #2; //class ring_buffer/core/RingBuffer
33: dup
34: getstatic #61; //Field const__2:Lclojure/lang/Var;
37: invokevirtual #194; //Method clojure/lang/Var.getRawRoot:()Ljava/lang/Object;
40: checkcast #196; //class clojure/lang/IFn
43: aload_0
44: getfield #136; //Field start:J
47: invokestatic #269; //Method clojure/lang/Numbers.unchecked_inc:(J)J
50: invokestatic #273; //Method clojure/lang/Numbers.num:(J)Ljava/lang/Number;
53: aload_0
54: getfield #140; //Field buf:Ljava/lang/Object;
57: invokestatic #223; //Method clojure/lang/RT.count:(Ljava/lang/Object;)I
60: invokestatic #249; //Method java/lang/Integer.valueOf:(I)Ljava/lang/Integer;
63: invokeinterface #252, 3; //InterfaceMethod clojure/lang/IFn.invoke:(Ljava/lang/Object;Ljava/lang/Object;)Ljava/lang/Object;
68: checkcast #275; //class java/lang/Number
71: invokestatic #279; //Method clojure/lang/RT.uncheckedLongCast:(Ljava/lang/Object;)J
74: aload_0
75: getfield #138; //Field len:J
78: lconst_1
79: lsub
80: getstatic #69; //Field const__4:Lclojure/lang/Var;
83: invokevirtual #194; //Method clojure/lang/Var.getRawRoot:()Ljava/lang/Object;
86: checkcast #196; //class clojure/lang/IFn
89: aload_0
90: getfield #140; //Field buf:Ljava/lang/Object;
93: aload_0
94: getfield #136; //Field start:J
97: invokestatic #273; //Method clojure/lang/Numbers.num:(J)Ljava/lang/Number;
100: aconst_null
101: invokeinterface #282, 4; //InterfaceMethod clojure/lang/IFn.invoke:(Ljava/lang/Object;Ljava/lang/Object;Ljava/lang/Object;)Ljava/lang/Object;
106: aload_0
107: getfield #142; //Field meta:Ljava/lang/Object;
110: invokespecial #186; //Method "<init>":(JJLjava/lang/Object;Ljava/lang/Object;)V
113: checkcast #10; //class clojure/lang/IPersistentStack
116: areturn
LineNumberTable:
line 7: 0
line 26: 0
line 26: 0
line 28: 34
line 28: 43
line 28: 53
line 28: 74
line 28: 80
LocalVariableTable:
Start Length Slot Name Signature
0 116 0 this Lring_buffer/core/RingBuffer;
public java.lang.Object peek();
Code:
0: aload_0
1: getfield #140; //Field buf:Ljava/lang/Object;
4: getstatic #61; //Field const__2:Lclojure/lang/Var;
7: invokevirtual #194; //Method clojure/lang/Var.getRawRoot:()Ljava/lang/Object;
10: checkcast #196; //class clojure/lang/IFn
13: aload_0
14: getfield #136; //Field start:J
17: invokestatic #273; //Method clojure/lang/Numbers.num:(J)Ljava/lang/Number;
20: aload_0
21: getfield #140; //Field buf:Ljava/lang/Object;
24: invokestatic #223; //Method clojure/lang/RT.count:(Ljava/lang/Object;)I
27: invokestatic #249; //Method java/lang/Integer.valueOf:(I)Ljava/lang/Integer;
30: invokeinterface #252, 3; //InterfaceMethod clojure/lang/IFn.invoke:(Ljava/lang/Object;Ljava/lang/Object;)Ljava/lang/Object;
35: checkcast #275; //class java/lang/Number
38: invokestatic #286; //Method clojure/lang/RT.uncheckedIntCast:(Ljava/lang/Object;)I
41: invokestatic #289; //Method clojure/lang/RT.nth:(Ljava/lang/Object;I)Ljava/lang/Object;
44: areturn
LineNumberTable:
line 7: 0
line 24: 0
line 24: 4
line 24: 20
LocalVariableTable:
Start Length Slot Name Signature
0 44 0 this Lring_buffer/core/RingBuffer;
public clojure.lang.ISeq seq();
Code:
0: getstatic #77; //Field const__6:Lclojure/lang/Var;
3: invokevirtual #194; //Method clojure/lang/Var.getRawRoot:()Ljava/lang/Object;
6: checkcast #196; //class clojure/lang/IFn
9: new #292; //class ring_buffer/core/RingBuffer$iter__15__19
12: dup
13: aload_0
14: getfield #136; //Field start:J
17: aload_0
18: getfield #140; //Field buf:Ljava/lang/Object;
21: invokespecial #295; //Method ring_buffer/core/RingBuffer$iter__15__19."<init>":(JLjava/lang/Object;)V
24: astore_1
25: aload_1
26: aconst_null
27: astore_1
28: checkcast #196; //class clojure/lang/IFn
31: getstatic #81; //Field const__7:Lclojure/lang/Var;
34: invokevirtual #194; //Method clojure/lang/Var.getRawRoot:()Ljava/lang/Object;
37: checkcast #196; //class clojure/lang/IFn
40: aload_0
41: getfield #138; //Field len:J
44: invokestatic #273; //Method clojure/lang/Numbers.num:(J)Ljava/lang/Number;
47: invokeinterface #210, 2; //InterfaceMethod clojure/lang/IFn.invoke:(Ljava/lang/Object;)Ljava/lang/Object;
52: invokeinterface #210, 2; //InterfaceMethod clojure/lang/IFn.invoke:(Ljava/lang/Object;)Ljava/lang/Object;
57: invokeinterface #210, 2; //InterfaceMethod clojure/lang/IFn.invoke:(Ljava/lang/Object;)Ljava/lang/Object;
62: checkcast #298; //class clojure/lang/ISeq
65: areturn
LineNumberTable:
line 7: 0
line 43: 0
line 43: 25
line 43: 31
LocalVariableTable:
Start Length Slot Name Signature
25 32 1 iter__4468__auto__34 Ljava/lang/Object;
0 65 0 this Lring_buffer/core/RingBuffer;
public clojure.lang.IPersistentCollection cons(java.lang.Object);
Code:
0: aload_0
1: getfield #138; //Field len:J
4: aload_0
5: getfield #140; //Field buf:Ljava/lang/Object;
8: invokestatic #223; //Method clojure/lang/RT.count:(Ljava/lang/Object;)I
11: i2l
12: lcmp
13: ifne 100
16: new #2; //class ring_buffer/core/RingBuffer
19: dup
20: getstatic #61; //Field const__2:Lclojure/lang/Var;
23: invokevirtual #194; //Method clojure/lang/Var.getRawRoot:()Ljava/lang/Object;
26: checkcast #196; //class clojure/lang/IFn
29: aload_0
30: getfield #136; //Field start:J
33: invokestatic #269; //Method clojure/lang/Numbers.unchecked_inc:(J)J
36: invokestatic #273; //Method clojure/lang/Numbers.num:(J)Ljava/lang/Number;
39: aload_0
40: getfield #138; //Field len:J
43: invokestatic #273; //Method clojure/lang/Numbers.num:(J)Ljava/lang/Number;
46: invokeinterface #252, 3; //InterfaceMethod clojure/lang/IFn.invoke:(Ljava/lang/Object;Ljava/lang/Object;)Ljava/lang/Object;
51: checkcast #275; //class java/lang/Number
54: invokestatic #279; //Method clojure/lang/RT.uncheckedLongCast:(Ljava/lang/Object;)J
57: aload_0
58: getfield #138; //Field len:J
61: getstatic #69; //Field const__4:Lclojure/lang/Var;
64: invokevirtual #194; //Method clojure/lang/Var.getRawRoot:()Ljava/lang/Object;
67: checkcast #196; //class clojure/lang/IFn
70: aload_0
71: getfield #140; //Field buf:Ljava/lang/Object;
74: aload_0
75: getfield #136; //Field start:J
78: invokestatic #273; //Method clojure/lang/Numbers.num:(J)Ljava/lang/Number;
81: aload_1
82: aconst_null
83: astore_1
84: invokeinterface #282, 4; //InterfaceMethod clojure/lang/IFn.invoke:(Ljava/lang/Object;Ljava/lang/Object;Ljava/lang/Object;)Ljava/lang/Object;
89: aload_0
90: getfield #142; //Field meta:Ljava/lang/Object;
93: invokespecial #186; //Method "<init>":(JJLjava/lang/Object;Ljava/lang/Object;)V
96: goto 180
99: pop
100: new #2; //class ring_buffer/core/RingBuffer
103: dup
104: aload_0
105: getfield #136; //Field start:J
108: aload_0
109: getfield #138; //Field len:J
112: lconst_1
113: ladd
114: getstatic #69; //Field const__4:Lclojure/lang/Var;
117: invokevirtual #194; //Method clojure/lang/Var.getRawRoot:()Ljava/lang/Object;
120: checkcast #196; //class clojure/lang/IFn
123: aload_0
124: getfield #140; //Field buf:Ljava/lang/Object;
127: getstatic #61; //Field const__2:Lclojure/lang/Var;
130: invokevirtual #194; //Method clojure/lang/Var.getRawRoot:()Ljava/lang/Object;
133: checkcast #196; //class clojure/lang/IFn
136: aload_0
137: getfield #136; //Field start:J
140: aload_0
141: getfield #138; //Field len:J
144: invokestatic #304; //Method clojure/lang/Numbers.unchecked_add:(JJ)J
147: invokestatic #273; //Method clojure/lang/Numbers.num:(J)Ljava/lang/Number;
150: aload_0
151: getfield #140; //Field buf:Ljava/lang/Object;
154: invokestatic #223; //Method clojure/lang/RT.count:(Ljava/lang/Object;)I
157: invokestatic #249; //Method java/lang/Integer.valueOf:(I)Ljava/lang/Integer;
160: invokeinterface #252, 3; //InterfaceMethod clojure/lang/IFn.invoke:(Ljava/lang/Object;Ljava/lang/Object;)Ljava/lang/Object;
165: aload_1
166: aconst_null
167: astore_1
168: invokeinterface #282, 4; //InterfaceMethod clojure/lang/IFn.invoke:(Ljava/lang/Object;Ljava/lang/Object;Ljava/lang/Object;)Ljava/lang/Object;
173: aload_0
174: getfield #142; //Field meta:Ljava/lang/Object;
177: invokespecial #186; //Method "<init>":(JJLjava/lang/Object;Ljava/lang/Object;)V
180: checkcast #8; //class clojure/lang/IPersistentCollection
183: areturn
LineNumberTable:
line 7: 0
line 39: 0
line 39: 0
line 39: 4
line 40: 20
line 40: 29
line 40: 61
line 41: 108
line 41: 114
line 41: 127
line 41: 136
line 41: 150
LocalVariableTable:
Start Length Slot Name Signature
0 183 0 this Lring_buffer/core/RingBuffer;
0 183 1 x Ljava/lang/Object;
}
Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment