public final class java.awt.font.TextMeasurer implements java.lang.Cloneable
minor version: 0
major version: 59
flags: flags: (0x0031) ACC_PUBLIC, ACC_FINAL, ACC_SUPER
this_class: java.awt.font.TextMeasurer
super_class: java.lang.Object
{
private static float EST_LINES;
descriptor: F
flags: (0x000a) ACC_PRIVATE, ACC_STATIC
private java.awt.font.FontRenderContext fFrc;
descriptor: Ljava/awt/font/FontRenderContext;
flags: (0x0002) ACC_PRIVATE
private int fStart;
descriptor: I
flags: (0x0002) ACC_PRIVATE
private char[] fChars;
descriptor: [C
flags: (0x0002) ACC_PRIVATE
private java.text.Bidi fBidi;
descriptor: Ljava/text/Bidi;
flags: (0x0002) ACC_PRIVATE
private byte[] fLevels;
descriptor: [B
flags: (0x0002) ACC_PRIVATE
private sun.font.TextLineComponent[] fComponents;
descriptor: [Lsun/font/TextLineComponent;
flags: (0x0002) ACC_PRIVATE
private int fComponentStart;
descriptor: I
flags: (0x0002) ACC_PRIVATE
private int fComponentLimit;
descriptor: I
flags: (0x0002) ACC_PRIVATE
private boolean haveLayoutWindow;
descriptor: Z
flags: (0x0002) ACC_PRIVATE
private java.text.BreakIterator fLineBreak;
descriptor: Ljava/text/BreakIterator;
flags: (0x0002) ACC_PRIVATE
private java.awt.font.CharArrayIterator charIter;
descriptor: Ljava/awt/font/CharArrayIterator;
flags: (0x0002) ACC_PRIVATE
int layoutCount;
descriptor: I
flags: (0x0000)
int layoutCharCount;
descriptor: I
flags: (0x0000)
private java.awt.font.StyledParagraph fParagraph;
descriptor: Ljava/awt/font/StyledParagraph;
flags: (0x0002) ACC_PRIVATE
private boolean fIsDirectionLTR;
descriptor: Z
flags: (0x0002) ACC_PRIVATE
private byte fBaseline;
descriptor: B
flags: (0x0002) ACC_PRIVATE
private float[] fBaselineOffsets;
descriptor: [F
flags: (0x0002) ACC_PRIVATE
private float fJustifyRatio;
descriptor: F
flags: (0x0002) ACC_PRIVATE
private int formattedChars;
descriptor: I
flags: (0x0002) ACC_PRIVATE
private static boolean wantStats;
descriptor: Z
flags: (0x000a) ACC_PRIVATE, ACC_STATIC
private boolean collectStats;
descriptor: Z
flags: (0x0002) ACC_PRIVATE
static void <clinit>();
descriptor: ()V
flags: (0x0008) ACC_STATIC
Code:
stack=1, locals=0, args_size=0
0: ldc 2.1
putstatic java.awt.font.TextMeasurer.EST_LINES:F
1: iconst_0
putstatic java.awt.font.TextMeasurer.wantStats:Z
return
LocalVariableTable:
Start End Slot Name Signature
public void <init>(java.text.AttributedCharacterIterator, java.awt.font.FontRenderContext);
descriptor: (Ljava/text/AttributedCharacterIterator;Ljava/awt/font/FontRenderContext;)V
flags: (0x0001) ACC_PUBLIC
Code:
stack=2, locals=3, args_size=3
start local 0 start local 1 start local 2 0: aload 0
invokespecial java.lang.Object.<init>:()V
1: aload 0
aconst_null
putfield java.awt.font.TextMeasurer.fLineBreak:Ljava/text/BreakIterator;
2: aload 0
aconst_null
putfield java.awt.font.TextMeasurer.charIter:Ljava/awt/font/CharArrayIterator;
3: aload 0
iconst_0
putfield java.awt.font.TextMeasurer.layoutCount:I
4: aload 0
iconst_0
putfield java.awt.font.TextMeasurer.layoutCharCount:I
5: aload 0
fconst_1
putfield java.awt.font.TextMeasurer.fJustifyRatio:F
6: aload 0
iconst_0
putfield java.awt.font.TextMeasurer.formattedChars:I
7: aload 0
iconst_0
putfield java.awt.font.TextMeasurer.collectStats:Z
8: aload 0
aload 2
putfield java.awt.font.TextMeasurer.fFrc:Ljava/awt/font/FontRenderContext;
9: aload 0
aload 1
invokevirtual java.awt.font.TextMeasurer.initAll:(Ljava/text/AttributedCharacterIterator;)V
10: return
end local 2 end local 1 end local 0 LocalVariableTable:
Start End Slot Name Signature
0 11 0 this Ljava/awt/font/TextMeasurer;
0 11 1 text Ljava/text/AttributedCharacterIterator;
0 11 2 frc Ljava/awt/font/FontRenderContext;
MethodParameters:
Name Flags
text
frc
protected java.lang.Object clone();
descriptor: ()Ljava/lang/Object;
flags: (0x0004) ACC_PROTECTED
Code:
stack=2, locals=2, args_size=1
start local 0 0: aload 0
invokespecial java.lang.Object.clone:()Ljava/lang/Object;
checkcast java.awt.font.TextMeasurer
astore 1
start local 1 1: goto 4
end local 1 2: StackMap locals:
StackMap stack: java.lang.CloneNotSupportedException
pop
3: new java.lang.Error
dup
invokespecial java.lang.Error.<init>:()V
athrow
start local 1 4: StackMap locals: java.awt.font.TextMeasurer
StackMap stack:
aload 0
getfield java.awt.font.TextMeasurer.fComponents:[Lsun/font/TextLineComponent;
ifnull 6
5: aload 1
aload 0
getfield java.awt.font.TextMeasurer.fComponents:[Lsun/font/TextLineComponent;
invokevirtual sun.font.TextLineComponent[].clone:()Ljava/lang/Object;
checkcast sun.font.TextLineComponent[]
putfield java.awt.font.TextMeasurer.fComponents:[Lsun/font/TextLineComponent;
6: StackMap locals:
StackMap stack:
aload 1
areturn
end local 1 end local 0 LocalVariableTable:
Start End Slot Name Signature
0 7 0 this Ljava/awt/font/TextMeasurer;
1 2 1 other Ljava/awt/font/TextMeasurer;
4 7 1 other Ljava/awt/font/TextMeasurer;
Exception table:
from to target type
0 1 2 Class java.lang.CloneNotSupportedException
private void invalidateComponents();
descriptor: ()V
flags: (0x0002) ACC_PRIVATE
Code:
stack=4, locals=1, args_size=1
start local 0 0: aload 0
aload 0
aload 0
getfield java.awt.font.TextMeasurer.fChars:[C
arraylength
dup_x1
putfield java.awt.font.TextMeasurer.fComponentLimit:I
putfield java.awt.font.TextMeasurer.fComponentStart:I
1: aload 0
aconst_null
putfield java.awt.font.TextMeasurer.fComponents:[Lsun/font/TextLineComponent;
2: aload 0
iconst_0
putfield java.awt.font.TextMeasurer.haveLayoutWindow:Z
3: return
end local 0 LocalVariableTable:
Start End Slot Name Signature
0 4 0 this Ljava/awt/font/TextMeasurer;
private void initAll(java.text.AttributedCharacterIterator);
descriptor: (Ljava/text/AttributedCharacterIterator;)V
flags: (0x0002) ACC_PRIVATE
Code:
stack=5, locals=10, args_size=2
start local 0 start local 1 0: aload 0
aload 1
invokeinterface java.text.AttributedCharacterIterator.getBeginIndex:()I
putfield java.awt.font.TextMeasurer.fStart:I
1: aload 0
aload 1
invokeinterface java.text.AttributedCharacterIterator.getEndIndex:()I
aload 0
getfield java.awt.font.TextMeasurer.fStart:I
isub
newarray 5
putfield java.awt.font.TextMeasurer.fChars:[C
2: iconst_0
istore 2
start local 2 3: aload 1
invokeinterface java.text.AttributedCharacterIterator.first:()C
istore 3
start local 3 4: goto 7
5: StackMap locals: int int
StackMap stack:
aload 0
getfield java.awt.font.TextMeasurer.fChars:[C
iload 2
iinc 2 1
iload 3
castore
6: aload 1
invokeinterface java.text.AttributedCharacterIterator.next:()C
istore 3
7: StackMap locals:
StackMap stack:
iload 3
ldc 65535
if_icmpne 5
end local 3 8: aload 1
invokeinterface java.text.AttributedCharacterIterator.first:()C
pop
9: aload 0
new java.text.Bidi
dup
aload 1
invokespecial java.text.Bidi.<init>:(Ljava/text/AttributedCharacterIterator;)V
putfield java.awt.font.TextMeasurer.fBidi:Ljava/text/Bidi;
10: aload 0
getfield java.awt.font.TextMeasurer.fBidi:Ljava/text/Bidi;
invokevirtual java.text.Bidi.isLeftToRight:()Z
ifeq 12
11: aload 0
aconst_null
putfield java.awt.font.TextMeasurer.fBidi:Ljava/text/Bidi;
12: StackMap locals:
StackMap stack:
aload 1
invokeinterface java.text.AttributedCharacterIterator.first:()C
pop
13: aload 1
invokeinterface java.text.AttributedCharacterIterator.getAttributes:()Ljava/util/Map;
astore 3
start local 3 14: aload 3
invokestatic sun.font.AttributeValues.getNumericShaping:(Ljava/util/Map;)Ljava/awt/font/NumericShaper;
astore 4
start local 4 15: aload 4
ifnull 17
16: aload 4
aload 0
getfield java.awt.font.TextMeasurer.fChars:[C
iconst_0
aload 0
getfield java.awt.font.TextMeasurer.fChars:[C
arraylength
invokevirtual java.awt.font.NumericShaper.shape:([CII)V
17: StackMap locals: java.util.Map java.awt.font.NumericShaper
StackMap stack:
aload 0
new java.awt.font.StyledParagraph
dup
aload 1
aload 0
getfield java.awt.font.TextMeasurer.fChars:[C
invokespecial java.awt.font.StyledParagraph.<init>:(Ljava/text/AttributedCharacterIterator;[C)V
putfield java.awt.font.TextMeasurer.fParagraph:Ljava/awt/font/StyledParagraph;
18: aload 0
aload 3
invokestatic sun.font.AttributeValues.getJustification:(Ljava/util/Map;)F
putfield java.awt.font.TextMeasurer.fJustifyRatio:F
19: aload 1
invokestatic java.awt.font.TextLine.advanceToFirstFont:(Ljava/text/AttributedCharacterIterator;)Z
istore 5
start local 5 20: iload 5
ifeq 27
21: aload 1
invokestatic java.awt.font.TextLine.getFontAtCurrentPos:(Ljava/text/AttributedCharacterIterator;)Ljava/awt/Font;
astore 6
start local 6 22: aload 1
invokeinterface java.text.AttributedCharacterIterator.getIndex:()I
aload 1
invokeinterface java.text.AttributedCharacterIterator.getBeginIndex:()I
isub
istore 7
start local 7 23: aload 6
aload 0
getfield java.awt.font.TextMeasurer.fChars:[C
iload 7
iload 7
iconst_1
iadd
aload 0
getfield java.awt.font.TextMeasurer.fFrc:Ljava/awt/font/FontRenderContext;
invokevirtual java.awt.Font.getLineMetrics:([CIILjava/awt/font/FontRenderContext;)Ljava/awt/font/LineMetrics;
astore 8
start local 8 24: aload 0
aload 8
invokevirtual java.awt.font.LineMetrics.getBaselineIndex:()I
i2b
putfield java.awt.font.TextMeasurer.fBaseline:B
25: aload 0
aload 8
invokevirtual java.awt.font.LineMetrics.getBaselineOffsets:()[F
putfield java.awt.font.TextMeasurer.fBaselineOffsets:[F
end local 8 end local 7 end local 6 26: goto 34
27: StackMap locals: int
StackMap stack:
aload 3
getstatic java.awt.font.TextAttribute.CHAR_REPLACEMENT:Ljava/awt/font/TextAttribute;
invokeinterface java.util.Map.get:(Ljava/lang/Object;)Ljava/lang/Object;
checkcast java.awt.font.GraphicAttribute
28: astore 6
start local 6 29: aload 0
aload 6
invokestatic java.awt.font.TextLayout.getBaselineFromGraphic:(Ljava/awt/font/GraphicAttribute;)B
putfield java.awt.font.TextMeasurer.fBaseline:B
30: new java.util.Hashtable
dup
iconst_5
ldc 0.9
invokespecial java.util.Hashtable.<init>:(IF)V
astore 7
start local 7 31: new java.awt.Font
dup
aload 7
invokespecial java.awt.Font.<init>:(Ljava/util/Map;)V
astore 8
start local 8 32: aload 8
ldc " "
iconst_0
iconst_1
aload 0
getfield java.awt.font.TextMeasurer.fFrc:Ljava/awt/font/FontRenderContext;
invokevirtual java.awt.Font.getLineMetrics:(Ljava/lang/String;IILjava/awt/font/FontRenderContext;)Ljava/awt/font/LineMetrics;
astore 9
start local 9 33: aload 0
aload 9
invokevirtual java.awt.font.LineMetrics.getBaselineOffsets:()[F
putfield java.awt.font.TextMeasurer.fBaselineOffsets:[F
end local 9 end local 8 end local 7 end local 6 34: StackMap locals:
StackMap stack:
aload 0
aload 0
getfield java.awt.font.TextMeasurer.fBaselineOffsets:[F
aload 0
getfield java.awt.font.TextMeasurer.fBaseline:B
invokestatic java.awt.font.TextLine.getNormalizedOffsets:([FB)[F
putfield java.awt.font.TextMeasurer.fBaselineOffsets:[F
end local 5 35: aload 0
invokevirtual java.awt.font.TextMeasurer.invalidateComponents:()V
36: return
end local 4 end local 3 end local 2 end local 1 end local 0 LocalVariableTable:
Start End Slot Name Signature
0 37 0 this Ljava/awt/font/TextMeasurer;
0 37 1 text Ljava/text/AttributedCharacterIterator;
3 37 2 n I
4 8 3 c C
14 37 3 paragraphAttrs Ljava/util/Map<+Ljava/text/AttributedCharacterIterator$Attribute;*>;
15 37 4 shaper Ljava/awt/font/NumericShaper;
20 35 5 haveFont Z
22 26 6 defaultFont Ljava/awt/Font;
23 26 7 charsStart I
24 26 8 lm Ljava/awt/font/LineMetrics;
29 34 6 graphic Ljava/awt/font/GraphicAttribute;
31 34 7 fmap Ljava/util/Hashtable<Ljava/text/AttributedCharacterIterator$Attribute;*>;
32 34 8 dummyFont Ljava/awt/Font;
33 34 9 lm Ljava/awt/font/LineMetrics;
MethodParameters:
Name Flags
text
private void generateComponents(int, int);
descriptor: (II)V
flags: (0x0002) ACC_PRIVATE
Code:
stack=8, locals=7, args_size=3
start local 0 start local 1 start local 2 0: aload 0
getfield java.awt.font.TextMeasurer.collectStats:Z
ifeq 2
1: aload 0
dup
getfield java.awt.font.TextMeasurer.formattedChars:I
iload 2
iload 1
isub
iadd
putfield java.awt.font.TextMeasurer.formattedChars:I
2: StackMap locals:
StackMap stack:
iconst_0
istore 3
start local 3 3: new sun.font.TextLabelFactory
dup
aload 0
getfield java.awt.font.TextMeasurer.fFrc:Ljava/awt/font/FontRenderContext;
aload 0
getfield java.awt.font.TextMeasurer.fChars:[C
aload 0
getfield java.awt.font.TextMeasurer.fBidi:Ljava/text/Bidi;
iload 3
invokespecial sun.font.TextLabelFactory.<init>:(Ljava/awt/font/FontRenderContext;[CLjava/text/Bidi;I)V
astore 4
start local 4 4: aconst_null
astore 5
start local 5 5: aload 0
getfield java.awt.font.TextMeasurer.fBidi:Ljava/text/Bidi;
ifnull 11
6: aload 0
aload 0
getfield java.awt.font.TextMeasurer.fBidi:Ljava/text/Bidi;
invokestatic sun.font.BidiUtils.getLevels:(Ljava/text/Bidi;)[B
putfield java.awt.font.TextMeasurer.fLevels:[B
7: aload 0
getfield java.awt.font.TextMeasurer.fLevels:[B
invokestatic sun.font.BidiUtils.createVisualToLogicalMap:([B)[I
astore 6
start local 6 8: aload 6
invokestatic sun.font.BidiUtils.createInverseMap:([I)[I
astore 5
9: aload 0
aload 0
getfield java.awt.font.TextMeasurer.fBidi:Ljava/text/Bidi;
invokevirtual java.text.Bidi.baseIsLeftToRight:()Z
putfield java.awt.font.TextMeasurer.fIsDirectionLTR:Z
end local 6 10: goto 13
11: StackMap locals: int sun.font.TextLabelFactory int[]
StackMap stack:
aload 0
aconst_null
putfield java.awt.font.TextMeasurer.fLevels:[B
12: aload 0
iconst_1
putfield java.awt.font.TextMeasurer.fIsDirectionLTR:Z
13: StackMap locals:
StackMap stack:
aload 0
14: aload 0
getfield java.awt.font.TextMeasurer.fParagraph:Ljava/awt/font/StyledParagraph;
aload 0
getfield java.awt.font.TextMeasurer.fChars:[C
iload 1
iload 2
aload 5
aload 0
getfield java.awt.font.TextMeasurer.fLevels:[B
aload 4
15: invokestatic java.awt.font.TextLine.getComponents:(Ljava/awt/font/StyledParagraph;[CII[I[BLsun/font/TextLabelFactory;)[Lsun/font/TextLineComponent;
putfield java.awt.font.TextMeasurer.fComponents:[Lsun/font/TextLineComponent;
16: goto 21
17: StackMap locals:
StackMap stack: java.lang.IllegalArgumentException
astore 6
start local 6 18: getstatic java.lang.System.out:Ljava/io/PrintStream;
new java.lang.StringBuilder
dup
ldc "startingAt="
invokespecial java.lang.StringBuilder.<init>:(Ljava/lang/String;)V
iload 1
invokevirtual java.lang.StringBuilder.append:(I)Ljava/lang/StringBuilder;
ldc "; endingAt="
invokevirtual java.lang.StringBuilder.append:(Ljava/lang/String;)Ljava/lang/StringBuilder;
iload 2
invokevirtual java.lang.StringBuilder.append:(I)Ljava/lang/StringBuilder;
invokevirtual java.lang.StringBuilder.toString:()Ljava/lang/String;
invokevirtual java.io.PrintStream.println:(Ljava/lang/String;)V
19: getstatic java.lang.System.out:Ljava/io/PrintStream;
new java.lang.StringBuilder
dup
ldc "fComponentLimit="
invokespecial java.lang.StringBuilder.<init>:(Ljava/lang/String;)V
aload 0
getfield java.awt.font.TextMeasurer.fComponentLimit:I
invokevirtual java.lang.StringBuilder.append:(I)Ljava/lang/StringBuilder;
invokevirtual java.lang.StringBuilder.toString:()Ljava/lang/String;
invokevirtual java.io.PrintStream.println:(Ljava/lang/String;)V
20: aload 6
athrow
end local 6 21: StackMap locals:
StackMap stack:
aload 0
iload 1
putfield java.awt.font.TextMeasurer.fComponentStart:I
22: aload 0
iload 2
putfield java.awt.font.TextMeasurer.fComponentLimit:I
23: return
end local 5 end local 4 end local 3 end local 2 end local 1 end local 0 LocalVariableTable:
Start End Slot Name Signature
0 24 0 this Ljava/awt/font/TextMeasurer;
0 24 1 startingAt I
0 24 2 endingAt I
3 24 3 layoutFlags I
4 24 4 factory Lsun/font/TextLabelFactory;
5 24 5 charsLtoV [I
8 10 6 charsVtoL [I
18 21 6 e Ljava/lang/IllegalArgumentException;
Exception table:
from to target type
13 16 17 Class java.lang.IllegalArgumentException
MethodParameters:
Name Flags
startingAt
endingAt
private int calcLineBreak(int, float);
descriptor: (IF)I
flags: (0x0002) ACC_PRIVATE
Code:
stack=4, locals=10, args_size=3
start local 0 start local 1 start local 2 0: iload 1
istore 3
start local 3 1: fload 2
fstore 4
start local 4 2: aload 0
getfield java.awt.font.TextMeasurer.fComponentStart:I
istore 6
start local 6 3: iconst_0
istore 5
start local 5 4: goto 10
5: StackMap locals: java.awt.font.TextMeasurer int float int float int int
StackMap stack:
iload 6
aload 0
getfield java.awt.font.TextMeasurer.fComponents:[Lsun/font/TextLineComponent;
iload 5
aaload
invokeinterface sun.font.TextLineComponent.getNumCharacters:()I
iadd
istore 7
start local 7 6: iload 7
iload 3
if_icmple 8
7: goto 22
8: StackMap locals: int
StackMap stack:
iload 7
istore 6
end local 7 9: iinc 5 1
StackMap locals:
StackMap stack:
10: iload 5
aload 0
getfield java.awt.font.TextMeasurer.fComponents:[Lsun/font/TextLineComponent;
arraylength
if_icmplt 5
11: goto 22
12: StackMap locals:
StackMap stack:
aload 0
getfield java.awt.font.TextMeasurer.fComponents:[Lsun/font/TextLineComponent;
iload 5
aaload
astore 7
start local 7 13: aload 7
invokeinterface sun.font.TextLineComponent.getNumCharacters:()I
istore 8
start local 8 14: aload 7
iload 3
iload 6
isub
fload 4
invokeinterface sun.font.TextLineComponent.getLineBreakIndex:(IF)I
istore 9
start local 9 15: iload 9
iload 8
if_icmpne 20
iload 5
aload 0
getfield java.awt.font.TextMeasurer.fComponents:[Lsun/font/TextLineComponent;
arraylength
if_icmpge 20
16: fload 4
aload 7
iload 3
iload 6
isub
iload 9
invokeinterface sun.font.TextLineComponent.getAdvanceBetween:(II)F
fsub
fstore 4
17: iload 6
iload 8
iadd
istore 6
18: iload 6
istore 3
19: goto 21
20: StackMap locals: sun.font.TextLineComponent int int
StackMap stack:
iload 6
iload 9
iadd
ireturn
end local 9 end local 8 end local 7 21: StackMap locals:
StackMap stack:
iinc 5 1
StackMap locals:
StackMap stack:
22: iload 5
aload 0
getfield java.awt.font.TextMeasurer.fComponents:[Lsun/font/TextLineComponent;
arraylength
if_icmplt 12
23: aload 0
getfield java.awt.font.TextMeasurer.fComponentLimit:I
aload 0
getfield java.awt.font.TextMeasurer.fChars:[C
arraylength
if_icmpge 26
24: aload 0
iload 1
aload 0
getfield java.awt.font.TextMeasurer.fChars:[C
arraylength
invokevirtual java.awt.font.TextMeasurer.generateComponents:(II)V
25: aload 0
iload 1
fload 2
invokevirtual java.awt.font.TextMeasurer.calcLineBreak:(IF)I
ireturn
26: StackMap locals:
StackMap stack:
aload 0
getfield java.awt.font.TextMeasurer.fChars:[C
arraylength
ireturn
end local 6 end local 5 end local 4 end local 3 end local 2 end local 1 end local 0 LocalVariableTable:
Start End Slot Name Signature
0 27 0 this Ljava/awt/font/TextMeasurer;
0 27 1 pos I
0 27 2 maxAdvance F
1 27 3 startPos I
2 27 4 width F
4 27 5 tlcIndex I
3 27 6 tlcStart I
6 9 7 gaLimit I
13 21 7 tlc Lsun/font/TextLineComponent;
14 21 8 numCharsInGa I
15 21 9 lineBreak I
MethodParameters:
Name Flags
pos final
maxAdvance final
private int trailingCdWhitespaceStart(int, int);
descriptor: (II)I
flags: (0x0002) ACC_PRIVATE
Code:
stack=2, locals=5, args_size=3
start local 0 start local 1 start local 2 0: aload 0
getfield java.awt.font.TextMeasurer.fLevels:[B
ifnull 10
1: aload 0
getfield java.awt.font.TextMeasurer.fIsDirectionLTR:Z
ifeq 2
iconst_0
goto 3
StackMap locals:
StackMap stack:
2: iconst_1
StackMap locals:
StackMap stack: int
3: i2b
istore 3
start local 3 4: iload 2
istore 4
start local 4 5: goto 9
6: StackMap locals: int int
StackMap stack:
aload 0
getfield java.awt.font.TextMeasurer.fLevels:[B
iload 4
baload
iconst_2
irem
iload 3
if_icmpeq 8
7: aload 0
getfield java.awt.font.TextMeasurer.fChars:[C
iload 4
caload
invokestatic java.lang.Character.getDirectionality:(C)B
bipush 12
if_icmpeq 9
8: StackMap locals:
StackMap stack:
iinc 4 1
iload 4
ireturn
9: StackMap locals:
StackMap stack:
iinc 4 -1
iload 4
iload 1
if_icmpge 6
end local 4 end local 3 10: StackMap locals:
StackMap stack:
iload 1
ireturn
end local 2 end local 1 end local 0 LocalVariableTable:
Start End Slot Name Signature
0 11 0 this Ljava/awt/font/TextMeasurer;
0 11 1 startPos I
0 11 2 limitPos I
4 10 3 baseLevel B
5 10 4 cdWsStart I
MethodParameters:
Name Flags
startPos
limitPos
private sun.font.TextLineComponent[] makeComponentsOnRange(int, int);
descriptor: (II)[Lsun/font/TextLineComponent;
flags: (0x0002) ACC_PRIVATE
Code:
stack=6, locals=16, args_size=3
start local 0 start local 1 start local 2 0: aload 0
iload 1
iload 2
invokevirtual java.awt.font.TextMeasurer.trailingCdWhitespaceStart:(II)I
istore 3
start local 3 1: aload 0
getfield java.awt.font.TextMeasurer.fComponentStart:I
istore 5
start local 5 2: iconst_0
istore 4
start local 4 3: goto 9
4: StackMap locals: int int int
StackMap stack:
iload 5
aload 0
getfield java.awt.font.TextMeasurer.fComponents:[Lsun/font/TextLineComponent;
iload 4
aaload
invokeinterface sun.font.TextLineComponent.getNumCharacters:()I
iadd
istore 6
start local 6 5: iload 6
iload 1
if_icmple 7
6: goto 10
7: StackMap locals: int
StackMap stack:
iload 6
istore 5
end local 6 8: iinc 4 1
StackMap locals:
StackMap stack:
9: iload 4
aload 0
getfield java.awt.font.TextMeasurer.fComponents:[Lsun/font/TextLineComponent;
arraylength
if_icmplt 4
10: StackMap locals:
StackMap stack:
iconst_0
istore 7
start local 7 11: iload 5
istore 8
start local 8 12: iload 4
istore 9
start local 9 13: iconst_1
istore 10
start local 10 14: goto 24
15: StackMap locals: java.awt.font.TextMeasurer int int int int int top int int int int
StackMap stack:
iload 8
aload 0
getfield java.awt.font.TextMeasurer.fComponents:[Lsun/font/TextLineComponent;
iload 9
aaload
invokeinterface sun.font.TextLineComponent.getNumCharacters:()I
iadd
istore 11
start local 11 16: iload 3
iload 8
iload 1
invokestatic java.lang.Math.max:(II)I
if_icmple 19
17: iload 3
iload 11
iload 2
invokestatic java.lang.Math.min:(II)I
if_icmpge 19
18: iconst_1
istore 7
19: StackMap locals: int
StackMap stack:
iload 11
iload 2
if_icmplt 22
20: iconst_0
istore 10
21: goto 23
22: StackMap locals:
StackMap stack:
iload 11
istore 8
end local 11 23: StackMap locals:
StackMap stack:
iinc 9 1
StackMap locals:
StackMap stack:
24: iload 10
ifne 15
end local 10 25: iload 9
iload 4
isub
istore 6
start local 6 26: iload 7
ifeq 28
27: iinc 6 1
end local 9 end local 8 end local 7 28: StackMap locals: java.awt.font.TextMeasurer int int int int int int
StackMap stack:
iload 6
anewarray sun.font.TextLineComponent
astore 7
start local 7 29: iconst_0
istore 8
start local 8 30: iload 1
istore 9
start local 9 31: iload 3
istore 10
start local 10 32: iload 10
iload 1
if_icmpne 38
33: aload 0
getfield java.awt.font.TextMeasurer.fIsDirectionLTR:Z
ifeq 34
iconst_0
goto 35
34: StackMap locals: java.awt.font.TextMeasurer int int int int int int sun.font.TextLineComponent[] int int int
StackMap stack:
iconst_1
35: StackMap locals:
StackMap stack: int
istore 11
start local 11 36: iload 2
istore 10
37: goto 58
end local 11 38: StackMap locals:
StackMap stack:
iconst_2
istore 11
start local 11 39: goto 58
40: StackMap locals: int
StackMap stack:
aload 0
getfield java.awt.font.TextMeasurer.fComponents:[Lsun/font/TextLineComponent;
iload 4
aaload
invokeinterface sun.font.TextLineComponent.getNumCharacters:()I
istore 12
start local 12 41: iload 5
iload 12
iadd
istore 13
start local 13 42: iload 9
iload 5
invokestatic java.lang.Math.max:(II)I
istore 14
start local 14 43: iload 10
iload 13
invokestatic java.lang.Math.min:(II)I
istore 15
start local 15 44: aload 7
iload 8
iinc 8 1
aload 0
getfield java.awt.font.TextMeasurer.fComponents:[Lsun/font/TextLineComponent;
iload 4
aaload
45: iload 14
iload 5
isub
46: iload 15
iload 5
isub
47: iload 11
48: invokeinterface sun.font.TextLineComponent.getSubset:(III)Lsun/font/TextLineComponent;
aastore
49: iload 9
iload 15
iload 14
isub
iadd
istore 9
50: iload 9
iload 10
if_icmpne 55
51: iload 2
istore 10
52: aload 0
getfield java.awt.font.TextMeasurer.fIsDirectionLTR:Z
ifeq 53
iconst_0
goto 54
53: StackMap locals: java.awt.font.TextMeasurer int int int int int int sun.font.TextLineComponent[] int int int int int int int int
StackMap stack:
iconst_1
54: StackMap locals:
StackMap stack: int
istore 11
55: StackMap locals:
StackMap stack:
iload 9
iload 13
if_icmpne 58
56: iinc 4 1
57: iload 13
istore 5
end local 15 end local 14 end local 13 end local 12 58: StackMap locals: java.awt.font.TextMeasurer int int int int int int sun.font.TextLineComponent[] int int int int
StackMap stack:
iload 9
iload 2
if_icmplt 40
59: aload 7
areturn
end local 11 end local 10 end local 9 end local 8 end local 7 end local 6 end local 5 end local 4 end local 3 end local 2 end local 1 end local 0 LocalVariableTable:
Start End Slot Name Signature
0 60 0 this Ljava/awt/font/TextMeasurer;
0 60 1 startPos I
0 60 2 limitPos I
1 60 3 cdWsStart I
3 60 4 tlcIndex I
2 60 5 tlcStart I
5 8 6 gaLimit I
26 60 6 componentCount I
11 28 7 split Z
12 28 8 compStart I
13 28 9 lim I
14 25 10 cont Z
16 23 11 gaLimit I
29 60 7 components [Lsun/font/TextLineComponent;
30 60 8 newCompIndex I
31 60 9 linePos I
32 60 10 breakPt I
36 38 11 subsetFlag I
39 60 11 subsetFlag I
41 58 12 compLength I
42 58 13 tlcLimit I
43 58 14 start I
44 58 15 limit I
MethodParameters:
Name Flags
startPos
limitPos
private java.awt.font.TextLine makeTextLineOnRange(int, int);
descriptor: (II)Ljava/awt/font/TextLine;
flags: (0x0002) ACC_PRIVATE
Code:
stack=11, locals=7, args_size=3
start local 0 start local 1 start local 2 0: aconst_null
astore 3
start local 3 1: aconst_null
astore 4
start local 4 2: aload 0
getfield java.awt.font.TextMeasurer.fBidi:Ljava/text/Bidi;
ifnull 7
3: aload 0
getfield java.awt.font.TextMeasurer.fBidi:Ljava/text/Bidi;
iload 1
iload 2
invokevirtual java.text.Bidi.createLineBidi:(II)Ljava/text/Bidi;
astore 5
start local 5 4: aload 5
invokestatic sun.font.BidiUtils.getLevels:(Ljava/text/Bidi;)[B
astore 4
5: aload 4
invokestatic sun.font.BidiUtils.createVisualToLogicalMap:([B)[I
astore 6
start local 6 6: aload 6
invokestatic sun.font.BidiUtils.createInverseMap:([I)[I
astore 3
end local 6 end local 5 7: StackMap locals: int[] byte[]
StackMap stack:
aload 0
iload 1
iload 2
invokevirtual java.awt.font.TextMeasurer.makeComponentsOnRange:(II)[Lsun/font/TextLineComponent;
astore 5
start local 5 8: new java.awt.font.TextLine
dup
aload 0
getfield java.awt.font.TextMeasurer.fFrc:Ljava/awt/font/FontRenderContext;
9: aload 5
10: aload 0
getfield java.awt.font.TextMeasurer.fBaselineOffsets:[F
11: aload 0
getfield java.awt.font.TextMeasurer.fChars:[C
12: iload 1
13: iload 2
14: aload 3
15: aload 4
16: aload 0
getfield java.awt.font.TextMeasurer.fIsDirectionLTR:Z
17: invokespecial java.awt.font.TextLine.<init>:(Ljava/awt/font/FontRenderContext;[Lsun/font/TextLineComponent;[F[CII[I[BZ)V
areturn
end local 5 end local 4 end local 3 end local 2 end local 1 end local 0 LocalVariableTable:
Start End Slot Name Signature
0 18 0 this Ljava/awt/font/TextMeasurer;
0 18 1 startPos I
0 18 2 limitPos I
1 18 3 charsLtoV [I
2 18 4 charLevels [B
4 7 5 lineBidi Ljava/text/Bidi;
6 7 6 charsVtoL [I
8 18 5 components [Lsun/font/TextLineComponent;
MethodParameters:
Name Flags
startPos
limitPos
private void ensureComponents(int, int);
descriptor: (II)V
flags: (0x0002) ACC_PRIVATE
Code:
stack=3, locals=3, args_size=3
start local 0 start local 1 start local 2 0: iload 1
aload 0
getfield java.awt.font.TextMeasurer.fComponentStart:I
if_icmplt 1
iload 2
aload 0
getfield java.awt.font.TextMeasurer.fComponentLimit:I
if_icmple 2
1: StackMap locals:
StackMap stack:
aload 0
iload 1
iload 2
invokevirtual java.awt.font.TextMeasurer.generateComponents:(II)V
2: StackMap locals:
StackMap stack:
return
end local 2 end local 1 end local 0 LocalVariableTable:
Start End Slot Name Signature
0 3 0 this Ljava/awt/font/TextMeasurer;
0 3 1 start I
0 3 2 limit I
MethodParameters:
Name Flags
start
limit
private void makeLayoutWindow(int);
descriptor: (I)V
flags: (0x0002) ACC_PRIVATE
Code:
stack=4, locals=5, args_size=2
start local 0 start local 1 0: iload 1
istore 2
start local 2 1: aload 0
getfield java.awt.font.TextMeasurer.fChars:[C
arraylength
istore 3
start local 3 2: aload 0
getfield java.awt.font.TextMeasurer.layoutCount:I
ifle 5
aload 0
getfield java.awt.font.TextMeasurer.haveLayoutWindow:Z
ifne 5
3: aload 0
getfield java.awt.font.TextMeasurer.layoutCharCount:I
aload 0
getfield java.awt.font.TextMeasurer.layoutCount:I
idiv
iconst_1
invokestatic java.lang.Math.max:(II)I
i2f
fstore 4
start local 4 4: iload 1
fload 4
getstatic java.awt.font.TextMeasurer.EST_LINES:F
fmul
f2i
iadd
aload 0
getfield java.awt.font.TextMeasurer.fChars:[C
arraylength
invokestatic java.lang.Math.min:(II)I
istore 3
end local 4 5: StackMap locals: int int
StackMap stack:
iload 1
ifgt 6
iload 3
aload 0
getfield java.awt.font.TextMeasurer.fChars:[C
arraylength
if_icmpge 19
6: StackMap locals:
StackMap stack:
aload 0
getfield java.awt.font.TextMeasurer.charIter:Ljava/awt/font/CharArrayIterator;
ifnonnull 9
7: aload 0
new java.awt.font.CharArrayIterator
dup
aload 0
getfield java.awt.font.TextMeasurer.fChars:[C
invokespecial java.awt.font.CharArrayIterator.<init>:([C)V
putfield java.awt.font.TextMeasurer.charIter:Ljava/awt/font/CharArrayIterator;
8: goto 10
9: StackMap locals:
StackMap stack:
aload 0
getfield java.awt.font.TextMeasurer.charIter:Ljava/awt/font/CharArrayIterator;
aload 0
getfield java.awt.font.TextMeasurer.fChars:[C
invokevirtual java.awt.font.CharArrayIterator.reset:([C)V
10: StackMap locals:
StackMap stack:
aload 0
getfield java.awt.font.TextMeasurer.fLineBreak:Ljava/text/BreakIterator;
ifnonnull 12
11: aload 0
invokestatic java.text.BreakIterator.getLineInstance:()Ljava/text/BreakIterator;
putfield java.awt.font.TextMeasurer.fLineBreak:Ljava/text/BreakIterator;
12: StackMap locals:
StackMap stack:
aload 0
getfield java.awt.font.TextMeasurer.fLineBreak:Ljava/text/BreakIterator;
aload 0
getfield java.awt.font.TextMeasurer.charIter:Ljava/awt/font/CharArrayIterator;
invokevirtual java.text.BreakIterator.setText:(Ljava/text/CharacterIterator;)V
13: iload 1
ifle 16
14: aload 0
getfield java.awt.font.TextMeasurer.fLineBreak:Ljava/text/BreakIterator;
iload 1
invokevirtual java.text.BreakIterator.isBoundary:(I)Z
ifne 16
15: aload 0
getfield java.awt.font.TextMeasurer.fLineBreak:Ljava/text/BreakIterator;
iload 1
invokevirtual java.text.BreakIterator.preceding:(I)I
istore 2
16: StackMap locals:
StackMap stack:
iload 3
aload 0
getfield java.awt.font.TextMeasurer.fChars:[C
arraylength
if_icmpge 19
17: aload 0
getfield java.awt.font.TextMeasurer.fLineBreak:Ljava/text/BreakIterator;
iload 3
invokevirtual java.text.BreakIterator.isBoundary:(I)Z
ifne 19
18: aload 0
getfield java.awt.font.TextMeasurer.fLineBreak:Ljava/text/BreakIterator;
iload 3
invokevirtual java.text.BreakIterator.following:(I)I
istore 3
19: StackMap locals:
StackMap stack:
aload 0
iload 2
iload 3
invokevirtual java.awt.font.TextMeasurer.ensureComponents:(II)V
20: aload 0
iconst_1
putfield java.awt.font.TextMeasurer.haveLayoutWindow:Z
21: return
end local 3 end local 2 end local 1 end local 0 LocalVariableTable:
Start End Slot Name Signature
0 22 0 this Ljava/awt/font/TextMeasurer;
0 22 1 localStart I
1 22 2 compStart I
2 22 3 compLimit I
4 5 4 avgLineLength F
MethodParameters:
Name Flags
localStart
public int getLineBreakIndex(int, float);
descriptor: (IF)I
flags: (0x0001) ACC_PUBLIC
Code:
stack=3, locals=4, args_size=3
start local 0 start local 1 start local 2 0: iload 1
aload 0
getfield java.awt.font.TextMeasurer.fStart:I
isub
istore 3
start local 3 1: aload 0
getfield java.awt.font.TextMeasurer.haveLayoutWindow:Z
ifeq 4
2: iload 3
aload 0
getfield java.awt.font.TextMeasurer.fComponentStart:I
if_icmplt 4
3: iload 3
aload 0
getfield java.awt.font.TextMeasurer.fComponentLimit:I
if_icmplt 5
4: StackMap locals: int
StackMap stack:
aload 0
iload 3
invokevirtual java.awt.font.TextMeasurer.makeLayoutWindow:(I)V
5: StackMap locals:
StackMap stack:
aload 0
iload 3
fload 2
invokevirtual java.awt.font.TextMeasurer.calcLineBreak:(IF)I
aload 0
getfield java.awt.font.TextMeasurer.fStart:I
iadd
ireturn
end local 3 end local 2 end local 1 end local 0 LocalVariableTable:
Start End Slot Name Signature
0 6 0 this Ljava/awt/font/TextMeasurer;
0 6 1 start I
0 6 2 maxAdvance F
1 6 3 localStart I
MethodParameters:
Name Flags
start
maxAdvance
public float getAdvanceBetween(int, int);
descriptor: (II)F
flags: (0x0001) ACC_PUBLIC
Code:
stack=3, locals=6, args_size=3
start local 0 start local 1 start local 2 0: iload 1
aload 0
getfield java.awt.font.TextMeasurer.fStart:I
isub
istore 3
start local 3 1: iload 2
aload 0
getfield java.awt.font.TextMeasurer.fStart:I
isub
istore 4
start local 4 2: aload 0
iload 3
iload 4
invokevirtual java.awt.font.TextMeasurer.ensureComponents:(II)V
3: aload 0
iload 3
iload 4
invokevirtual java.awt.font.TextMeasurer.makeTextLineOnRange:(II)Ljava/awt/font/TextLine;
astore 5
start local 5 4: aload 5
invokevirtual java.awt.font.TextLine.getMetrics:()Ljava/awt/font/TextLine$TextLineMetrics;
getfield java.awt.font.TextLine$TextLineMetrics.advance:F
freturn
end local 5 end local 4 end local 3 end local 2 end local 1 end local 0 LocalVariableTable:
Start End Slot Name Signature
0 5 0 this Ljava/awt/font/TextMeasurer;
0 5 1 start I
0 5 2 limit I
1 5 3 localStart I
2 5 4 localLimit I
4 5 5 line Ljava/awt/font/TextLine;
MethodParameters:
Name Flags
start
limit
public java.awt.font.TextLayout getLayout(int, int);
descriptor: (II)Ljava/awt/font/TextLayout;
flags: (0x0001) ACC_PUBLIC
Code:
stack=6, locals=6, args_size=3
start local 0 start local 1 start local 2 0: iload 1
aload 0
getfield java.awt.font.TextMeasurer.fStart:I
isub
istore 3
start local 3 1: iload 2
aload 0
getfield java.awt.font.TextMeasurer.fStart:I
isub
istore 4
start local 4 2: aload 0
iload 3
iload 4
invokevirtual java.awt.font.TextMeasurer.ensureComponents:(II)V
3: aload 0
iload 3
iload 4
invokevirtual java.awt.font.TextMeasurer.makeTextLineOnRange:(II)Ljava/awt/font/TextLine;
astore 5
start local 5 4: iload 4
aload 0
getfield java.awt.font.TextMeasurer.fChars:[C
arraylength
if_icmpge 7
5: aload 0
dup
getfield java.awt.font.TextMeasurer.layoutCharCount:I
iload 2
iload 1
isub
iadd
putfield java.awt.font.TextMeasurer.layoutCharCount:I
6: aload 0
dup
getfield java.awt.font.TextMeasurer.layoutCount:I
iconst_1
iadd
putfield java.awt.font.TextMeasurer.layoutCount:I
7: StackMap locals: int int java.awt.font.TextLine
StackMap stack:
new java.awt.font.TextLayout
dup
aload 5
8: aload 0
getfield java.awt.font.TextMeasurer.fBaseline:B
9: aload 0
getfield java.awt.font.TextMeasurer.fBaselineOffsets:[F
10: aload 0
getfield java.awt.font.TextMeasurer.fJustifyRatio:F
11: invokespecial java.awt.font.TextLayout.<init>:(Ljava/awt/font/TextLine;B[FF)V
areturn
end local 5 end local 4 end local 3 end local 2 end local 1 end local 0 LocalVariableTable:
Start End Slot Name Signature
0 12 0 this Ljava/awt/font/TextMeasurer;
0 12 1 start I
0 12 2 limit I
1 12 3 localStart I
2 12 4 localLimit I
4 12 5 textLine Ljava/awt/font/TextLine;
MethodParameters:
Name Flags
start
limit
private void printStats();
descriptor: ()V
flags: (0x0002) ACC_PRIVATE
Code:
stack=4, locals=1, args_size=1
start local 0 0: getstatic java.lang.System.out:Ljava/io/PrintStream;
new java.lang.StringBuilder
dup
ldc "formattedChars: "
invokespecial java.lang.StringBuilder.<init>:(Ljava/lang/String;)V
aload 0
getfield java.awt.font.TextMeasurer.formattedChars:I
invokevirtual java.lang.StringBuilder.append:(I)Ljava/lang/StringBuilder;
invokevirtual java.lang.StringBuilder.toString:()Ljava/lang/String;
invokevirtual java.io.PrintStream.println:(Ljava/lang/String;)V
1: aload 0
iconst_0
putfield java.awt.font.TextMeasurer.collectStats:Z
2: return
end local 0 LocalVariableTable:
Start End Slot Name Signature
0 3 0 this Ljava/awt/font/TextMeasurer;
public void insertChar(java.text.AttributedCharacterIterator, int);
descriptor: (Ljava/text/AttributedCharacterIterator;I)V
flags: (0x0001) ACC_PUBLIC
Code:
stack=6, locals=7, args_size=3
start local 0 start local 1 start local 2 0: aload 0
getfield java.awt.font.TextMeasurer.collectStats:Z
ifeq 2
1: aload 0
invokevirtual java.awt.font.TextMeasurer.printStats:()V
2: StackMap locals:
StackMap stack:
getstatic java.awt.font.TextMeasurer.wantStats:Z
ifeq 4
3: aload 0
iconst_1
putfield java.awt.font.TextMeasurer.collectStats:Z
4: StackMap locals:
StackMap stack:
aload 0
aload 1
invokeinterface java.text.AttributedCharacterIterator.getBeginIndex:()I
putfield java.awt.font.TextMeasurer.fStart:I
5: aload 1
invokeinterface java.text.AttributedCharacterIterator.getEndIndex:()I
istore 3
start local 3 6: iload 3
aload 0
getfield java.awt.font.TextMeasurer.fStart:I
isub
aload 0
getfield java.awt.font.TextMeasurer.fChars:[C
arraylength
iconst_1
iadd
if_icmpeq 8
7: aload 0
aload 1
invokevirtual java.awt.font.TextMeasurer.initAll:(Ljava/text/AttributedCharacterIterator;)V
8: StackMap locals: int
StackMap stack:
iload 3
aload 0
getfield java.awt.font.TextMeasurer.fStart:I
isub
newarray 5
astore 4
start local 4 9: iload 2
aload 0
getfield java.awt.font.TextMeasurer.fStart:I
isub
istore 5
start local 5 10: aload 0
getfield java.awt.font.TextMeasurer.fChars:[C
iconst_0
aload 4
iconst_0
iload 5
invokestatic java.lang.System.arraycopy:(Ljava/lang/Object;ILjava/lang/Object;II)V
11: aload 1
iload 2
invokeinterface java.text.AttributedCharacterIterator.setIndex:(I)C
istore 6
start local 6 12: aload 4
iload 5
iload 6
castore
13: aload 0
getfield java.awt.font.TextMeasurer.fChars:[C
14: iload 5
15: aload 4
16: iload 5
iconst_1
iadd
17: iload 3
iload 2
isub
iconst_1
isub
18: invokestatic java.lang.System.arraycopy:(Ljava/lang/Object;ILjava/lang/Object;II)V
19: aload 0
aload 4
putfield java.awt.font.TextMeasurer.fChars:[C
20: aload 0
getfield java.awt.font.TextMeasurer.fBidi:Ljava/text/Bidi;
ifnonnull 22
aload 4
iload 5
iload 5
iconst_1
iadd
invokestatic java.text.Bidi.requiresBidi:([CII)Z
ifne 22
21: aload 1
getstatic java.awt.font.TextAttribute.BIDI_EMBEDDING:Ljava/awt/font/TextAttribute;
invokeinterface java.text.AttributedCharacterIterator.getAttribute:(Ljava/text/AttributedCharacterIterator$Attribute;)Ljava/lang/Object;
ifnull 25
22: StackMap locals: char[] int int
StackMap stack:
aload 0
new java.text.Bidi
dup
aload 1
invokespecial java.text.Bidi.<init>:(Ljava/text/AttributedCharacterIterator;)V
putfield java.awt.font.TextMeasurer.fBidi:Ljava/text/Bidi;
23: aload 0
getfield java.awt.font.TextMeasurer.fBidi:Ljava/text/Bidi;
invokevirtual java.text.Bidi.isLeftToRight:()Z
ifeq 25
24: aload 0
aconst_null
putfield java.awt.font.TextMeasurer.fBidi:Ljava/text/Bidi;
25: StackMap locals:
StackMap stack:
aload 0
aload 1
26: aload 0
getfield java.awt.font.TextMeasurer.fChars:[C
27: iload 2
28: aload 0
getfield java.awt.font.TextMeasurer.fParagraph:Ljava/awt/font/StyledParagraph;
29: invokestatic java.awt.font.StyledParagraph.insertChar:(Ljava/text/AttributedCharacterIterator;[CILjava/awt/font/StyledParagraph;)Ljava/awt/font/StyledParagraph;
putfield java.awt.font.TextMeasurer.fParagraph:Ljava/awt/font/StyledParagraph;
30: aload 0
invokevirtual java.awt.font.TextMeasurer.invalidateComponents:()V
31: return
end local 6 end local 5 end local 4 end local 3 end local 2 end local 1 end local 0 LocalVariableTable:
Start End Slot Name Signature
0 32 0 this Ljava/awt/font/TextMeasurer;
0 32 1 newParagraph Ljava/text/AttributedCharacterIterator;
0 32 2 insertPos I
6 32 3 end I
9 32 4 newChars [C
10 32 5 newCharIndex I
12 32 6 newChar C
MethodParameters:
Name Flags
newParagraph
insertPos
public void deleteChar(java.text.AttributedCharacterIterator, int);
descriptor: (Ljava/text/AttributedCharacterIterator;I)V
flags: (0x0001) ACC_PUBLIC
Code:
stack=6, locals=6, args_size=3
start local 0 start local 1 start local 2 0: aload 0
aload 1
invokeinterface java.text.AttributedCharacterIterator.getBeginIndex:()I
putfield java.awt.font.TextMeasurer.fStart:I
1: aload 1
invokeinterface java.text.AttributedCharacterIterator.getEndIndex:()I
istore 3
start local 3 2: iload 3
aload 0
getfield java.awt.font.TextMeasurer.fStart:I
isub
aload 0
getfield java.awt.font.TextMeasurer.fChars:[C
arraylength
iconst_1
isub
if_icmpeq 4
3: aload 0
aload 1
invokevirtual java.awt.font.TextMeasurer.initAll:(Ljava/text/AttributedCharacterIterator;)V
4: StackMap locals: int
StackMap stack:
iload 3
aload 0
getfield java.awt.font.TextMeasurer.fStart:I
isub
newarray 5
astore 4
start local 4 5: iload 2
aload 0
getfield java.awt.font.TextMeasurer.fStart:I
isub
istore 5
start local 5 6: aload 0
getfield java.awt.font.TextMeasurer.fChars:[C
iconst_0
aload 4
iconst_0
iload 2
aload 0
getfield java.awt.font.TextMeasurer.fStart:I
isub
invokestatic java.lang.System.arraycopy:(Ljava/lang/Object;ILjava/lang/Object;II)V
7: aload 0
getfield java.awt.font.TextMeasurer.fChars:[C
iload 5
iconst_1
iadd
aload 4
iload 5
iload 3
iload 2
isub
invokestatic java.lang.System.arraycopy:(Ljava/lang/Object;ILjava/lang/Object;II)V
8: aload 0
aload 4
putfield java.awt.font.TextMeasurer.fChars:[C
9: aload 0
getfield java.awt.font.TextMeasurer.fBidi:Ljava/text/Bidi;
ifnull 13
10: aload 0
new java.text.Bidi
dup
aload 1
invokespecial java.text.Bidi.<init>:(Ljava/text/AttributedCharacterIterator;)V
putfield java.awt.font.TextMeasurer.fBidi:Ljava/text/Bidi;
11: aload 0
getfield java.awt.font.TextMeasurer.fBidi:Ljava/text/Bidi;
invokevirtual java.text.Bidi.isLeftToRight:()Z
ifeq 13
12: aload 0
aconst_null
putfield java.awt.font.TextMeasurer.fBidi:Ljava/text/Bidi;
13: StackMap locals: char[] int
StackMap stack:
aload 0
aload 1
14: aload 0
getfield java.awt.font.TextMeasurer.fChars:[C
15: iload 2
16: aload 0
getfield java.awt.font.TextMeasurer.fParagraph:Ljava/awt/font/StyledParagraph;
17: invokestatic java.awt.font.StyledParagraph.deleteChar:(Ljava/text/AttributedCharacterIterator;[CILjava/awt/font/StyledParagraph;)Ljava/awt/font/StyledParagraph;
putfield java.awt.font.TextMeasurer.fParagraph:Ljava/awt/font/StyledParagraph;
18: aload 0
invokevirtual java.awt.font.TextMeasurer.invalidateComponents:()V
19: return
end local 5 end local 4 end local 3 end local 2 end local 1 end local 0 LocalVariableTable:
Start End Slot Name Signature
0 20 0 this Ljava/awt/font/TextMeasurer;
0 20 1 newParagraph Ljava/text/AttributedCharacterIterator;
0 20 2 deletePos I
2 20 3 end I
5 20 4 newChars [C
6 20 5 changedIndex I
MethodParameters:
Name Flags
newParagraph
deletePos
char[] getChars();
descriptor: ()[C
flags: (0x0000)
Code:
stack=1, locals=1, args_size=1
start local 0 0: aload 0
getfield java.awt.font.TextMeasurer.fChars:[C
areturn
end local 0 LocalVariableTable:
Start End Slot Name Signature
0 1 0 this Ljava/awt/font/TextMeasurer;
}
SourceFile: "TextMeasurer.java"
InnerClasses:
final TextLineMetrics = java.awt.font.TextLine$TextLineMetrics of java.awt.font.TextLine
public Attribute = java.text.AttributedCharacterIterator$Attribute of java.text.AttributedCharacterIterator