final class com.sun.java.util.jar.pack.Histogram
minor version: 0
major version: 59
flags: flags: (0x0030) ACC_FINAL, ACC_SUPER
this_class: com.sun.java.util.jar.pack.Histogram
super_class: java.lang.Object
{
protected final int[][] matrix;
descriptor: [[I
flags: (0x0014) ACC_PROTECTED, ACC_FINAL
protected final int totalWeight;
descriptor: I
flags: (0x0014) ACC_PROTECTED, ACC_FINAL
protected final int[] values;
descriptor: [I
flags: (0x0014) ACC_PROTECTED, ACC_FINAL
protected final int[] counts;
descriptor: [I
flags: (0x0014) ACC_PROTECTED, ACC_FINAL
private static final long LOW32;
descriptor: J
flags: (0x001a) ACC_PRIVATE, ACC_STATIC, ACC_FINAL
ConstantValue: 4294967295
private static double log2;
descriptor: D
flags: (0x000a) ACC_PRIVATE, ACC_STATIC
private final com.sun.java.util.jar.pack.Histogram$BitMetric bitMetric;
descriptor: Lcom/sun/java/util/jar/pack/Histogram$BitMetric;
flags: (0x0012) ACC_PRIVATE, ACC_FINAL
static final boolean $assertionsDisabled;
descriptor: Z
flags: (0x1018) ACC_STATIC, ACC_FINAL, ACC_SYNTHETIC
static void <clinit>();
descriptor: ()V
flags: (0x0008) ACC_STATIC
Code:
stack=2, locals=0, args_size=0
0: .line 37
ldc Lcom/sun/java/util/jar/pack/Histogram;
invokevirtual java.lang.Class.desiredAssertionStatus:()Z
ifne 1
iconst_1
goto 2
StackMap locals:
StackMap stack:
1: iconst_0
StackMap locals:
StackMap stack: int
2: putstatic com.sun.java.util.jar.pack.Histogram.$assertionsDisabled:Z
3: .line 163
ldc 2.0
invokestatic java.lang.Math.log:(D)D
putstatic com.sun.java.util.jar.pack.Histogram.log2:D
return
LocalVariableTable:
Start End Slot Name Signature
public void <init>(int[]);
descriptor: ([I)V
flags: (0x0001) ACC_PUBLIC
Code:
stack=4, locals=4, args_size=2
start local 0 // com.sun.java.util.jar.pack.Histogram this
start local 1 // int[] valueSequence
0: .line 54
aload 0 /* this */
invokespecial java.lang.Object.<init>:()V
1: .line 189
aload 0 /* this */
new com.sun.java.util.jar.pack.Histogram$1
dup
aload 0 /* this */
invokespecial com.sun.java.util.jar.pack.Histogram$1.<init>:(Lcom/sun/java/util/jar/pack/Histogram;)V
putfield com.sun.java.util.jar.pack.Histogram.bitMetric:Lcom/sun/java/util/jar/pack/Histogram$BitMetric;
2: .line 55
aload 1 /* valueSequence */
invokestatic com.sun.java.util.jar.pack.Histogram.maybeSort:([I)[I
invokestatic com.sun.java.util.jar.pack.Histogram.computeHistogram2Col:([I)[J
astore 2 /* hist2col */
start local 2 // long[] hist2col
3: .line 56
aload 2 /* hist2col */
invokestatic com.sun.java.util.jar.pack.Histogram.makeTable:([J)[[I
astore 3 /* table */
start local 3 // int[][] table
4: .line 57
aload 0 /* this */
aload 3 /* table */
iconst_0
aaload
putfield com.sun.java.util.jar.pack.Histogram.values:[I
5: .line 58
aload 0 /* this */
aload 3 /* table */
iconst_1
aaload
putfield com.sun.java.util.jar.pack.Histogram.counts:[I
6: .line 59
aload 0 /* this */
aload 2 /* hist2col */
invokestatic com.sun.java.util.jar.pack.Histogram.makeMatrix:([J)[[I
putfield com.sun.java.util.jar.pack.Histogram.matrix:[[I
7: .line 60
aload 0 /* this */
aload 1 /* valueSequence */
arraylength
putfield com.sun.java.util.jar.pack.Histogram.totalWeight:I
8: .line 61
getstatic com.sun.java.util.jar.pack.Histogram.$assertionsDisabled:Z
ifne 9
aload 0 /* this */
aload 1 /* valueSequence */
invokevirtual com.sun.java.util.jar.pack.Histogram.assertWellFormed:([I)Z
ifne 9
new java.lang.AssertionError
dup
invokespecial java.lang.AssertionError.<init>:()V
athrow
9: .line 62
StackMap locals: com.sun.java.util.jar.pack.Histogram int[] long[] int[][]
StackMap stack:
return
end local 3 // int[][] table
end local 2 // long[] hist2col
end local 1 // int[] valueSequence
end local 0 // com.sun.java.util.jar.pack.Histogram this
LocalVariableTable:
Start End Slot Name Signature
0 10 0 this Lcom/sun/java/util/jar/pack/Histogram;
0 10 1 valueSequence [I
3 10 2 hist2col [J
4 10 3 table [[I
MethodParameters:
Name Flags
valueSequence
public void <init>(int[], int, int);
descriptor: ([III)V
flags: (0x0001) ACC_PUBLIC
Code:
stack=4, locals=4, args_size=4
start local 0 // com.sun.java.util.jar.pack.Histogram this
start local 1 // int[] valueSequence
start local 2 // int start
start local 3 // int end
0: .line 65
aload 0 /* this */
aload 1 /* valueSequence */
iload 2 /* start */
iload 3 /* end */
invokestatic com.sun.java.util.jar.pack.Histogram.sortedSlice:([III)[I
invokespecial com.sun.java.util.jar.pack.Histogram.<init>:([I)V
1: .line 66
return
end local 3 // int end
end local 2 // int start
end local 1 // int[] valueSequence
end local 0 // com.sun.java.util.jar.pack.Histogram this
LocalVariableTable:
Start End Slot Name Signature
0 2 0 this Lcom/sun/java/util/jar/pack/Histogram;
0 2 1 valueSequence [I
0 2 2 start I
0 2 3 end I
MethodParameters:
Name Flags
valueSequence
start
end
public void <init>(int[][]);
descriptor: ([[I)V
flags: (0x0001) ACC_PUBLIC
Code:
stack=8, locals=8, args_size=2
start local 0 // com.sun.java.util.jar.pack.Histogram this
start local 1 // int[][] matrix
0: .line 70
aload 0 /* this */
invokespecial java.lang.Object.<init>:()V
1: .line 189
aload 0 /* this */
new com.sun.java.util.jar.pack.Histogram$1
dup
aload 0 /* this */
invokespecial com.sun.java.util.jar.pack.Histogram$1.<init>:(Lcom/sun/java/util/jar/pack/Histogram;)V
putfield com.sun.java.util.jar.pack.Histogram.bitMetric:Lcom/sun/java/util/jar/pack/Histogram$BitMetric;
2: .line 72
aload 0 /* this */
aload 1 /* matrix */
invokevirtual com.sun.java.util.jar.pack.Histogram.normalizeMatrix:([[I)[[I
astore 1 /* matrix */
3: .line 73
aload 0 /* this */
aload 1 /* matrix */
putfield com.sun.java.util.jar.pack.Histogram.matrix:[[I
4: .line 74
iconst_0
istore 2 /* length */
start local 2 // int length
5: .line 75
iconst_0
istore 3 /* weight */
start local 3 // int weight
6: .line 76
iconst_0
istore 4 /* i */
start local 4 // int i
7: goto 12
8: .line 77
StackMap locals: com.sun.java.util.jar.pack.Histogram int[][] int int int
StackMap stack:
aload 1 /* matrix */
iload 4 /* i */
aaload
arraylength
iconst_1
isub
istore 5 /* rowLength */
start local 5 // int rowLength
9: .line 78
iload 2 /* length */
iload 5 /* rowLength */
iadd
istore 2 /* length */
10: .line 79
iload 3 /* weight */
aload 1 /* matrix */
iload 4 /* i */
aaload
iconst_0
iaload
iload 5 /* rowLength */
imul
iadd
istore 3 /* weight */
end local 5 // int rowLength
11: .line 76
iinc 4 /* i */ 1
StackMap locals:
StackMap stack:
12: iload 4 /* i */
aload 1 /* matrix */
arraylength
if_icmplt 8
end local 4 // int i
13: .line 81
aload 0 /* this */
iload 3 /* weight */
putfield com.sun.java.util.jar.pack.Histogram.totalWeight:I
14: .line 82
iload 2 /* length */
newarray 11
astore 4 /* hist2col */
start local 4 // long[] hist2col
15: .line 83
iconst_0
istore 5 /* fillp */
start local 5 // int fillp
16: .line 84
iconst_0
istore 6 /* i */
start local 6 // int i
17: goto 26
18: .line 85
StackMap locals: com.sun.java.util.jar.pack.Histogram int[][] int int long[] int int
StackMap stack:
iconst_1
istore 7 /* j */
start local 7 // int j
19: goto 24
20: .line 87
StackMap locals: int
StackMap stack:
aload 4 /* hist2col */
iload 5 /* fillp */
iinc 5 /* fillp */ 1
aload 1 /* matrix */
iload 6 /* i */
aaload
iload 7 /* j */
iaload
i2l
bipush 32
lshl
21: .line 88
ldc 4294967295
aload 1 /* matrix */
iload 6 /* i */
aaload
iconst_0
iaload
i2l
land
lor
22: .line 87
lastore
23: .line 85
iinc 7 /* j */ 1
StackMap locals:
StackMap stack:
24: iload 7 /* j */
aload 1 /* matrix */
iload 6 /* i */
aaload
arraylength
if_icmplt 20
end local 7 // int j
25: .line 84
iinc 6 /* i */ 1
StackMap locals:
StackMap stack:
26: iload 6 /* i */
aload 1 /* matrix */
arraylength
if_icmplt 18
end local 6 // int i
27: .line 91
getstatic com.sun.java.util.jar.pack.Histogram.$assertionsDisabled:Z
ifne 28
iload 5 /* fillp */
aload 4 /* hist2col */
arraylength
if_icmpeq 28
new java.lang.AssertionError
dup
invokespecial java.lang.AssertionError.<init>:()V
athrow
28: .line 92
StackMap locals:
StackMap stack:
aload 4 /* hist2col */
invokestatic java.util.Arrays.sort:([J)V
29: .line 93
aload 4 /* hist2col */
invokestatic com.sun.java.util.jar.pack.Histogram.makeTable:([J)[[I
astore 6 /* table */
start local 6 // int[][] table
30: .line 94
aload 0 /* this */
aload 6 /* table */
iconst_1
aaload
putfield com.sun.java.util.jar.pack.Histogram.values:[I
31: .line 95
aload 0 /* this */
aload 6 /* table */
iconst_0
aaload
putfield com.sun.java.util.jar.pack.Histogram.counts:[I
32: .line 96
getstatic com.sun.java.util.jar.pack.Histogram.$assertionsDisabled:Z
ifne 33
aload 0 /* this */
aconst_null
invokevirtual com.sun.java.util.jar.pack.Histogram.assertWellFormed:([I)Z
ifne 33
new java.lang.AssertionError
dup
invokespecial java.lang.AssertionError.<init>:()V
athrow
33: .line 97
StackMap locals: int[][]
StackMap stack:
return
end local 6 // int[][] table
end local 5 // int fillp
end local 4 // long[] hist2col
end local 3 // int weight
end local 2 // int length
end local 1 // int[][] matrix
end local 0 // com.sun.java.util.jar.pack.Histogram this
LocalVariableTable:
Start End Slot Name Signature
0 34 0 this Lcom/sun/java/util/jar/pack/Histogram;
0 34 1 matrix [[I
5 34 2 length I
6 34 3 weight I
7 13 4 i I
9 11 5 rowLength I
15 34 4 hist2col [J
16 34 5 fillp I
17 27 6 i I
19 25 7 j I
30 34 6 table [[I
MethodParameters:
Name Flags
matrix
public int[][] getMatrix();
descriptor: ()[[I
flags: (0x0001) ACC_PUBLIC
Code:
stack=1, locals=1, args_size=1
start local 0 // com.sun.java.util.jar.pack.Histogram this
0: .line 119
aload 0 /* this */
getfield com.sun.java.util.jar.pack.Histogram.matrix:[[I
areturn
end local 0 // com.sun.java.util.jar.pack.Histogram this
LocalVariableTable:
Start End Slot Name Signature
0 1 0 this Lcom/sun/java/util/jar/pack/Histogram;
public int getRowCount();
descriptor: ()I
flags: (0x0001) ACC_PUBLIC
Code:
stack=1, locals=1, args_size=1
start local 0 // com.sun.java.util.jar.pack.Histogram this
0: .line 122
aload 0 /* this */
getfield com.sun.java.util.jar.pack.Histogram.matrix:[[I
arraylength
ireturn
end local 0 // com.sun.java.util.jar.pack.Histogram this
LocalVariableTable:
Start End Slot Name Signature
0 1 0 this Lcom/sun/java/util/jar/pack/Histogram;
public int getRowFrequency(int);
descriptor: (I)I
flags: (0x0001) ACC_PUBLIC
Code:
stack=2, locals=2, args_size=2
start local 0 // com.sun.java.util.jar.pack.Histogram this
start local 1 // int rn
0: .line 125
aload 0 /* this */
getfield com.sun.java.util.jar.pack.Histogram.matrix:[[I
iload 1 /* rn */
aaload
iconst_0
iaload
ireturn
end local 1 // int rn
end local 0 // com.sun.java.util.jar.pack.Histogram this
LocalVariableTable:
Start End Slot Name Signature
0 1 0 this Lcom/sun/java/util/jar/pack/Histogram;
0 1 1 rn I
MethodParameters:
Name Flags
rn
public int getRowLength(int);
descriptor: (I)I
flags: (0x0001) ACC_PUBLIC
Code:
stack=2, locals=2, args_size=2
start local 0 // com.sun.java.util.jar.pack.Histogram this
start local 1 // int rn
0: .line 128
aload 0 /* this */
getfield com.sun.java.util.jar.pack.Histogram.matrix:[[I
iload 1 /* rn */
aaload
arraylength
iconst_1
isub
ireturn
end local 1 // int rn
end local 0 // com.sun.java.util.jar.pack.Histogram this
LocalVariableTable:
Start End Slot Name Signature
0 1 0 this Lcom/sun/java/util/jar/pack/Histogram;
0 1 1 rn I
MethodParameters:
Name Flags
rn
public int getRowValue(int, int);
descriptor: (II)I
flags: (0x0001) ACC_PUBLIC
Code:
stack=3, locals=3, args_size=3
start local 0 // com.sun.java.util.jar.pack.Histogram this
start local 1 // int rn
start local 2 // int vn
0: .line 131
aload 0 /* this */
getfield com.sun.java.util.jar.pack.Histogram.matrix:[[I
iload 1 /* rn */
aaload
iload 2 /* vn */
iconst_1
iadd
iaload
ireturn
end local 2 // int vn
end local 1 // int rn
end local 0 // com.sun.java.util.jar.pack.Histogram this
LocalVariableTable:
Start End Slot Name Signature
0 1 0 this Lcom/sun/java/util/jar/pack/Histogram;
0 1 1 rn I
0 1 2 vn I
MethodParameters:
Name Flags
rn
vn
public int getRowWeight(int);
descriptor: (I)I
flags: (0x0001) ACC_PUBLIC
Code:
stack=3, locals=2, args_size=2
start local 0 // com.sun.java.util.jar.pack.Histogram this
start local 1 // int rn
0: .line 135
aload 0 /* this */
iload 1 /* rn */
invokevirtual com.sun.java.util.jar.pack.Histogram.getRowFrequency:(I)I
aload 0 /* this */
iload 1 /* rn */
invokevirtual com.sun.java.util.jar.pack.Histogram.getRowLength:(I)I
imul
ireturn
end local 1 // int rn
end local 0 // com.sun.java.util.jar.pack.Histogram this
LocalVariableTable:
Start End Slot Name Signature
0 1 0 this Lcom/sun/java/util/jar/pack/Histogram;
0 1 1 rn I
MethodParameters:
Name Flags
rn
public int getTotalWeight();
descriptor: ()I
flags: (0x0001) ACC_PUBLIC
Code:
stack=1, locals=1, args_size=1
start local 0 // com.sun.java.util.jar.pack.Histogram this
0: .line 140
aload 0 /* this */
getfield com.sun.java.util.jar.pack.Histogram.totalWeight:I
ireturn
end local 0 // com.sun.java.util.jar.pack.Histogram this
LocalVariableTable:
Start End Slot Name Signature
0 1 0 this Lcom/sun/java/util/jar/pack/Histogram;
public int getTotalLength();
descriptor: ()I
flags: (0x0001) ACC_PUBLIC
Code:
stack=1, locals=1, args_size=1
start local 0 // com.sun.java.util.jar.pack.Histogram this
0: .line 145
aload 0 /* this */
getfield com.sun.java.util.jar.pack.Histogram.values:[I
arraylength
ireturn
end local 0 // com.sun.java.util.jar.pack.Histogram this
LocalVariableTable:
Start End Slot Name Signature
0 1 0 this Lcom/sun/java/util/jar/pack/Histogram;
public int[] getAllValues();
descriptor: ()[I
flags: (0x0001) ACC_PUBLIC
Code:
stack=1, locals=1, args_size=1
start local 0 // com.sun.java.util.jar.pack.Histogram this
0: .line 152
aload 0 /* this */
getfield com.sun.java.util.jar.pack.Histogram.values:[I
areturn
end local 0 // com.sun.java.util.jar.pack.Histogram this
LocalVariableTable:
Start End Slot Name Signature
0 1 0 this Lcom/sun/java/util/jar/pack/Histogram;
public int[] getAllFrequencies();
descriptor: ()[I
flags: (0x0001) ACC_PUBLIC
Code:
stack=1, locals=1, args_size=1
start local 0 // com.sun.java.util.jar.pack.Histogram this
0: .line 160
aload 0 /* this */
getfield com.sun.java.util.jar.pack.Histogram.counts:[I
areturn
end local 0 // com.sun.java.util.jar.pack.Histogram this
LocalVariableTable:
Start End Slot Name Signature
0 1 0 this Lcom/sun/java/util/jar/pack/Histogram;
public int getFrequency(int);
descriptor: (I)I
flags: (0x0001) ACC_PUBLIC
Code:
stack=2, locals=3, args_size=2
start local 0 // com.sun.java.util.jar.pack.Histogram this
start local 1 // int value
0: .line 167
aload 0 /* this */
getfield com.sun.java.util.jar.pack.Histogram.values:[I
iload 1 /* value */
invokestatic java.util.Arrays.binarySearch:([II)I
istore 2 /* pos */
start local 2 // int pos
1: .line 168
iload 2 /* pos */
ifge 2
iconst_0
ireturn
2: .line 169
StackMap locals: int
StackMap stack:
getstatic com.sun.java.util.jar.pack.Histogram.$assertionsDisabled:Z
ifne 3
aload 0 /* this */
getfield com.sun.java.util.jar.pack.Histogram.values:[I
iload 2 /* pos */
iaload
iload 1 /* value */
if_icmpeq 3
new java.lang.AssertionError
dup
invokespecial java.lang.AssertionError.<init>:()V
athrow
3: .line 170
StackMap locals:
StackMap stack:
aload 0 /* this */
getfield com.sun.java.util.jar.pack.Histogram.counts:[I
iload 2 /* pos */
iaload
ireturn
end local 2 // int pos
end local 1 // int value
end local 0 // com.sun.java.util.jar.pack.Histogram this
LocalVariableTable:
Start End Slot Name Signature
0 4 0 this Lcom/sun/java/util/jar/pack/Histogram;
0 4 1 value I
1 4 2 pos I
MethodParameters:
Name Flags
value
public double getBitLength(int);
descriptor: (I)D
flags: (0x0001) ACC_PUBLIC
Code:
stack=4, locals=4, args_size=2
start local 0 // com.sun.java.util.jar.pack.Histogram this
start local 1 // int value
0: .line 175
aload 0 /* this */
iload 1 /* value */
invokevirtual com.sun.java.util.jar.pack.Histogram.getFrequency:(I)I
i2d
aload 0 /* this */
invokevirtual com.sun.java.util.jar.pack.Histogram.getTotalWeight:()I
i2d
ddiv
dstore 2 /* prob */
start local 2 // double prob
1: .line 176
dload 2 /* prob */
invokestatic java.lang.Math.log:(D)D
dneg
getstatic com.sun.java.util.jar.pack.Histogram.log2:D
ddiv
dreturn
end local 2 // double prob
end local 1 // int value
end local 0 // com.sun.java.util.jar.pack.Histogram this
LocalVariableTable:
Start End Slot Name Signature
0 2 0 this Lcom/sun/java/util/jar/pack/Histogram;
0 2 1 value I
1 2 2 prob D
MethodParameters:
Name Flags
value
public double getRowBitLength(int);
descriptor: (I)D
flags: (0x0001) ACC_PUBLIC
Code:
stack=4, locals=4, args_size=2
start local 0 // com.sun.java.util.jar.pack.Histogram this
start local 1 // int rn
0: .line 181
aload 0 /* this */
iload 1 /* rn */
invokevirtual com.sun.java.util.jar.pack.Histogram.getRowFrequency:(I)I
i2d
aload 0 /* this */
invokevirtual com.sun.java.util.jar.pack.Histogram.getTotalWeight:()I
i2d
ddiv
dstore 2 /* prob */
start local 2 // double prob
1: .line 182
dload 2 /* prob */
invokestatic java.lang.Math.log:(D)D
dneg
getstatic com.sun.java.util.jar.pack.Histogram.log2:D
ddiv
dreturn
end local 2 // double prob
end local 1 // int rn
end local 0 // com.sun.java.util.jar.pack.Histogram this
LocalVariableTable:
Start End Slot Name Signature
0 2 0 this Lcom/sun/java/util/jar/pack/Histogram;
0 2 1 rn I
1 2 2 prob D
MethodParameters:
Name Flags
rn
public com.sun.java.util.jar.pack.Histogram$BitMetric getBitMetric();
descriptor: ()Lcom/sun/java/util/jar/pack/Histogram$BitMetric;
flags: (0x0001) ACC_PUBLIC
Code:
stack=1, locals=1, args_size=1
start local 0 // com.sun.java.util.jar.pack.Histogram this
0: .line 195
aload 0 /* this */
getfield com.sun.java.util.jar.pack.Histogram.bitMetric:Lcom/sun/java/util/jar/pack/Histogram$BitMetric;
areturn
end local 0 // com.sun.java.util.jar.pack.Histogram this
LocalVariableTable:
Start End Slot Name Signature
0 1 0 this Lcom/sun/java/util/jar/pack/Histogram;
public double getBitLength();
descriptor: ()D
flags: (0x0001) ACC_PUBLIC
Code:
stack=6, locals=4, args_size=1
start local 0 // com.sun.java.util.jar.pack.Histogram this
0: .line 201
dconst_0
dstore 1 /* sum */
start local 1 // double sum
1: .line 202
iconst_0
istore 3 /* i */
start local 3 // int i
2: goto 5
3: .line 203
StackMap locals: double int
StackMap stack:
dload 1 /* sum */
aload 0 /* this */
iload 3 /* i */
invokevirtual com.sun.java.util.jar.pack.Histogram.getRowBitLength:(I)D
aload 0 /* this */
iload 3 /* i */
invokevirtual com.sun.java.util.jar.pack.Histogram.getRowWeight:(I)I
i2d
dmul
dadd
dstore 1 /* sum */
4: .line 202
iinc 3 /* i */ 1
StackMap locals:
StackMap stack:
5: iload 3 /* i */
aload 0 /* this */
getfield com.sun.java.util.jar.pack.Histogram.matrix:[[I
arraylength
if_icmplt 3
end local 3 // int i
6: .line 205
getstatic com.sun.java.util.jar.pack.Histogram.$assertionsDisabled:Z
ifne 7
ldc 0.1
dload 1 /* sum */
aload 0 /* this */
aload 0 /* this */
getfield com.sun.java.util.jar.pack.Histogram.bitMetric:Lcom/sun/java/util/jar/pack/Histogram$BitMetric;
invokevirtual com.sun.java.util.jar.pack.Histogram.getBitLength:(Lcom/sun/java/util/jar/pack/Histogram$BitMetric;)D
dsub
invokestatic java.lang.Math.abs:(D)D
dcmpl
ifgt 7
new java.lang.AssertionError
dup
invokespecial java.lang.AssertionError.<init>:()V
athrow
7: .line 206
StackMap locals:
StackMap stack:
dload 1 /* sum */
dreturn
end local 1 // double sum
end local 0 // com.sun.java.util.jar.pack.Histogram this
LocalVariableTable:
Start End Slot Name Signature
0 8 0 this Lcom/sun/java/util/jar/pack/Histogram;
1 8 1 sum D
2 6 3 i I
public double getBitLength(com.sun.java.util.jar.pack.Histogram$BitMetric);
descriptor: (Lcom/sun/java/util/jar/pack/Histogram$BitMetric;)D
flags: (0x0001) ACC_PUBLIC
Code:
stack=7, locals=6, args_size=2
start local 0 // com.sun.java.util.jar.pack.Histogram this
start local 1 // com.sun.java.util.jar.pack.Histogram$BitMetric len
0: .line 212
dconst_0
dstore 2 /* sum */
start local 2 // double sum
1: .line 213
iconst_0
istore 4 /* i */
start local 4 // int i
2: goto 9
3: .line 214
StackMap locals: double int
StackMap stack:
iconst_1
istore 5 /* j */
start local 5 // int j
4: goto 7
5: .line 215
StackMap locals: int
StackMap stack:
dload 2 /* sum */
aload 0 /* this */
getfield com.sun.java.util.jar.pack.Histogram.matrix:[[I
iload 4 /* i */
aaload
iconst_0
iaload
i2d
aload 1 /* len */
aload 0 /* this */
getfield com.sun.java.util.jar.pack.Histogram.matrix:[[I
iload 4 /* i */
aaload
iload 5 /* j */
iaload
invokeinterface com.sun.java.util.jar.pack.Histogram$BitMetric.getBitLength:(I)D
dmul
dadd
dstore 2 /* sum */
6: .line 214
iinc 5 /* j */ 1
StackMap locals:
StackMap stack:
7: iload 5 /* j */
aload 0 /* this */
getfield com.sun.java.util.jar.pack.Histogram.matrix:[[I
iload 4 /* i */
aaload
arraylength
if_icmplt 5
end local 5 // int j
8: .line 213
iinc 4 /* i */ 1
StackMap locals:
StackMap stack:
9: iload 4 /* i */
aload 0 /* this */
getfield com.sun.java.util.jar.pack.Histogram.matrix:[[I
arraylength
if_icmplt 3
end local 4 // int i
10: .line 218
dload 2 /* sum */
dreturn
end local 2 // double sum
end local 1 // com.sun.java.util.jar.pack.Histogram$BitMetric len
end local 0 // com.sun.java.util.jar.pack.Histogram this
LocalVariableTable:
Start End Slot Name Signature
0 11 0 this Lcom/sun/java/util/jar/pack/Histogram;
0 11 1 len Lcom/sun/java/util/jar/pack/Histogram$BitMetric;
1 11 2 sum D
2 10 4 i I
4 8 5 j I
MethodParameters:
Name Flags
len
private static double round(double, double);
descriptor: (DD)D
flags: (0x000a) ACC_PRIVATE, ACC_STATIC
Code:
stack=4, locals=4, args_size=2
start local 0 // double x
start local 2 // double scale
0: .line 223
dload 0 /* x */
dload 2 /* scale */
dmul
invokestatic java.lang.Math.round:(D)J
l2d
dload 2 /* scale */
ddiv
dreturn
end local 2 // double scale
end local 0 // double x
LocalVariableTable:
Start End Slot Name Signature
0 1 0 x D
0 1 2 scale D
MethodParameters:
Name Flags
x
scale
public int[][] normalizeMatrix(int[][]);
descriptor: ([[I)[[I
flags: (0x0001) ACC_PUBLIC
Code:
stack=6, locals=14, args_size=2
start local 0 // com.sun.java.util.jar.pack.Histogram this
start local 1 // int[][] matrix
0: .line 231
aload 1 /* matrix */
arraylength
newarray 11
astore 2 /* rowMap */
start local 2 // long[] rowMap
1: .line 232
iconst_0
istore 3 /* i */
start local 3 // int i
2: goto 8
3: .line 233
StackMap locals: long[] int
StackMap stack:
aload 1 /* matrix */
iload 3 /* i */
aaload
arraylength
iconst_1
if_icmpgt 4
goto 7
4: .line 234
StackMap locals:
StackMap stack:
aload 1 /* matrix */
iload 3 /* i */
aaload
iconst_0
iaload
istore 4 /* count */
start local 4 // int count
5: .line 235
iload 4 /* count */
ifgt 6
goto 7
6: .line 236
StackMap locals: int
StackMap stack:
aload 2 /* rowMap */
iload 3 /* i */
iload 4 /* count */
i2l
bipush 32
lshl
iload 3 /* i */
i2l
lor
lastore
end local 4 // int count
7: .line 232
StackMap locals:
StackMap stack:
iinc 3 /* i */ 1
StackMap locals:
StackMap stack:
8: iload 3 /* i */
aload 1 /* matrix */
arraylength
if_icmplt 3
end local 3 // int i
9: .line 238
aload 2 /* rowMap */
invokestatic java.util.Arrays.sort:([J)V
10: .line 239
aload 1 /* matrix */
arraylength
anewarray int[]
astore 3 /* newMatrix */
start local 3 // int[][] newMatrix
11: .line 240
iconst_m1
istore 4 /* prevCount */
start local 4 // int prevCount
12: .line 241
iconst_0
istore 5 /* fillp1 */
start local 5 // int fillp1
13: .line 242
iconst_0
istore 6 /* fillp2 */
start local 6 // int fillp2
14: .line 243
iconst_0
istore 7 /* i */
start local 7 // int i
15: .line 245
StackMap locals: com.sun.java.util.jar.pack.Histogram int[][] long[] int[][] int int int int
StackMap stack:
iload 7 /* i */
aload 1 /* matrix */
arraylength
if_icmpge 20
16: .line 246
aload 2 /* rowMap */
aload 2 /* rowMap */
arraylength
iload 7 /* i */
isub
iconst_1
isub
laload
lstore 9 /* rowMapEntry */
start local 9 // long rowMapEntry
17: .line 247
lload 9 /* rowMapEntry */
lconst_0
lcmp
ifne 18
goto 60
18: .line 248
StackMap locals: com.sun.java.util.jar.pack.Histogram int[][] long[] int[][] int int int int top long
StackMap stack:
aload 1 /* matrix */
lload 9 /* rowMapEntry */
l2i
aaload
astore 8 /* row */
start local 8 // int[] row
19: .line 249
getstatic com.sun.java.util.jar.pack.Histogram.$assertionsDisabled:Z
ifne 21
lload 9 /* rowMapEntry */
bipush 32
lushr
aload 8 /* row */
iconst_0
iaload
i2l
lcmp
ifeq 21
new java.lang.AssertionError
dup
invokespecial java.lang.AssertionError.<init>:()V
athrow
end local 9 // long rowMapEntry
end local 8 // int[] row
20: .line 251
StackMap locals: com.sun.java.util.jar.pack.Histogram int[][] long[] int[][] int int int int
StackMap stack:
iconst_1
newarray 10
dup
iconst_0
iconst_m1
iastore
astore 8 /* row */
start local 8 // int[] row
21: .line 253
StackMap locals: int[]
StackMap stack:
aload 8 /* row */
iconst_0
iaload
iload 4 /* prevCount */
if_icmpeq 56
iload 6 /* fillp2 */
iload 5 /* fillp1 */
if_icmple 56
22: .line 255
iconst_0
istore 9 /* length */
start local 9 // int length
23: .line 256
iload 5 /* fillp1 */
istore 10 /* p */
start local 10 // int p
24: goto 29
25: .line 257
StackMap locals: int int
StackMap stack:
aload 3 /* newMatrix */
iload 10 /* p */
aaload
astore 11 /* row0 */
start local 11 // int[] row0
26: .line 258
getstatic com.sun.java.util.jar.pack.Histogram.$assertionsDisabled:Z
ifne 27
aload 11 /* row0 */
iconst_0
iaload
iload 4 /* prevCount */
if_icmpeq 27
new java.lang.AssertionError
dup
invokespecial java.lang.AssertionError.<init>:()V
athrow
27: .line 259
StackMap locals: int[]
StackMap stack:
iload 9 /* length */
aload 11 /* row0 */
arraylength
iconst_1
isub
iadd
istore 9 /* length */
end local 11 // int[] row0
28: .line 256
iinc 10 /* p */ 1
StackMap locals:
StackMap stack:
29: iload 10 /* p */
iload 6 /* fillp2 */
if_icmplt 25
end local 10 // int p
30: .line 261
iconst_1
iload 9 /* length */
iadd
newarray 10
astore 10 /* row1 */
start local 10 // int[] row1
31: .line 262
aload 10 /* row1 */
iconst_0
iload 4 /* prevCount */
iastore
32: .line 263
iconst_1
istore 11 /* rfillp */
start local 11 // int rfillp
33: .line 264
iload 5 /* fillp1 */
istore 12 /* p */
start local 12 // int p
34: goto 40
35: .line 265
StackMap locals: com.sun.java.util.jar.pack.Histogram int[][] long[] int[][] int int int int int[] int int[] int int
StackMap stack:
aload 3 /* newMatrix */
iload 12 /* p */
aaload
astore 13 /* row0 */
start local 13 // int[] row0
36: .line 266
getstatic com.sun.java.util.jar.pack.Histogram.$assertionsDisabled:Z
ifne 37
aload 13 /* row0 */
iconst_0
iaload
iload 4 /* prevCount */
if_icmpeq 37
new java.lang.AssertionError
dup
invokespecial java.lang.AssertionError.<init>:()V
athrow
37: .line 267
StackMap locals: int[]
StackMap stack:
aload 13 /* row0 */
iconst_1
aload 10 /* row1 */
iload 11 /* rfillp */
aload 13 /* row0 */
arraylength
iconst_1
isub
invokestatic java.lang.System.arraycopy:(Ljava/lang/Object;ILjava/lang/Object;II)V
38: .line 268
iload 11 /* rfillp */
aload 13 /* row0 */
arraylength
iconst_1
isub
iadd
istore 11 /* rfillp */
end local 13 // int[] row0
39: .line 264
iinc 12 /* p */ 1
StackMap locals:
StackMap stack:
40: iload 12 /* p */
iload 6 /* fillp2 */
if_icmplt 35
end local 12 // int p
41: .line 270
aload 10 /* row1 */
iconst_1
iconst_1
invokestatic com.sun.java.util.jar.pack.Histogram.isSorted:([IIZ)Z
ifne 54
42: .line 271
aload 10 /* row1 */
iconst_1
aload 10 /* row1 */
arraylength
invokestatic java.util.Arrays.sort:([III)V
43: .line 272
iconst_2
istore 12 /* jfillp */
start local 12 // int jfillp
44: .line 274
iconst_2
istore 13 /* j */
start local 13 // int j
45: goto 49
46: .line 275
StackMap locals: int
StackMap stack:
aload 10 /* row1 */
iload 13 /* j */
iaload
aload 10 /* row1 */
iload 13 /* j */
iconst_1
isub
iaload
if_icmpeq 48
47: .line 276
aload 10 /* row1 */
iload 12 /* jfillp */
iinc 12 /* jfillp */ 1
aload 10 /* row1 */
iload 13 /* j */
iaload
iastore
48: .line 274
StackMap locals:
StackMap stack:
iinc 13 /* j */ 1
StackMap locals:
StackMap stack:
49: iload 13 /* j */
aload 10 /* row1 */
arraylength
if_icmplt 46
end local 13 // int j
50: .line 278
iload 12 /* jfillp */
aload 10 /* row1 */
arraylength
if_icmpge 54
51: .line 280
iload 12 /* jfillp */
newarray 10
astore 13 /* newRow1 */
start local 13 // int[] newRow1
52: .line 281
aload 10 /* row1 */
iconst_0
aload 13 /* newRow1 */
iconst_0
iload 12 /* jfillp */
invokestatic java.lang.System.arraycopy:(Ljava/lang/Object;ILjava/lang/Object;II)V
53: .line 282
aload 13 /* newRow1 */
astore 10 /* row1 */
end local 13 // int[] newRow1
end local 12 // int jfillp
54: .line 285
StackMap locals:
StackMap stack:
aload 3 /* newMatrix */
iload 5 /* fillp1 */
iinc 5 /* fillp1 */ 1
aload 10 /* row1 */
aastore
55: .line 286
iload 5 /* fillp1 */
istore 6 /* fillp2 */
end local 11 // int rfillp
end local 10 // int[] row1
end local 9 // int length
56: .line 288
StackMap locals:
StackMap stack:
iload 7 /* i */
aload 1 /* matrix */
arraylength
if_icmpne 58
57: .line 289
goto 61
58: .line 290
StackMap locals:
StackMap stack:
aload 8 /* row */
iconst_0
iaload
istore 4 /* prevCount */
59: .line 291
aload 3 /* newMatrix */
iload 6 /* fillp2 */
iinc 6 /* fillp2 */ 1
aload 8 /* row */
aastore
end local 8 // int[] row
60: .line 243
StackMap locals:
StackMap stack:
iinc 7 /* i */ 1
goto 15
end local 7 // int i
61: .line 293
StackMap locals:
StackMap stack:
getstatic com.sun.java.util.jar.pack.Histogram.$assertionsDisabled:Z
ifne 62
iload 5 /* fillp1 */
iload 6 /* fillp2 */
if_icmpeq 62
new java.lang.AssertionError
dup
invokespecial java.lang.AssertionError.<init>:()V
athrow
62: .line 295
StackMap locals:
StackMap stack:
aload 3 /* newMatrix */
astore 1 /* matrix */
63: .line 296
iload 5 /* fillp1 */
aload 1 /* matrix */
arraylength
if_icmpge 67
64: .line 297
iload 5 /* fillp1 */
anewarray int[]
astore 3 /* newMatrix */
65: .line 298
aload 1 /* matrix */
iconst_0
aload 3 /* newMatrix */
iconst_0
iload 5 /* fillp1 */
invokestatic java.lang.System.arraycopy:(Ljava/lang/Object;ILjava/lang/Object;II)V
66: .line 299
aload 3 /* newMatrix */
astore 1 /* matrix */
67: .line 301
StackMap locals:
StackMap stack:
aload 1 /* matrix */
areturn
end local 6 // int fillp2
end local 5 // int fillp1
end local 4 // int prevCount
end local 3 // int[][] newMatrix
end local 2 // long[] rowMap
end local 1 // int[][] matrix
end local 0 // com.sun.java.util.jar.pack.Histogram this
LocalVariableTable:
Start End Slot Name Signature
0 68 0 this Lcom/sun/java/util/jar/pack/Histogram;
0 68 1 matrix [[I
1 68 2 rowMap [J
2 9 3 i I
5 7 4 count I
11 68 3 newMatrix [[I
12 68 4 prevCount I
13 68 5 fillp1 I
14 68 6 fillp2 I
15 61 7 i I
19 20 8 row [I
21 60 8 row [I
17 20 9 rowMapEntry J
23 56 9 length I
24 30 10 p I
26 28 11 row0 [I
31 56 10 row1 [I
33 56 11 rfillp I
34 41 12 p I
36 39 13 row0 [I
44 54 12 jfillp I
45 50 13 j I
52 54 13 newRow1 [I
MethodParameters:
Name Flags
matrix
public java.lang.String[] getRowTitles(java.lang.String);
descriptor: (Ljava/lang/String;)[Ljava/lang/String;
flags: (0x0001) ACC_PUBLIC
Code:
stack=7, locals=17, args_size=2
start local 0 // com.sun.java.util.jar.pack.Histogram this
start local 1 // java.lang.String name
0: .line 306
aload 0 /* this */
invokevirtual com.sun.java.util.jar.pack.Histogram.getTotalLength:()I
istore 2 /* totalUnique */
start local 2 // int totalUnique
1: .line 307
aload 0 /* this */
invokevirtual com.sun.java.util.jar.pack.Histogram.getTotalWeight:()I
istore 3 /* ltotalWeight */
start local 3 // int ltotalWeight
2: .line 308
aload 0 /* this */
getfield com.sun.java.util.jar.pack.Histogram.matrix:[[I
arraylength
anewarray java.lang.String
astore 4 /* histTitles */
start local 4 // java.lang.String[] histTitles
3: .line 309
iconst_0
istore 5 /* cumWeight */
start local 5 // int cumWeight
4: .line 310
iconst_0
istore 6 /* cumUnique */
start local 6 // int cumUnique
5: .line 311
iconst_0
istore 7 /* i */
start local 7 // int i
6: goto 23
7: .line 312
StackMap locals: com.sun.java.util.jar.pack.Histogram java.lang.String int int java.lang.String[] int int int
StackMap stack:
aload 0 /* this */
iload 7 /* i */
invokevirtual com.sun.java.util.jar.pack.Histogram.getRowFrequency:(I)I
istore 8 /* count */
start local 8 // int count
8: .line 313
aload 0 /* this */
iload 7 /* i */
invokevirtual com.sun.java.util.jar.pack.Histogram.getRowLength:(I)I
istore 9 /* unique */
start local 9 // int unique
9: .line 314
aload 0 /* this */
iload 7 /* i */
invokevirtual com.sun.java.util.jar.pack.Histogram.getRowWeight:(I)I
istore 10 /* weight */
start local 10 // int weight
10: .line 315
iload 5 /* cumWeight */
iload 10 /* weight */
iadd
istore 5 /* cumWeight */
11: .line 316
iload 6 /* cumUnique */
iload 9 /* unique */
iadd
istore 6 /* cumUnique */
12: .line 317
iload 5 /* cumWeight */
i2l
ldc 100
lmul
iload 3 /* ltotalWeight */
iconst_2
idiv
i2l
ladd
iload 3 /* ltotalWeight */
i2l
ldiv
lstore 11 /* wpct */
start local 11 // long wpct
13: .line 318
iload 6 /* cumUnique */
i2l
ldc 100
lmul
iload 2 /* totalUnique */
iconst_2
idiv
i2l
ladd
iload 2 /* totalUnique */
i2l
ldiv
lstore 13 /* upct */
start local 13 // long upct
14: .line 319
aload 0 /* this */
iload 7 /* i */
invokevirtual com.sun.java.util.jar.pack.Histogram.getRowBitLength:(I)D
dstore 15 /* len */
start local 15 // double len
15: .line 320
getstatic com.sun.java.util.jar.pack.Histogram.$assertionsDisabled:Z
ifne 16
ldc 0.1
dload 15 /* len */
aload 0 /* this */
aload 0 /* this */
getfield com.sun.java.util.jar.pack.Histogram.matrix:[[I
iload 7 /* i */
aaload
iconst_1
iaload
invokevirtual com.sun.java.util.jar.pack.Histogram.getBitLength:(I)D
dsub
invokestatic java.lang.Math.abs:(D)D
dcmpl
ifgt 16
new java.lang.AssertionError
dup
invokespecial java.lang.AssertionError.<init>:()V
athrow
16: .line 321
StackMap locals: com.sun.java.util.jar.pack.Histogram java.lang.String int int java.lang.String[] int int int int int int long long double
StackMap stack:
aload 4 /* histTitles */
iload 7 /* i */
new java.lang.StringBuilder
dup
aload 1 /* name */
invokestatic java.lang.String.valueOf:(Ljava/lang/Object;)Ljava/lang/String;
invokespecial java.lang.StringBuilder.<init>:(Ljava/lang/String;)V
ldc "["
invokevirtual java.lang.StringBuilder.append:(Ljava/lang/String;)Ljava/lang/StringBuilder;
iload 7 /* i */
invokevirtual java.lang.StringBuilder.append:(I)Ljava/lang/StringBuilder;
ldc "]"
invokevirtual java.lang.StringBuilder.append:(Ljava/lang/String;)Ljava/lang/StringBuilder;
17: .line 322
ldc " len="
invokevirtual java.lang.StringBuilder.append:(Ljava/lang/String;)Ljava/lang/StringBuilder;
dload 15 /* len */
ldc 10.0
invokestatic com.sun.java.util.jar.pack.Histogram.round:(DD)D
invokevirtual java.lang.StringBuilder.append:(D)Ljava/lang/StringBuilder;
18: .line 323
ldc " ("
invokevirtual java.lang.StringBuilder.append:(Ljava/lang/String;)Ljava/lang/StringBuilder;
iload 8 /* count */
invokevirtual java.lang.StringBuilder.append:(I)Ljava/lang/StringBuilder;
ldc "*["
invokevirtual java.lang.StringBuilder.append:(Ljava/lang/String;)Ljava/lang/StringBuilder;
iload 9 /* unique */
invokevirtual java.lang.StringBuilder.append:(I)Ljava/lang/StringBuilder;
ldc "])"
invokevirtual java.lang.StringBuilder.append:(Ljava/lang/String;)Ljava/lang/StringBuilder;
19: .line 324
ldc " ("
invokevirtual java.lang.StringBuilder.append:(Ljava/lang/String;)Ljava/lang/StringBuilder;
iload 5 /* cumWeight */
invokevirtual java.lang.StringBuilder.append:(I)Ljava/lang/StringBuilder;
ldc ":"
invokevirtual java.lang.StringBuilder.append:(Ljava/lang/String;)Ljava/lang/StringBuilder;
lload 11 /* wpct */
invokevirtual java.lang.StringBuilder.append:(J)Ljava/lang/StringBuilder;
ldc "%)"
invokevirtual java.lang.StringBuilder.append:(Ljava/lang/String;)Ljava/lang/StringBuilder;
20: .line 325
ldc " ["
invokevirtual java.lang.StringBuilder.append:(Ljava/lang/String;)Ljava/lang/StringBuilder;
iload 6 /* cumUnique */
invokevirtual java.lang.StringBuilder.append:(I)Ljava/lang/StringBuilder;
ldc ":"
invokevirtual java.lang.StringBuilder.append:(Ljava/lang/String;)Ljava/lang/StringBuilder;
lload 13 /* upct */
invokevirtual java.lang.StringBuilder.append:(J)Ljava/lang/StringBuilder;
ldc "%]"
invokevirtual java.lang.StringBuilder.append:(Ljava/lang/String;)Ljava/lang/StringBuilder;
invokevirtual java.lang.StringBuilder.toString:()Ljava/lang/String;
21: .line 321
aastore
end local 15 // double len
end local 13 // long upct
end local 11 // long wpct
end local 10 // int weight
end local 9 // int unique
end local 8 // int count
22: .line 311
iinc 7 /* i */ 1
StackMap locals: com.sun.java.util.jar.pack.Histogram java.lang.String int int java.lang.String[] int int int
StackMap stack:
23: iload 7 /* i */
aload 0 /* this */
getfield com.sun.java.util.jar.pack.Histogram.matrix:[[I
arraylength
if_icmplt 7
end local 7 // int i
24: .line 327
aload 4 /* histTitles */
areturn
end local 6 // int cumUnique
end local 5 // int cumWeight
end local 4 // java.lang.String[] histTitles
end local 3 // int ltotalWeight
end local 2 // int totalUnique
end local 1 // java.lang.String name
end local 0 // com.sun.java.util.jar.pack.Histogram this
LocalVariableTable:
Start End Slot Name Signature
0 25 0 this Lcom/sun/java/util/jar/pack/Histogram;
0 25 1 name Ljava/lang/String;
1 25 2 totalUnique I
2 25 3 ltotalWeight I
3 25 4 histTitles [Ljava/lang/String;
4 25 5 cumWeight I
5 25 6 cumUnique I
6 24 7 i I
8 22 8 count I
9 22 9 unique I
10 22 10 weight I
13 22 11 wpct J
14 22 13 upct J
15 22 15 len D
MethodParameters:
Name Flags
name
public void print(java.io.PrintStream);
descriptor: (Ljava/io/PrintStream;)V
flags: (0x0001) ACC_PUBLIC
Code:
stack=3, locals=2, args_size=2
start local 0 // com.sun.java.util.jar.pack.Histogram this
start local 1 // java.io.PrintStream out
0: .line 334
aload 0 /* this */
ldc "hist"
aload 1 /* out */
invokevirtual com.sun.java.util.jar.pack.Histogram.print:(Ljava/lang/String;Ljava/io/PrintStream;)V
1: .line 335
return
end local 1 // java.io.PrintStream out
end local 0 // com.sun.java.util.jar.pack.Histogram this
LocalVariableTable:
Start End Slot Name Signature
0 2 0 this Lcom/sun/java/util/jar/pack/Histogram;
0 2 1 out Ljava/io/PrintStream;
MethodParameters:
Name Flags
out
public void print(java.lang.String, java.io.PrintStream);
descriptor: (Ljava/lang/String;Ljava/io/PrintStream;)V
flags: (0x0001) ACC_PUBLIC
Code:
stack=4, locals=3, args_size=3
start local 0 // com.sun.java.util.jar.pack.Histogram this
start local 1 // java.lang.String name
start local 2 // java.io.PrintStream out
0: .line 341
aload 0 /* this */
aload 1 /* name */
aload 0 /* this */
aload 1 /* name */
invokevirtual com.sun.java.util.jar.pack.Histogram.getRowTitles:(Ljava/lang/String;)[Ljava/lang/String;
aload 2 /* out */
invokevirtual com.sun.java.util.jar.pack.Histogram.print:(Ljava/lang/String;[Ljava/lang/String;Ljava/io/PrintStream;)V
1: .line 342
return
end local 2 // java.io.PrintStream out
end local 1 // java.lang.String name
end local 0 // com.sun.java.util.jar.pack.Histogram this
LocalVariableTable:
Start End Slot Name Signature
0 2 0 this Lcom/sun/java/util/jar/pack/Histogram;
0 2 1 name Ljava/lang/String;
0 2 2 out Ljava/io/PrintStream;
MethodParameters:
Name Flags
name
out
public void print(java.lang.String, java.lang.String[], java.io.PrintStream);
descriptor: (Ljava/lang/String;[Ljava/lang/String;Ljava/io/PrintStream;)V
flags: (0x0001) ACC_PUBLIC
Code:
stack=5, locals=16, args_size=4
start local 0 // com.sun.java.util.jar.pack.Histogram this
start local 1 // java.lang.String name
start local 2 // java.lang.String[] histTitles
start local 3 // java.io.PrintStream out
0: .line 348
aload 0 /* this */
invokevirtual com.sun.java.util.jar.pack.Histogram.getTotalLength:()I
istore 4 /* totalUnique */
start local 4 // int totalUnique
1: .line 349
aload 0 /* this */
invokevirtual com.sun.java.util.jar.pack.Histogram.getTotalWeight:()I
istore 5 /* ltotalWeight */
start local 5 // int ltotalWeight
2: .line 350
aload 0 /* this */
invokevirtual com.sun.java.util.jar.pack.Histogram.getBitLength:()D
dstore 6 /* tlen */
start local 6 // double tlen
3: .line 351
dload 6 /* tlen */
iload 5 /* ltotalWeight */
i2d
ddiv
dstore 8 /* avgLen */
start local 8 // double avgLen
4: .line 352
iload 5 /* ltotalWeight */
i2d
iload 4 /* totalUnique */
i2d
ddiv
dstore 10 /* avg */
start local 10 // double avg
5: .line 353
new java.lang.StringBuilder
dup
aload 1 /* name */
invokestatic java.lang.String.valueOf:(Ljava/lang/Object;)Ljava/lang/String;
invokespecial java.lang.StringBuilder.<init>:(Ljava/lang/String;)V
6: .line 354
ldc " len="
invokevirtual java.lang.StringBuilder.append:(Ljava/lang/String;)Ljava/lang/StringBuilder;
dload 6 /* tlen */
ldc 10.0
invokestatic com.sun.java.util.jar.pack.Histogram.round:(DD)D
invokevirtual java.lang.StringBuilder.append:(D)Ljava/lang/StringBuilder;
7: .line 355
ldc " avgLen="
invokevirtual java.lang.StringBuilder.append:(Ljava/lang/String;)Ljava/lang/StringBuilder;
dload 8 /* avgLen */
ldc 10.0
invokestatic com.sun.java.util.jar.pack.Histogram.round:(DD)D
invokevirtual java.lang.StringBuilder.append:(D)Ljava/lang/StringBuilder;
8: .line 356
ldc " weight("
invokevirtual java.lang.StringBuilder.append:(Ljava/lang/String;)Ljava/lang/StringBuilder;
iload 5 /* ltotalWeight */
invokevirtual java.lang.StringBuilder.append:(I)Ljava/lang/StringBuilder;
ldc ")"
invokevirtual java.lang.StringBuilder.append:(Ljava/lang/String;)Ljava/lang/StringBuilder;
9: .line 357
ldc " unique["
invokevirtual java.lang.StringBuilder.append:(Ljava/lang/String;)Ljava/lang/StringBuilder;
iload 4 /* totalUnique */
invokevirtual java.lang.StringBuilder.append:(I)Ljava/lang/StringBuilder;
ldc "]"
invokevirtual java.lang.StringBuilder.append:(Ljava/lang/String;)Ljava/lang/StringBuilder;
10: .line 358
ldc " avgWeight("
invokevirtual java.lang.StringBuilder.append:(Ljava/lang/String;)Ljava/lang/StringBuilder;
dload 10 /* avg */
ldc 100.0
invokestatic com.sun.java.util.jar.pack.Histogram.round:(DD)D
invokevirtual java.lang.StringBuilder.append:(D)Ljava/lang/StringBuilder;
ldc ")"
invokevirtual java.lang.StringBuilder.append:(Ljava/lang/String;)Ljava/lang/StringBuilder;
11: .line 353
invokevirtual java.lang.StringBuilder.toString:()Ljava/lang/String;
astore 12 /* title */
start local 12 // java.lang.String title
12: .line 359
aload 2 /* histTitles */
ifnonnull 15
13: .line 360
aload 3 /* out */
aload 12 /* title */
invokevirtual java.io.PrintStream.println:(Ljava/lang/String;)V
14: .line 361
goto 31
15: .line 362
StackMap locals: com.sun.java.util.jar.pack.Histogram java.lang.String java.lang.String[] java.io.PrintStream int int double double double java.lang.String
StackMap stack:
aload 3 /* out */
new java.lang.StringBuilder
dup
aload 12 /* title */
invokestatic java.lang.String.valueOf:(Ljava/lang/Object;)Ljava/lang/String;
invokespecial java.lang.StringBuilder.<init>:(Ljava/lang/String;)V
ldc " {"
invokevirtual java.lang.StringBuilder.append:(Ljava/lang/String;)Ljava/lang/StringBuilder;
invokevirtual java.lang.StringBuilder.toString:()Ljava/lang/String;
invokevirtual java.io.PrintStream.println:(Ljava/lang/String;)V
16: .line 363
new java.lang.StringBuffer
dup
invokespecial java.lang.StringBuffer.<init>:()V
astore 13 /* buf */
start local 13 // java.lang.StringBuffer buf
17: .line 364
iconst_0
istore 14 /* i */
start local 14 // int i
18: goto 29
19: .line 365
StackMap locals: java.lang.StringBuffer int
StackMap stack:
aload 13 /* buf */
iconst_0
invokevirtual java.lang.StringBuffer.setLength:(I)V
20: .line 366
aload 13 /* buf */
ldc " "
invokevirtual java.lang.StringBuffer.append:(Ljava/lang/String;)Ljava/lang/StringBuffer;
aload 2 /* histTitles */
iload 14 /* i */
aaload
invokevirtual java.lang.StringBuffer.append:(Ljava/lang/String;)Ljava/lang/StringBuffer;
ldc " {"
invokevirtual java.lang.StringBuffer.append:(Ljava/lang/String;)Ljava/lang/StringBuffer;
pop
21: .line 367
iconst_1
istore 15 /* j */
start local 15 // int j
22: goto 25
23: .line 368
StackMap locals: int
StackMap stack:
aload 13 /* buf */
ldc " "
invokevirtual java.lang.StringBuffer.append:(Ljava/lang/String;)Ljava/lang/StringBuffer;
aload 0 /* this */
getfield com.sun.java.util.jar.pack.Histogram.matrix:[[I
iload 14 /* i */
aaload
iload 15 /* j */
iaload
invokevirtual java.lang.StringBuffer.append:(I)Ljava/lang/StringBuffer;
pop
24: .line 367
iinc 15 /* j */ 1
StackMap locals:
StackMap stack:
25: iload 15 /* j */
aload 0 /* this */
getfield com.sun.java.util.jar.pack.Histogram.matrix:[[I
iload 14 /* i */
aaload
arraylength
if_icmplt 23
end local 15 // int j
26: .line 370
aload 13 /* buf */
ldc " }"
invokevirtual java.lang.StringBuffer.append:(Ljava/lang/String;)Ljava/lang/StringBuffer;
pop
27: .line 371
aload 3 /* out */
aload 13 /* buf */
invokevirtual java.io.PrintStream.println:(Ljava/lang/Object;)V
28: .line 364
iinc 14 /* i */ 1
StackMap locals:
StackMap stack:
29: iload 14 /* i */
aload 0 /* this */
getfield com.sun.java.util.jar.pack.Histogram.matrix:[[I
arraylength
if_icmplt 19
end local 14 // int i
30: .line 373
aload 3 /* out */
ldc "}"
invokevirtual java.io.PrintStream.println:(Ljava/lang/String;)V
end local 13 // java.lang.StringBuffer buf
31: .line 375
StackMap locals:
StackMap stack:
return
end local 12 // java.lang.String title
end local 10 // double avg
end local 8 // double avgLen
end local 6 // double tlen
end local 5 // int ltotalWeight
end local 4 // int totalUnique
end local 3 // java.io.PrintStream out
end local 2 // java.lang.String[] histTitles
end local 1 // java.lang.String name
end local 0 // com.sun.java.util.jar.pack.Histogram this
LocalVariableTable:
Start End Slot Name Signature
0 32 0 this Lcom/sun/java/util/jar/pack/Histogram;
0 32 1 name Ljava/lang/String;
0 32 2 histTitles [Ljava/lang/String;
0 32 3 out Ljava/io/PrintStream;
1 32 4 totalUnique I
2 32 5 ltotalWeight I
3 32 6 tlen D
4 32 8 avgLen D
5 32 10 avg D
12 32 12 title Ljava/lang/String;
17 31 13 buf Ljava/lang/StringBuffer;
18 30 14 i I
22 26 15 j I
MethodParameters:
Name Flags
name
histTitles
out
private static int[][] makeMatrix(long[]);
descriptor: ([J)[[I
flags: (0x000a) ACC_PRIVATE, ACC_STATIC
Code:
stack=5, locals=15, args_size=1
start local 0 // long[] hist2col
0: .line 391
aload 0 /* hist2col */
invokestatic java.util.Arrays.sort:([J)V
1: .line 392
aload 0 /* hist2col */
arraylength
newarray 10
astore 1 /* counts */
start local 1 // int[] counts
2: .line 393
iconst_0
istore 2 /* i */
start local 2 // int i
3: goto 6
4: .line 394
StackMap locals: int[] int
StackMap stack:
aload 1 /* counts */
iload 2 /* i */
aload 0 /* hist2col */
iload 2 /* i */
laload
bipush 32
lushr
l2i
iastore
5: .line 393
iinc 2 /* i */ 1
StackMap locals:
StackMap stack:
6: iload 2 /* i */
aload 1 /* counts */
arraylength
if_icmplt 4
end local 2 // int i
7: .line 396
aload 1 /* counts */
invokestatic com.sun.java.util.jar.pack.Histogram.computeHistogram2Col:([I)[J
astore 2 /* countHist */
start local 2 // long[] countHist
8: .line 397
aload 2 /* countHist */
arraylength
anewarray int[]
astore 3 /* matrix */
start local 3 // int[][] matrix
9: .line 398
iconst_0
istore 4 /* histp */
start local 4 // int histp
10: .line 399
iconst_0
istore 5 /* countp */
start local 5 // int countp
11: .line 401
aload 3 /* matrix */
arraylength
istore 6 /* i */
start local 6 // int i
12: goto 26
13: .line 402
StackMap locals: long[] int[] long[] int[][] int int int
StackMap stack:
aload 2 /* countHist */
iload 5 /* countp */
iinc 5 /* countp */ 1
laload
lstore 7 /* countAndRep */
start local 7 // long countAndRep
14: .line 403
lload 7 /* countAndRep */
l2i
istore 9 /* count */
start local 9 // int count
15: .line 404
lload 7 /* countAndRep */
bipush 32
lushr
l2i
istore 10 /* repeat */
start local 10 // int repeat
16: .line 405
iconst_1
iload 10 /* repeat */
iadd
newarray 10
astore 11 /* row */
start local 11 // int[] row
17: .line 406
aload 11 /* row */
iconst_0
iload 9 /* count */
iastore
18: .line 407
iconst_0
istore 12 /* j */
start local 12 // int j
19: goto 24
20: .line 408
StackMap locals: long[] int[] long[] int[][] int int int long int int int[] int
StackMap stack:
aload 0 /* hist2col */
iload 4 /* histp */
iinc 4 /* histp */ 1
laload
lstore 13 /* countAndValue */
start local 13 // long countAndValue
21: .line 409
getstatic com.sun.java.util.jar.pack.Histogram.$assertionsDisabled:Z
ifne 22
lload 13 /* countAndValue */
bipush 32
lushr
iload 9 /* count */
i2l
lcmp
ifeq 22
new java.lang.AssertionError
dup
invokespecial java.lang.AssertionError.<init>:()V
athrow
22: .line 410
StackMap locals: long
StackMap stack:
aload 11 /* row */
iconst_1
iload 12 /* j */
iadd
lload 13 /* countAndValue */
l2i
iastore
end local 13 // long countAndValue
23: .line 407
iinc 12 /* j */ 1
StackMap locals:
StackMap stack:
24: iload 12 /* j */
iload 10 /* repeat */
if_icmplt 20
end local 12 // int j
25: .line 412
aload 3 /* matrix */
iload 6 /* i */
aload 11 /* row */
aastore
end local 11 // int[] row
end local 10 // int repeat
end local 9 // int count
end local 7 // long countAndRep
26: .line 401
StackMap locals: long[] int[] long[] int[][] int int int
StackMap stack:
iinc 6 /* i */ -1
iload 6 /* i */
ifge 13
end local 6 // int i
27: .line 414
getstatic com.sun.java.util.jar.pack.Histogram.$assertionsDisabled:Z
ifne 28
iload 4 /* histp */
aload 0 /* hist2col */
arraylength
if_icmpeq 28
new java.lang.AssertionError
dup
invokespecial java.lang.AssertionError.<init>:()V
athrow
28: .line 415
StackMap locals:
StackMap stack:
aload 3 /* matrix */
areturn
end local 5 // int countp
end local 4 // int histp
end local 3 // int[][] matrix
end local 2 // long[] countHist
end local 1 // int[] counts
end local 0 // long[] hist2col
LocalVariableTable:
Start End Slot Name Signature
0 29 0 hist2col [J
2 29 1 counts [I
3 7 2 i I
8 29 2 countHist [J
9 29 3 matrix [[I
10 29 4 histp I
11 29 5 countp I
12 27 6 i I
14 26 7 countAndRep J
15 26 9 count I
16 26 10 repeat I
17 26 11 row [I
19 25 12 j I
21 23 13 countAndValue J
MethodParameters:
Name Flags
hist2col
private static int[][] makeTable(long[]);
descriptor: ([J)[[I
flags: (0x000a) ACC_PRIVATE, ACC_STATIC
Code:
stack=5, locals=3, args_size=1
start local 0 // long[] hist2col
0: .line 420
iconst_2
aload 0 /* hist2col */
arraylength
multianewarray [[I 2
astore 1 /* table */
start local 1 // int[][] table
1: .line 423
iconst_0
istore 2 /* i */
start local 2 // int i
2: goto 6
3: .line 424
StackMap locals: int[][] int
StackMap stack:
aload 1 /* table */
iconst_0
aaload
iload 2 /* i */
aload 0 /* hist2col */
iload 2 /* i */
laload
l2i
iastore
4: .line 425
aload 1 /* table */
iconst_1
aaload
iload 2 /* i */
aload 0 /* hist2col */
iload 2 /* i */
laload
bipush 32
lushr
l2i
iastore
5: .line 423
iinc 2 /* i */ 1
StackMap locals:
StackMap stack:
6: iload 2 /* i */
aload 0 /* hist2col */
arraylength
if_icmplt 3
end local 2 // int i
7: .line 427
aload 1 /* table */
areturn
end local 1 // int[][] table
end local 0 // long[] hist2col
LocalVariableTable:
Start End Slot Name Signature
0 8 0 hist2col [J
1 8 1 table [[I
2 7 2 i I
MethodParameters:
Name Flags
hist2col
private static long[] computeHistogram2Col(int[]);
descriptor: ([I)[J
flags: (0x000a) ACC_PRIVATE, ACC_STATIC
Code:
stack=9, locals=8, args_size=1
start local 0 // int[] sortedValues
0: .line 447
aload 0 /* sortedValues */
arraylength
tableswitch { // 0 - 1
0: 1
1: 2
default: 3
}
1: .line 449
StackMap locals:
StackMap stack:
iconst_0
newarray 11
areturn
2: .line 451
StackMap locals:
StackMap stack:
iconst_1
newarray 11
dup
iconst_0
ldc 4294967296
ldc 4294967295
aload 0 /* sortedValues */
iconst_0
iaload
i2l
land
lor
lastore
areturn
3: .line 453
StackMap locals:
StackMap stack:
aconst_null
astore 1 /* hist */
start local 1 // long[] hist
4: .line 454
iconst_1
istore 2 /* sizeOnly */
start local 2 // boolean sizeOnly
5: .line 455
StackMap locals: long[] int
StackMap stack:
iconst_m1
istore 3 /* prevIndex */
start local 3 // int prevIndex
6: .line 456
aload 0 /* sortedValues */
iconst_0
iaload
iconst_m1
ixor
istore 4 /* prevValue */
start local 4 // int prevValue
7: .line 457
iconst_0
istore 5 /* prevCount */
start local 5 // int prevCount
8: .line 458
iconst_0
istore 6 /* i */
start local 6 // int i
9: goto 25
10: .line 460
StackMap locals: int[] long[] int int int int int
StackMap stack:
iload 6 /* i */
aload 0 /* sortedValues */
arraylength
if_icmpge 13
11: .line 461
aload 0 /* sortedValues */
iload 6 /* i */
iaload
istore 7 /* thisValue */
start local 7 // int thisValue
12: goto 14
end local 7 // int thisValue
13: .line 463
StackMap locals:
StackMap stack:
iload 4 /* prevValue */
iconst_m1
ixor
istore 7 /* thisValue */
start local 7 // int thisValue
14: .line 464
StackMap locals: int
StackMap stack:
iload 7 /* thisValue */
iload 4 /* prevValue */
if_icmpne 17
15: .line 465
iinc 5 /* prevCount */ 1
16: .line 466
goto 24
17: .line 468
StackMap locals:
StackMap stack:
iload 2 /* sizeOnly */
ifne 21
iload 5 /* prevCount */
ifeq 21
18: .line 470
aload 1 /* hist */
iload 3 /* prevIndex */
iload 5 /* prevCount */
i2l
bipush 32
lshl
19: .line 471
ldc 4294967295
iload 4 /* prevValue */
i2l
land
lor
20: .line 470
lastore
21: .line 473
StackMap locals:
StackMap stack:
iload 7 /* thisValue */
istore 4 /* prevValue */
22: .line 474
iconst_1
istore 5 /* prevCount */
23: .line 475
iinc 3 /* prevIndex */ 1
end local 7 // int thisValue
24: .line 458
StackMap locals:
StackMap stack:
iinc 6 /* i */ 1
StackMap locals:
StackMap stack:
25: iload 6 /* i */
aload 0 /* sortedValues */
arraylength
if_icmple 10
end local 6 // int i
26: .line 478
iload 2 /* sizeOnly */
ifeq 29
27: .line 480
iload 3 /* prevIndex */
newarray 11
astore 1 /* hist */
end local 5 // int prevCount
end local 4 // int prevValue
end local 3 // int prevIndex
28: .line 454
iconst_0
istore 2 /* sizeOnly */
goto 5
end local 2 // boolean sizeOnly
29: .line 485
StackMap locals: int[] long[]
StackMap stack:
aload 1 /* hist */
areturn
end local 1 // long[] hist
end local 0 // int[] sortedValues
LocalVariableTable:
Start End Slot Name Signature
0 30 0 sortedValues [I
4 30 1 hist [J
5 29 2 sizeOnly Z
6 28 3 prevIndex I
7 28 4 prevValue I
8 28 5 prevCount I
9 26 6 i I
12 13 7 thisValue I
14 24 7 thisValue I
MethodParameters:
Name Flags
sortedValues
private static int[][] regroupHistogram(int[][], int[]);
descriptor: ([[I[I)[[I
flags: (0x000a) ACC_PRIVATE, ACC_STATIC
Code:
stack=6, locals=17, args_size=2
start local 0 // int[][] matrix
start local 1 // int[] groups
0: .line 497
lconst_0
lstore 2 /* oldEntries */
start local 2 // long oldEntries
1: .line 498
iconst_0
istore 4 /* i */
start local 4 // int i
2: goto 5
3: .line 499
StackMap locals: long int
StackMap stack:
lload 2 /* oldEntries */
aload 0 /* matrix */
iload 4 /* i */
aaload
arraylength
iconst_1
isub
i2l
ladd
lstore 2 /* oldEntries */
4: .line 498
iinc 4 /* i */ 1
StackMap locals:
StackMap stack:
5: iload 4 /* i */
aload 0 /* matrix */
arraylength
if_icmplt 3
end local 4 // int i
6: .line 501
lconst_0
lstore 4 /* newEntries */
start local 4 // long newEntries
7: .line 502
iconst_0
istore 6 /* ni */
start local 6 // int ni
8: goto 11
9: .line 503
StackMap locals: int[][] int[] long long int
StackMap stack:
lload 4 /* newEntries */
aload 1 /* groups */
iload 6 /* ni */
iaload
i2l
ladd
lstore 4 /* newEntries */
10: .line 502
iinc 6 /* ni */ 1
StackMap locals:
StackMap stack:
11: iload 6 /* ni */
aload 1 /* groups */
arraylength
if_icmplt 9
end local 6 // int ni
12: .line 505
lload 4 /* newEntries */
lload 2 /* oldEntries */
lcmp
ifle 28
13: .line 506
aload 1 /* groups */
arraylength
pop
14: .line 507
lload 2 /* oldEntries */
lstore 6 /* ok */
start local 6 // long ok
15: .line 508
iconst_0
istore 8 /* ni */
start local 8 // int ni
16: goto 26
17: .line 509
StackMap locals: int[][] int[] long long long int
StackMap stack:
lload 6 /* ok */
aload 1 /* groups */
iload 8 /* ni */
iaload
i2l
lcmp
ifge 24
18: .line 510
iload 8 /* ni */
iconst_1
iadd
newarray 10
astore 9 /* newGroups */
start local 9 // int[] newGroups
19: .line 511
aload 1 /* groups */
iconst_0
aload 9 /* newGroups */
iconst_0
iload 8 /* ni */
iconst_1
iadd
invokestatic java.lang.System.arraycopy:(Ljava/lang/Object;ILjava/lang/Object;II)V
20: .line 512
aload 9 /* newGroups */
astore 1 /* groups */
21: .line 513
aload 1 /* groups */
iload 8 /* ni */
lload 6 /* ok */
l2i
iastore
22: .line 514
lconst_0
lstore 6 /* ok */
23: .line 515
goto 33
end local 9 // int[] newGroups
24: .line 517
StackMap locals:
StackMap stack:
lload 6 /* ok */
aload 1 /* groups */
iload 8 /* ni */
iaload
i2l
lsub
lstore 6 /* ok */
25: .line 508
iinc 8 /* ni */ 1
StackMap locals:
StackMap stack:
26: iload 8 /* ni */
aload 1 /* groups */
arraylength
if_icmplt 17
end local 8 // int ni
end local 6 // long ok
27: .line 519
goto 33
28: .line 520
StackMap locals:
StackMap stack:
lload 2 /* oldEntries */
lload 4 /* newEntries */
lsub
lstore 6 /* excess */
start local 6 // long excess
29: .line 521
aload 1 /* groups */
arraylength
iconst_1
iadd
newarray 10
astore 8 /* newGroups */
start local 8 // int[] newGroups
30: .line 522
aload 1 /* groups */
iconst_0
aload 8 /* newGroups */
iconst_0
aload 1 /* groups */
arraylength
invokestatic java.lang.System.arraycopy:(Ljava/lang/Object;ILjava/lang/Object;II)V
31: .line 523
aload 8 /* newGroups */
aload 1 /* groups */
arraylength
lload 6 /* excess */
l2i
iastore
32: .line 524
aload 8 /* newGroups */
astore 1 /* groups */
end local 8 // int[] newGroups
end local 6 // long excess
33: .line 526
StackMap locals:
StackMap stack:
aload 1 /* groups */
arraylength
anewarray int[]
astore 6 /* newMatrix */
start local 6 // int[][] newMatrix
34: .line 528
iconst_0
istore 7 /* i */
start local 7 // int i
35: .line 529
iconst_1
istore 8 /* jMin */
start local 8 // int jMin
36: .line 530
aload 0 /* matrix */
iload 7 /* i */
aaload
arraylength
istore 9 /* jMax */
start local 9 // int jMax
37: .line 531
iconst_0
istore 10 /* ni */
start local 10 // int ni
38: goto 59
39: .line 532
StackMap locals: int[][] int[] long long int[][] int int int int
StackMap stack:
aload 1 /* groups */
iload 10 /* ni */
iaload
istore 11 /* groupLength */
start local 11 // int groupLength
40: .line 533
iconst_1
iload 11 /* groupLength */
iadd
newarray 10
astore 12 /* group */
start local 12 // int[] group
41: .line 534
lconst_0
lstore 13 /* groupWeight */
start local 13 // long groupWeight
42: .line 535
aload 6 /* newMatrix */
iload 10 /* ni */
aload 12 /* group */
aastore
43: .line 536
iconst_1
istore 15 /* njFill */
start local 15 // int njFill
44: .line 537
goto 55
45: .line 538
StackMap locals: int[][] int[] long long int[][] int int int int int int[] long int
StackMap stack:
aload 12 /* group */
arraylength
iload 15 /* njFill */
isub
istore 16 /* len */
start local 16 // int len
46: .line 539
goto 49
47: .line 540
StackMap locals: int
StackMap stack:
iconst_1
istore 8 /* jMin */
48: .line 541
aload 0 /* matrix */
iinc 7 /* i */ 1
iload 7 /* i */
aaload
arraylength
istore 9 /* jMax */
49: .line 539
StackMap locals:
StackMap stack:
iload 8 /* jMin */
iload 9 /* jMax */
if_icmpeq 47
50: .line 543
iload 16 /* len */
iload 9 /* jMax */
iload 8 /* jMin */
isub
if_icmple 51
iload 9 /* jMax */
iload 8 /* jMin */
isub
istore 16 /* len */
51: .line 544
StackMap locals:
StackMap stack:
lload 13 /* groupWeight */
aload 0 /* matrix */
iload 7 /* i */
aaload
iconst_0
iaload
i2l
iload 16 /* len */
i2l
lmul
ladd
lstore 13 /* groupWeight */
52: .line 545
aload 0 /* matrix */
iload 7 /* i */
aaload
iload 9 /* jMax */
iload 16 /* len */
isub
aload 12 /* group */
iload 15 /* njFill */
iload 16 /* len */
invokestatic java.lang.System.arraycopy:(Ljava/lang/Object;ILjava/lang/Object;II)V
53: .line 546
iload 9 /* jMax */
iload 16 /* len */
isub
istore 9 /* jMax */
54: .line 547
iload 15 /* njFill */
iload 16 /* len */
iadd
istore 15 /* njFill */
end local 16 // int len
55: .line 537
StackMap locals:
StackMap stack:
iload 15 /* njFill */
aload 12 /* group */
arraylength
if_icmplt 45
56: .line 549
aload 12 /* group */
iconst_1
aload 12 /* group */
arraylength
invokestatic java.util.Arrays.sort:([III)V
57: .line 551
aload 12 /* group */
iconst_0
lload 13 /* groupWeight */
iload 11 /* groupLength */
iconst_2
idiv
i2l
ladd
iload 11 /* groupLength */
i2l
ldiv
l2i
iastore
end local 15 // int njFill
end local 13 // long groupWeight
end local 12 // int[] group
end local 11 // int groupLength
58: .line 531
iinc 10 /* ni */ 1
StackMap locals: int[][] int[] long long int[][] int int int int
StackMap stack:
59: iload 10 /* ni */
aload 1 /* groups */
arraylength
if_icmplt 39
end local 10 // int ni
60: .line 553
getstatic com.sun.java.util.jar.pack.Histogram.$assertionsDisabled:Z
ifne 61
iload 8 /* jMin */
iload 9 /* jMax */
if_icmpeq 61
new java.lang.AssertionError
dup
invokespecial java.lang.AssertionError.<init>:()V
athrow
61: .line 554
StackMap locals:
StackMap stack:
getstatic com.sun.java.util.jar.pack.Histogram.$assertionsDisabled:Z
ifne 62
iload 7 /* i */
aload 0 /* matrix */
arraylength
iconst_1
isub
if_icmpeq 62
new java.lang.AssertionError
dup
invokespecial java.lang.AssertionError.<init>:()V
athrow
62: .line 555
StackMap locals:
StackMap stack:
aload 6 /* newMatrix */
areturn
end local 9 // int jMax
end local 8 // int jMin
end local 7 // int i
end local 6 // int[][] newMatrix
end local 4 // long newEntries
end local 2 // long oldEntries
end local 1 // int[] groups
end local 0 // int[][] matrix
LocalVariableTable:
Start End Slot Name Signature
0 63 0 matrix [[I
0 63 1 groups [I
1 63 2 oldEntries J
2 6 4 i I
7 63 4 newEntries J
8 12 6 ni I
15 27 6 ok J
16 27 8 ni I
19 24 9 newGroups [I
29 33 6 excess J
30 33 8 newGroups [I
34 63 6 newMatrix [[I
35 63 7 i I
36 63 8 jMin I
37 63 9 jMax I
38 60 10 ni I
40 58 11 groupLength I
41 58 12 group [I
42 58 13 groupWeight J
44 58 15 njFill I
46 55 16 len I
MethodParameters:
Name Flags
matrix
groups
public static com.sun.java.util.jar.pack.Histogram makeByteHistogram(java.io.InputStream);
descriptor: (Ljava/io/InputStream;)Lcom/sun/java/util/jar/pack/Histogram;
flags: (0x0009) ACC_PUBLIC, ACC_STATIC
Code:
stack=4, locals=5, args_size=1
start local 0 // java.io.InputStream bytes
0: .line 560
sipush 4096
newarray 8
astore 1 /* buf */
start local 1 // byte[] buf
1: .line 561
sipush 256
newarray 10
astore 2 /* tally */
start local 2 // int[] tally
2: .line 562
goto 8
start local 3 // int nr
3: .line 563
StackMap locals: byte[] int[] int
StackMap stack:
iconst_0
istore 4 /* i */
start local 4 // int i
4: goto 7
5: .line 564
StackMap locals: int
StackMap stack:
aload 2 /* tally */
aload 1 /* buf */
iload 4 /* i */
baload
sipush 255
iand
dup2
iaload
iconst_1
iadd
iastore
6: .line 563
iinc 4 /* i */ 1
StackMap locals:
StackMap stack:
7: iload 4 /* i */
iload 3 /* nr */
if_icmplt 5
end local 4 // int i
end local 3 // int nr
8: .line 562
StackMap locals:
StackMap stack:
aload 0 /* bytes */
aload 1 /* buf */
invokevirtual java.io.InputStream.read:([B)I
dup
istore 3 /* nr */
start local 3 // int nr
9: ifgt 3
end local 3 // int nr
10: .line 568
sipush 256
iconst_2
multianewarray [[I 2
astore 3 /* matrix */
start local 3 // int[][] matrix
11: .line 569
iconst_0
istore 4 /* i */
start local 4 // int i
12: goto 16
13: .line 570
StackMap locals: int[][] int
StackMap stack:
aload 3 /* matrix */
iload 4 /* i */
aaload
iconst_0
aload 2 /* tally */
iload 4 /* i */
iaload
iastore
14: .line 571
aload 3 /* matrix */
iload 4 /* i */
aaload
iconst_1
iload 4 /* i */
iastore
15: .line 569
iinc 4 /* i */ 1
StackMap locals:
StackMap stack:
16: iload 4 /* i */
aload 2 /* tally */
arraylength
if_icmplt 13
end local 4 // int i
17: .line 573
new com.sun.java.util.jar.pack.Histogram
dup
aload 3 /* matrix */
invokespecial com.sun.java.util.jar.pack.Histogram.<init>:([[I)V
areturn
end local 3 // int[][] matrix
end local 2 // int[] tally
end local 1 // byte[] buf
end local 0 // java.io.InputStream bytes
LocalVariableTable:
Start End Slot Name Signature
0 18 0 bytes Ljava/io/InputStream;
1 18 1 buf [B
2 18 2 tally [I
3 8 3 nr I
9 10 3 nr I
4 8 4 i I
11 18 3 matrix [[I
12 17 4 i I
Exceptions:
throws java.io.IOException
MethodParameters:
Name Flags
bytes
private static int[] sortedSlice(int[], int, int);
descriptor: ([III)[I
flags: (0x000a) ACC_PRIVATE, ACC_STATIC
Code:
stack=5, locals=4, args_size=3
start local 0 // int[] valueSequence
start local 1 // int start
start local 2 // int end
0: .line 579
iload 1 /* start */
ifne 3
iload 2 /* end */
aload 0 /* valueSequence */
arraylength
if_icmpne 3
1: .line 580
aload 0 /* valueSequence */
iconst_0
iconst_0
invokestatic com.sun.java.util.jar.pack.Histogram.isSorted:([IIZ)Z
ifeq 3
2: .line 581
aload 0 /* valueSequence */
areturn
3: .line 583
StackMap locals:
StackMap stack:
iload 2 /* end */
iload 1 /* start */
isub
newarray 10
astore 3 /* slice */
start local 3 // int[] slice
4: .line 584
aload 0 /* valueSequence */
iload 1 /* start */
aload 3 /* slice */
iconst_0
aload 3 /* slice */
arraylength
invokestatic java.lang.System.arraycopy:(Ljava/lang/Object;ILjava/lang/Object;II)V
5: .line 585
aload 3 /* slice */
invokestatic java.util.Arrays.sort:([I)V
6: .line 586
aload 3 /* slice */
areturn
end local 3 // int[] slice
end local 2 // int end
end local 1 // int start
end local 0 // int[] valueSequence
LocalVariableTable:
Start End Slot Name Signature
0 7 0 valueSequence [I
0 7 1 start I
0 7 2 end I
4 7 3 slice [I
MethodParameters:
Name Flags
valueSequence
start
end
private static boolean isSorted(int[], int, boolean);
descriptor: ([IIZ)Z
flags: (0x000a) ACC_PRIVATE, ACC_STATIC
Code:
stack=3, locals=4, args_size=3
start local 0 // int[] values
start local 1 // int from
start local 2 // boolean strict
0: .line 593
iload 1 /* from */
iconst_1
iadd
istore 3 /* i */
start local 3 // int i
1: goto 6
2: .line 594
StackMap locals: int
StackMap stack:
iload 2 /* strict */
ifeq 3
aload 0 /* values */
iload 3 /* i */
iconst_1
isub
iaload
aload 0 /* values */
iload 3 /* i */
iaload
if_icmplt 5
goto 4
3: .line 595
StackMap locals:
StackMap stack:
aload 0 /* values */
iload 3 /* i */
iconst_1
isub
iaload
aload 0 /* values */
iload 3 /* i */
iaload
if_icmple 5
4: .line 596
StackMap locals:
StackMap stack:
iconst_0
ireturn
5: .line 593
StackMap locals:
StackMap stack:
iinc 3 /* i */ 1
StackMap locals:
StackMap stack:
6: iload 3 /* i */
aload 0 /* values */
arraylength
if_icmplt 2
end local 3 // int i
7: .line 599
iconst_1
ireturn
end local 2 // boolean strict
end local 1 // int from
end local 0 // int[] values
LocalVariableTable:
Start End Slot Name Signature
0 8 0 values [I
0 8 1 from I
0 8 2 strict Z
1 7 3 i I
MethodParameters:
Name Flags
values
from
strict
private static int[] maybeSort(int[]);
descriptor: ([I)[I
flags: (0x000a) ACC_PRIVATE, ACC_STATIC
Code:
stack=3, locals=1, args_size=1
start local 0 // int[] values
0: .line 605
aload 0 /* values */
iconst_0
iconst_0
invokestatic com.sun.java.util.jar.pack.Histogram.isSorted:([IIZ)Z
ifne 3
1: .line 606
aload 0 /* values */
invokevirtual int[].clone:()Ljava/lang/Object;
checkcast int[]
astore 0 /* values */
2: .line 607
aload 0 /* values */
invokestatic java.util.Arrays.sort:([I)V
3: .line 609
StackMap locals:
StackMap stack:
aload 0 /* values */
areturn
end local 0 // int[] values
LocalVariableTable:
Start End Slot Name Signature
0 4 0 values [I
MethodParameters:
Name Flags
values
private boolean assertWellFormed(int[]);
descriptor: ([I)Z
flags: (0x0002) ACC_PRIVATE
Code:
stack=1, locals=2, args_size=2
start local 0 // com.sun.java.util.jar.pack.Histogram this
start local 1 // int[] valueSequence
0: .line 660
iconst_1
ireturn
end local 1 // int[] valueSequence
end local 0 // com.sun.java.util.jar.pack.Histogram this
LocalVariableTable:
Start End Slot Name Signature
0 1 0 this Lcom/sun/java/util/jar/pack/Histogram;
0 1 1 valueSequence [I
MethodParameters:
Name Flags
valueSequence
}
SourceFile: "Histogram.java"
NestMembers:
com.sun.java.util.jar.pack.Histogram$1 com.sun.java.util.jar.pack.Histogram$BitMetric
InnerClasses:
com.sun.java.util.jar.pack.Histogram$1
public abstract BitMetric = com.sun.java.util.jar.pack.Histogram$BitMetric of com.sun.java.util.jar.pack.Histogram