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: .line 101
            ldc 2.1
            putstatic java.awt.font.TextMeasurer.EST_LINES:F
         1: .line 630
            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 // java.awt.font.TextMeasurer this
        start local 1 // java.text.AttributedCharacterIterator text
        start local 2 // java.awt.font.FontRenderContext frc
         0: .line 165
            aload 0 /* this */
            invokespecial java.lang.Object.<init>:()V
         1: .line 144
            aload 0 /* this */
            aconst_null
            putfield java.awt.font.TextMeasurer.fLineBreak:Ljava/text/BreakIterator;
         2: .line 145
            aload 0 /* this */
            aconst_null
            putfield java.awt.font.TextMeasurer.charIter:Ljava/awt/font/CharArrayIterator;
         3: .line 146
            aload 0 /* this */
            iconst_0
            putfield java.awt.font.TextMeasurer.layoutCount:I
         4: .line 147
            aload 0 /* this */
            iconst_0
            putfield java.awt.font.TextMeasurer.layoutCharCount:I
         5: .line 156
            aload 0 /* this */
            fconst_1
            putfield java.awt.font.TextMeasurer.fJustifyRatio:F
         6: .line 629
            aload 0 /* this */
            iconst_0
            putfield java.awt.font.TextMeasurer.formattedChars:I
         7: .line 631
            aload 0 /* this */
            iconst_0
            putfield java.awt.font.TextMeasurer.collectStats:Z
         8: .line 167
            aload 0 /* this */
            aload 2 /* frc */
            putfield java.awt.font.TextMeasurer.fFrc:Ljava/awt/font/FontRenderContext;
         9: .line 168
            aload 0 /* this */
            aload 1 /* text */
            invokevirtual java.awt.font.TextMeasurer.initAll:(Ljava/text/AttributedCharacterIterator;)V
        10: .line 169
            return
        end local 2 // java.awt.font.FontRenderContext frc
        end local 1 // java.text.AttributedCharacterIterator text
        end local 0 // java.awt.font.TextMeasurer this
      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 // java.awt.font.TextMeasurer this
         0: .line 174
            aload 0 /* this */
            invokespecial java.lang.Object.clone:()Ljava/lang/Object;
            checkcast java.awt.font.TextMeasurer
            astore 1 /* other */
        start local 1 // java.awt.font.TextMeasurer other
         1: .line 175
            goto 4
        end local 1 // java.awt.font.TextMeasurer other
         2: .line 176
      StackMap locals:
      StackMap stack: java.lang.CloneNotSupportedException
            pop
         3: .line 177
            new java.lang.Error
            dup
            invokespecial java.lang.Error.<init>:()V
            athrow
        start local 1 // java.awt.font.TextMeasurer other
         4: .line 179
      StackMap locals: java.awt.font.TextMeasurer
      StackMap stack:
            aload 0 /* this */
            getfield java.awt.font.TextMeasurer.fComponents:[Lsun/font/TextLineComponent;
            ifnull 6
         5: .line 180
            aload 1 /* other */
            aload 0 /* this */
            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: .line 182
      StackMap locals:
      StackMap stack:
            aload 1 /* other */
            areturn
        end local 1 // java.awt.font.TextMeasurer other
        end local 0 // java.awt.font.TextMeasurer this
      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 // java.awt.font.TextMeasurer this
         0: .line 186
            aload 0 /* this */
            aload 0 /* this */
            aload 0 /* this */
            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: .line 187
            aload 0 /* this */
            aconst_null
            putfield java.awt.font.TextMeasurer.fComponents:[Lsun/font/TextLineComponent;
         2: .line 188
            aload 0 /* this */
            iconst_0
            putfield java.awt.font.TextMeasurer.haveLayoutWindow:Z
         3: .line 189
            return
        end local 0 // java.awt.font.TextMeasurer this
      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 // java.awt.font.TextMeasurer this
        start local 1 // java.text.AttributedCharacterIterator text
         0: .line 197
            aload 0 /* this */
            aload 1 /* text */
            invokeinterface java.text.AttributedCharacterIterator.getBeginIndex:()I
            putfield java.awt.font.TextMeasurer.fStart:I
         1: .line 200
            aload 0 /* this */
            aload 1 /* text */
            invokeinterface java.text.AttributedCharacterIterator.getEndIndex:()I
            aload 0 /* this */
            getfield java.awt.font.TextMeasurer.fStart:I
            isub
            newarray 5
            putfield java.awt.font.TextMeasurer.fChars:[C
         2: .line 202
            iconst_0
            istore 2 /* n */
        start local 2 // int n
         3: .line 203
            aload 1 /* text */
            invokeinterface java.text.AttributedCharacterIterator.first:()C
            istore 3 /* c */
        start local 3 // char c
         4: .line 204
            goto 7
         5: .line 207
      StackMap locals: int int
      StackMap stack:
            aload 0 /* this */
            getfield java.awt.font.TextMeasurer.fChars:[C
            iload 2 /* n */
            iinc 2 /* n */ 1
            iload 3 /* c */
            castore
         6: .line 205
            aload 1 /* text */
            invokeinterface java.text.AttributedCharacterIterator.next:()C
            istore 3 /* c */
         7: .line 204
      StackMap locals:
      StackMap stack:
            iload 3 /* c */
            ldc 65535
            if_icmpne 5
        end local 3 // char c
         8: .line 210
            aload 1 /* text */
            invokeinterface java.text.AttributedCharacterIterator.first:()C
            pop
         9: .line 212
            aload 0 /* this */
            new java.text.Bidi
            dup
            aload 1 /* text */
            invokespecial java.text.Bidi.<init>:(Ljava/text/AttributedCharacterIterator;)V
            putfield java.awt.font.TextMeasurer.fBidi:Ljava/text/Bidi;
        10: .line 213
            aload 0 /* this */
            getfield java.awt.font.TextMeasurer.fBidi:Ljava/text/Bidi;
            invokevirtual java.text.Bidi.isLeftToRight:()Z
            ifeq 12
        11: .line 214
            aload 0 /* this */
            aconst_null
            putfield java.awt.font.TextMeasurer.fBidi:Ljava/text/Bidi;
        12: .line 217
      StackMap locals:
      StackMap stack:
            aload 1 /* text */
            invokeinterface java.text.AttributedCharacterIterator.first:()C
            pop
        13: .line 218
            aload 1 /* text */
            invokeinterface java.text.AttributedCharacterIterator.getAttributes:()Ljava/util/Map;
            astore 3 /* paragraphAttrs */
        start local 3 // java.util.Map paragraphAttrs
        14: .line 219
            aload 3 /* paragraphAttrs */
            invokestatic sun.font.AttributeValues.getNumericShaping:(Ljava/util/Map;)Ljava/awt/font/NumericShaper;
            astore 4 /* shaper */
        start local 4 // java.awt.font.NumericShaper shaper
        15: .line 220
            aload 4 /* shaper */
            ifnull 17
        16: .line 221
            aload 4 /* shaper */
            aload 0 /* this */
            getfield java.awt.font.TextMeasurer.fChars:[C
            iconst_0
            aload 0 /* this */
            getfield java.awt.font.TextMeasurer.fChars:[C
            arraylength
            invokevirtual java.awt.font.NumericShaper.shape:([CII)V
        17: .line 224
      StackMap locals: java.util.Map java.awt.font.NumericShaper
      StackMap stack:
            aload 0 /* this */
            new java.awt.font.StyledParagraph
            dup
            aload 1 /* text */
            aload 0 /* this */
            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: .line 232
            aload 0 /* this */
            aload 3 /* paragraphAttrs */
            invokestatic sun.font.AttributeValues.getJustification:(Ljava/util/Map;)F
            putfield java.awt.font.TextMeasurer.fJustifyRatio:F
        19: .line 234
            aload 1 /* text */
            invokestatic java.awt.font.TextLine.advanceToFirstFont:(Ljava/text/AttributedCharacterIterator;)Z
            istore 5 /* haveFont */
        start local 5 // boolean haveFont
        20: .line 236
            iload 5 /* haveFont */
            ifeq 27
        21: .line 237
            aload 1 /* text */
            invokestatic java.awt.font.TextLine.getFontAtCurrentPos:(Ljava/text/AttributedCharacterIterator;)Ljava/awt/Font;
            astore 6 /* defaultFont */
        start local 6 // java.awt.Font defaultFont
        22: .line 238
            aload 1 /* text */
            invokeinterface java.text.AttributedCharacterIterator.getIndex:()I
            aload 1 /* text */
            invokeinterface java.text.AttributedCharacterIterator.getBeginIndex:()I
            isub
            istore 7 /* charsStart */
        start local 7 // int charsStart
        23: .line 239
            aload 6 /* defaultFont */
            aload 0 /* this */
            getfield java.awt.font.TextMeasurer.fChars:[C
            iload 7 /* charsStart */
            iload 7 /* charsStart */
            iconst_1
            iadd
            aload 0 /* this */
            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 /* lm */
        start local 8 // java.awt.font.LineMetrics lm
        24: .line 240
            aload 0 /* this */
            aload 8 /* lm */
            invokevirtual java.awt.font.LineMetrics.getBaselineIndex:()I
            i2b
            putfield java.awt.font.TextMeasurer.fBaseline:B
        25: .line 241
            aload 0 /* this */
            aload 8 /* lm */
            invokevirtual java.awt.font.LineMetrics.getBaselineOffsets:()[F
            putfield java.awt.font.TextMeasurer.fBaselineOffsets:[F
        end local 8 // java.awt.font.LineMetrics lm
        end local 7 // int charsStart
        end local 6 // java.awt.Font defaultFont
        26: .line 242
            goto 34
        27: .line 248
      StackMap locals: int
      StackMap stack:
            aload 3 /* paragraphAttrs */
            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: .line 247
            astore 6 /* graphic */
        start local 6 // java.awt.font.GraphicAttribute graphic
        29: .line 249
            aload 0 /* this */
            aload 6 /* graphic */
            invokestatic java.awt.font.TextLayout.getBaselineFromGraphic:(Ljava/awt/font/GraphicAttribute;)B
            putfield java.awt.font.TextMeasurer.fBaseline:B
        30: .line 250
            new java.util.Hashtable
            dup
            iconst_5
            ldc 0.9
            invokespecial java.util.Hashtable.<init>:(IF)V
            astore 7 /* fmap */
        start local 7 // java.util.Hashtable fmap
        31: .line 251
            new java.awt.Font
            dup
            aload 7 /* fmap */
            invokespecial java.awt.Font.<init>:(Ljava/util/Map;)V
            astore 8 /* dummyFont */
        start local 8 // java.awt.Font dummyFont
        32: .line 252
            aload 8 /* dummyFont */
            ldc " "
            iconst_0
            iconst_1
            aload 0 /* this */
            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 /* lm */
        start local 9 // java.awt.font.LineMetrics lm
        33: .line 253
            aload 0 /* this */
            aload 9 /* lm */
            invokevirtual java.awt.font.LineMetrics.getBaselineOffsets:()[F
            putfield java.awt.font.TextMeasurer.fBaselineOffsets:[F
        end local 9 // java.awt.font.LineMetrics lm
        end local 8 // java.awt.Font dummyFont
        end local 7 // java.util.Hashtable fmap
        end local 6 // java.awt.font.GraphicAttribute graphic
        34: .line 255
      StackMap locals:
      StackMap stack:
            aload 0 /* this */
            aload 0 /* this */
            getfield java.awt.font.TextMeasurer.fBaselineOffsets:[F
            aload 0 /* this */
            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 // boolean haveFont
        35: .line 258
            aload 0 /* this */
            invokevirtual java.awt.font.TextMeasurer.invalidateComponents:()V
        36: .line 259
            return
        end local 4 // java.awt.font.NumericShaper shaper
        end local 3 // java.util.Map paragraphAttrs
        end local 2 // int n
        end local 1 // java.text.AttributedCharacterIterator text
        end local 0 // java.awt.font.TextMeasurer this
      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 // java.awt.font.TextMeasurer this
        start local 1 // int startingAt
        start local 2 // int endingAt
         0: .line 267
            aload 0 /* this */
            getfield java.awt.font.TextMeasurer.collectStats:Z
            ifeq 2
         1: .line 268
            aload 0 /* this */
            dup
            getfield java.awt.font.TextMeasurer.formattedChars:I
            iload 2 /* endingAt */
            iload 1 /* startingAt */
            isub
            iadd
            putfield java.awt.font.TextMeasurer.formattedChars:I
         2: .line 270
      StackMap locals:
      StackMap stack:
            iconst_0
            istore 3 /* layoutFlags */
        start local 3 // int layoutFlags
         3: .line 271
            new sun.font.TextLabelFactory
            dup
            aload 0 /* this */
            getfield java.awt.font.TextMeasurer.fFrc:Ljava/awt/font/FontRenderContext;
            aload 0 /* this */
            getfield java.awt.font.TextMeasurer.fChars:[C
            aload 0 /* this */
            getfield java.awt.font.TextMeasurer.fBidi:Ljava/text/Bidi;
            iload 3 /* layoutFlags */
            invokespecial sun.font.TextLabelFactory.<init>:(Ljava/awt/font/FontRenderContext;[CLjava/text/Bidi;I)V
            astore 4 /* factory */
        start local 4 // sun.font.TextLabelFactory factory
         4: .line 273
            aconst_null
            astore 5 /* charsLtoV */
        start local 5 // int[] charsLtoV
         5: .line 275
            aload 0 /* this */
            getfield java.awt.font.TextMeasurer.fBidi:Ljava/text/Bidi;
            ifnull 11
         6: .line 276
            aload 0 /* this */
            aload 0 /* this */
            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: .line 277
            aload 0 /* this */
            getfield java.awt.font.TextMeasurer.fLevels:[B
            invokestatic sun.font.BidiUtils.createVisualToLogicalMap:([B)[I
            astore 6 /* charsVtoL */
        start local 6 // int[] charsVtoL
         8: .line 278
            aload 6 /* charsVtoL */
            invokestatic sun.font.BidiUtils.createInverseMap:([I)[I
            astore 5 /* charsLtoV */
         9: .line 279
            aload 0 /* this */
            aload 0 /* this */
            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 // int[] charsVtoL
        10: .line 280
            goto 13
        11: .line 282
      StackMap locals: int sun.font.TextLabelFactory int[]
      StackMap stack:
            aload 0 /* this */
            aconst_null
            putfield java.awt.font.TextMeasurer.fLevels:[B
        12: .line 283
            aload 0 /* this */
            iconst_1
            putfield java.awt.font.TextMeasurer.fIsDirectionLTR:Z
        13: .line 287
      StackMap locals:
      StackMap stack:
            aload 0 /* this */
        14: .line 288
            aload 0 /* this */
            getfield java.awt.font.TextMeasurer.fParagraph:Ljava/awt/font/StyledParagraph;
            aload 0 /* this */
            getfield java.awt.font.TextMeasurer.fChars:[C
            iload 1 /* startingAt */
            iload 2 /* endingAt */
            aload 5 /* charsLtoV */
            aload 0 /* this */
            getfield java.awt.font.TextMeasurer.fLevels:[B
            aload 4 /* factory */
        15: .line 287
            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: .line 289
            goto 21
        17: .line 290
      StackMap locals:
      StackMap stack: java.lang.IllegalArgumentException
            astore 6 /* e */
        start local 6 // java.lang.IllegalArgumentException e
        18: .line 291
            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 /* startingAt */
            invokevirtual java.lang.StringBuilder.append:(I)Ljava/lang/StringBuilder;
            ldc "; endingAt="
            invokevirtual java.lang.StringBuilder.append:(Ljava/lang/String;)Ljava/lang/StringBuilder;
            iload 2 /* endingAt */
            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: .line 292
            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 /* this */
            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: .line 293
            aload 6 /* e */
            athrow
        end local 6 // java.lang.IllegalArgumentException e
        21: .line 296
      StackMap locals:
      StackMap stack:
            aload 0 /* this */
            iload 1 /* startingAt */
            putfield java.awt.font.TextMeasurer.fComponentStart:I
        22: .line 297
            aload 0 /* this */
            iload 2 /* endingAt */
            putfield java.awt.font.TextMeasurer.fComponentLimit:I
        23: .line 299
            return
        end local 5 // int[] charsLtoV
        end local 4 // sun.font.TextLabelFactory factory
        end local 3 // int layoutFlags
        end local 2 // int endingAt
        end local 1 // int startingAt
        end local 0 // java.awt.font.TextMeasurer this
      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 // java.awt.font.TextMeasurer this
        start local 1 // int pos
        start local 2 // float maxAdvance
         0: .line 307
            iload 1 /* pos */
            istore 3 /* startPos */
        start local 3 // int startPos
         1: .line 308
            fload 2 /* maxAdvance */
            fstore 4 /* width */
        start local 4 // float width
         2: .line 311
            aload 0 /* this */
            getfield java.awt.font.TextMeasurer.fComponentStart:I
            istore 6 /* tlcStart */
        start local 6 // int tlcStart
         3: .line 313
            iconst_0
            istore 5 /* tlcIndex */
        start local 5 // int tlcIndex
         4: goto 10
         5: .line 314
      StackMap locals: java.awt.font.TextMeasurer int float int float int int
      StackMap stack:
            iload 6 /* tlcStart */
            aload 0 /* this */
            getfield java.awt.font.TextMeasurer.fComponents:[Lsun/font/TextLineComponent;
            iload 5 /* tlcIndex */
            aaload
            invokeinterface sun.font.TextLineComponent.getNumCharacters:()I
            iadd
            istore 7 /* gaLimit */
        start local 7 // int gaLimit
         6: .line 315
            iload 7 /* gaLimit */
            iload 3 /* startPos */
            if_icmple 8
         7: .line 316
            goto 22
         8: .line 319
      StackMap locals: int
      StackMap stack:
            iload 7 /* gaLimit */
            istore 6 /* tlcStart */
        end local 7 // int gaLimit
         9: .line 313
            iinc 5 /* tlcIndex */ 1
      StackMap locals:
      StackMap stack:
        10: iload 5 /* tlcIndex */
            aload 0 /* this */
            getfield java.awt.font.TextMeasurer.fComponents:[Lsun/font/TextLineComponent;
            arraylength
            if_icmplt 5
        11: .line 325
            goto 22
        12: .line 327
      StackMap locals:
      StackMap stack:
            aload 0 /* this */
            getfield java.awt.font.TextMeasurer.fComponents:[Lsun/font/TextLineComponent;
            iload 5 /* tlcIndex */
            aaload
            astore 7 /* tlc */
        start local 7 // sun.font.TextLineComponent tlc
        13: .line 328
            aload 7 /* tlc */
            invokeinterface sun.font.TextLineComponent.getNumCharacters:()I
            istore 8 /* numCharsInGa */
        start local 8 // int numCharsInGa
        14: .line 330
            aload 7 /* tlc */
            iload 3 /* startPos */
            iload 6 /* tlcStart */
            isub
            fload 4 /* width */
            invokeinterface sun.font.TextLineComponent.getLineBreakIndex:(IF)I
            istore 9 /* lineBreak */
        start local 9 // int lineBreak
        15: .line 331
            iload 9 /* lineBreak */
            iload 8 /* numCharsInGa */
            if_icmpne 20
            iload 5 /* tlcIndex */
            aload 0 /* this */
            getfield java.awt.font.TextMeasurer.fComponents:[Lsun/font/TextLineComponent;
            arraylength
            if_icmpge 20
        16: .line 332
            fload 4 /* width */
            aload 7 /* tlc */
            iload 3 /* startPos */
            iload 6 /* tlcStart */
            isub
            iload 9 /* lineBreak */
            invokeinterface sun.font.TextLineComponent.getAdvanceBetween:(II)F
            fsub
            fstore 4 /* width */
        17: .line 333
            iload 6 /* tlcStart */
            iload 8 /* numCharsInGa */
            iadd
            istore 6 /* tlcStart */
        18: .line 334
            iload 6 /* tlcStart */
            istore 3 /* startPos */
        19: .line 335
            goto 21
        20: .line 337
      StackMap locals: sun.font.TextLineComponent int int
      StackMap stack:
            iload 6 /* tlcStart */
            iload 9 /* lineBreak */
            iadd
            ireturn
        end local 9 // int lineBreak
        end local 8 // int numCharsInGa
        end local 7 // sun.font.TextLineComponent tlc
        21: .line 325
      StackMap locals:
      StackMap stack:
            iinc 5 /* tlcIndex */ 1
      StackMap locals:
      StackMap stack:
        22: iload 5 /* tlcIndex */
            aload 0 /* this */
            getfield java.awt.font.TextMeasurer.fComponents:[Lsun/font/TextLineComponent;
            arraylength
            if_icmplt 12
        23: .line 341
            aload 0 /* this */
            getfield java.awt.font.TextMeasurer.fComponentLimit:I
            aload 0 /* this */
            getfield java.awt.font.TextMeasurer.fChars:[C
            arraylength
            if_icmpge 26
        24: .line 347
            aload 0 /* this */
            iload 1 /* pos */
            aload 0 /* this */
            getfield java.awt.font.TextMeasurer.fChars:[C
            arraylength
            invokevirtual java.awt.font.TextMeasurer.generateComponents:(II)V
        25: .line 348
            aload 0 /* this */
            iload 1 /* pos */
            fload 2 /* maxAdvance */
            invokevirtual java.awt.font.TextMeasurer.calcLineBreak:(IF)I
            ireturn
        26: .line 351
      StackMap locals:
      StackMap stack:
            aload 0 /* this */
            getfield java.awt.font.TextMeasurer.fChars:[C
            arraylength
            ireturn
        end local 6 // int tlcStart
        end local 5 // int tlcIndex
        end local 4 // float width
        end local 3 // int startPos
        end local 2 // float maxAdvance
        end local 1 // int pos
        end local 0 // java.awt.font.TextMeasurer this
      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 // java.awt.font.TextMeasurer this
        start local 1 // int startPos
        start local 2 // int limitPos
         0: .line 365
            aload 0 /* this */
            getfield java.awt.font.TextMeasurer.fLevels:[B
            ifnull 10
         1: .line 367
            aload 0 /* this */
            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 /* baseLevel */
        start local 3 // byte baseLevel
         4: .line 368
            iload 2 /* limitPos */
            istore 4 /* cdWsStart */
        start local 4 // int cdWsStart
         5: goto 9
         6: .line 369
      StackMap locals: int int
      StackMap stack:
            aload 0 /* this */
            getfield java.awt.font.TextMeasurer.fLevels:[B
            iload 4 /* cdWsStart */
            baload
            iconst_2
            irem
            iload 3 /* baseLevel */
            if_icmpeq 8
         7: .line 370
            aload 0 /* this */
            getfield java.awt.font.TextMeasurer.fChars:[C
            iload 4 /* cdWsStart */
            caload
            invokestatic java.lang.Character.getDirectionality:(C)B
            bipush 12
            if_icmpeq 9
         8: .line 371
      StackMap locals:
      StackMap stack:
            iinc 4 /* cdWsStart */ 1
            iload 4 /* cdWsStart */
            ireturn
         9: .line 368
      StackMap locals:
      StackMap stack:
            iinc 4 /* cdWsStart */ -1
            iload 4 /* cdWsStart */
            iload 1 /* startPos */
            if_icmpge 6
        end local 4 // int cdWsStart
        end local 3 // byte baseLevel
        10: .line 376
      StackMap locals:
      StackMap stack:
            iload 1 /* startPos */
            ireturn
        end local 2 // int limitPos
        end local 1 // int startPos
        end local 0 // java.awt.font.TextMeasurer this
      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 // java.awt.font.TextMeasurer this
        start local 1 // int startPos
        start local 2 // int limitPos
         0: .line 386
            aload 0 /* this */
            iload 1 /* startPos */
            iload 2 /* limitPos */
            invokevirtual java.awt.font.TextMeasurer.trailingCdWhitespaceStart:(II)I
            istore 3 /* cdWsStart */
        start local 3 // int cdWsStart
         1: .line 389
            aload 0 /* this */
            getfield java.awt.font.TextMeasurer.fComponentStart:I
            istore 5 /* tlcStart */
        start local 5 // int tlcStart
         2: .line 391
            iconst_0
            istore 4 /* tlcIndex */
        start local 4 // int tlcIndex
         3: goto 9
         4: .line 392
      StackMap locals: int int int
      StackMap stack:
            iload 5 /* tlcStart */
            aload 0 /* this */
            getfield java.awt.font.TextMeasurer.fComponents:[Lsun/font/TextLineComponent;
            iload 4 /* tlcIndex */
            aaload
            invokeinterface sun.font.TextLineComponent.getNumCharacters:()I
            iadd
            istore 6 /* gaLimit */
        start local 6 // int gaLimit
         5: .line 393
            iload 6 /* gaLimit */
            iload 1 /* startPos */
            if_icmple 7
         6: .line 394
            goto 10
         7: .line 397
      StackMap locals: int
      StackMap stack:
            iload 6 /* gaLimit */
            istore 5 /* tlcStart */
        end local 6 // int gaLimit
         8: .line 391
            iinc 4 /* tlcIndex */ 1
      StackMap locals:
      StackMap stack:
         9: iload 4 /* tlcIndex */
            aload 0 /* this */
            getfield java.awt.font.TextMeasurer.fComponents:[Lsun/font/TextLineComponent;
            arraylength
            if_icmplt 4
        10: .line 405
      StackMap locals:
      StackMap stack:
            iconst_0
            istore 7 /* split */
        start local 7 // boolean split
        11: .line 406
            iload 5 /* tlcStart */
            istore 8 /* compStart */
        start local 8 // int compStart
        12: .line 407
            iload 4 /* tlcIndex */
            istore 9 /* lim */
        start local 9 // int lim
        13: .line 408
            iconst_1
            istore 10 /* cont */
        start local 10 // boolean cont
        14: goto 24
        15: .line 409
      StackMap locals: java.awt.font.TextMeasurer int int int int int top int int int int
      StackMap stack:
            iload 8 /* compStart */
            aload 0 /* this */
            getfield java.awt.font.TextMeasurer.fComponents:[Lsun/font/TextLineComponent;
            iload 9 /* lim */
            aaload
            invokeinterface sun.font.TextLineComponent.getNumCharacters:()I
            iadd
            istore 11 /* gaLimit */
        start local 11 // int gaLimit
        16: .line 410
            iload 3 /* cdWsStart */
            iload 8 /* compStart */
            iload 1 /* startPos */
            invokestatic java.lang.Math.max:(II)I
            if_icmple 19
        17: .line 411
            iload 3 /* cdWsStart */
            iload 11 /* gaLimit */
            iload 2 /* limitPos */
            invokestatic java.lang.Math.min:(II)I
            if_icmpge 19
        18: .line 412
            iconst_1
            istore 7 /* split */
        19: .line 414
      StackMap locals: int
      StackMap stack:
            iload 11 /* gaLimit */
            iload 2 /* limitPos */
            if_icmplt 22
        20: .line 415
            iconst_0
            istore 10 /* cont */
        21: .line 416
            goto 23
        22: .line 418
      StackMap locals:
      StackMap stack:
            iload 11 /* gaLimit */
            istore 8 /* compStart */
        end local 11 // int gaLimit
        23: .line 408
      StackMap locals:
      StackMap stack:
            iinc 9 /* lim */ 1
      StackMap locals:
      StackMap stack:
        24: iload 10 /* cont */
            ifne 15
        end local 10 // boolean cont
        25: .line 421
            iload 9 /* lim */
            iload 4 /* tlcIndex */
            isub
            istore 6 /* componentCount */
        start local 6 // int componentCount
        26: .line 422
            iload 7 /* split */
            ifeq 28
        27: .line 423
            iinc 6 /* componentCount */ 1
        end local 9 // int lim
        end local 8 // int compStart
        end local 7 // boolean split
        28: .line 427
      StackMap locals: java.awt.font.TextMeasurer int int int int int int
      StackMap stack:
            iload 6 /* componentCount */
            anewarray sun.font.TextLineComponent
            astore 7 /* components */
        start local 7 // sun.font.TextLineComponent[] components
        29: .line 428
            iconst_0
            istore 8 /* newCompIndex */
        start local 8 // int newCompIndex
        30: .line 429
            iload 1 /* startPos */
            istore 9 /* linePos */
        start local 9 // int linePos
        31: .line 431
            iload 3 /* cdWsStart */
            istore 10 /* breakPt */
        start local 10 // int breakPt
        32: .line 434
            iload 10 /* breakPt */
            iload 1 /* startPos */
            if_icmpne 38
        33: .line 435
            aload 0 /* this */
            getfield java.awt.font.TextMeasurer.fIsDirectionLTR:Z
            ifeq 34
            iconst_0
            goto 35
        34: .line 436
      StackMap locals: java.awt.font.TextMeasurer int int int int int int sun.font.TextLineComponent[] int int int
      StackMap stack:
            iconst_1
        35: .line 435
      StackMap locals:
      StackMap stack: int
            istore 11 /* subsetFlag */
        start local 11 // int subsetFlag
        36: .line 437
            iload 2 /* limitPos */
            istore 10 /* breakPt */
        37: .line 438
            goto 58
        end local 11 // int subsetFlag
        38: .line 440
      StackMap locals:
      StackMap stack:
            iconst_2
            istore 11 /* subsetFlag */
        start local 11 // int subsetFlag
        39: .line 443
            goto 58
        40: .line 445
      StackMap locals: int
      StackMap stack:
            aload 0 /* this */
            getfield java.awt.font.TextMeasurer.fComponents:[Lsun/font/TextLineComponent;
            iload 4 /* tlcIndex */
            aaload
            invokeinterface sun.font.TextLineComponent.getNumCharacters:()I
            istore 12 /* compLength */
        start local 12 // int compLength
        41: .line 446
            iload 5 /* tlcStart */
            iload 12 /* compLength */
            iadd
            istore 13 /* tlcLimit */
        start local 13 // int tlcLimit
        42: .line 448
            iload 9 /* linePos */
            iload 5 /* tlcStart */
            invokestatic java.lang.Math.max:(II)I
            istore 14 /* start */
        start local 14 // int start
        43: .line 449
            iload 10 /* breakPt */
            iload 13 /* tlcLimit */
            invokestatic java.lang.Math.min:(II)I
            istore 15 /* limit */
        start local 15 // int limit
        44: .line 451
            aload 7 /* components */
            iload 8 /* newCompIndex */
            iinc 8 /* newCompIndex */ 1
            aload 0 /* this */
            getfield java.awt.font.TextMeasurer.fComponents:[Lsun/font/TextLineComponent;
            iload 4 /* tlcIndex */
            aaload
        45: .line 452
            iload 14 /* start */
            iload 5 /* tlcStart */
            isub
        46: .line 453
            iload 15 /* limit */
            iload 5 /* tlcStart */
            isub
        47: .line 454
            iload 11 /* subsetFlag */
        48: .line 451
            invokeinterface sun.font.TextLineComponent.getSubset:(III)Lsun/font/TextLineComponent;
            aastore
        49: .line 455
            iload 9 /* linePos */
            iload 15 /* limit */
            iload 14 /* start */
            isub
            iadd
            istore 9 /* linePos */
        50: .line 456
            iload 9 /* linePos */
            iload 10 /* breakPt */
            if_icmpne 55
        51: .line 457
            iload 2 /* limitPos */
            istore 10 /* breakPt */
        52: .line 458
            aload 0 /* this */
            getfield java.awt.font.TextMeasurer.fIsDirectionLTR:Z
            ifeq 53
            iconst_0
            goto 54
        53: .line 459
      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: .line 458
      StackMap locals:
      StackMap stack: int
            istore 11 /* subsetFlag */
        55: .line 461
      StackMap locals:
      StackMap stack:
            iload 9 /* linePos */
            iload 13 /* tlcLimit */
            if_icmpne 58
        56: .line 462
            iinc 4 /* tlcIndex */ 1
        57: .line 463
            iload 13 /* tlcLimit */
            istore 5 /* tlcStart */
        end local 15 // int limit
        end local 14 // int start
        end local 13 // int tlcLimit
        end local 12 // int compLength
        58: .line 443
      StackMap locals: java.awt.font.TextMeasurer int int int int int int sun.font.TextLineComponent[] int int int int
      StackMap stack:
            iload 9 /* linePos */
            iload 2 /* limitPos */
            if_icmplt 40
        59: .line 467
            aload 7 /* components */
            areturn
        end local 11 // int subsetFlag
        end local 10 // int breakPt
        end local 9 // int linePos
        end local 8 // int newCompIndex
        end local 7 // sun.font.TextLineComponent[] components
        end local 6 // int componentCount
        end local 5 // int tlcStart
        end local 4 // int tlcIndex
        end local 3 // int cdWsStart
        end local 2 // int limitPos
        end local 1 // int startPos
        end local 0 // java.awt.font.TextMeasurer this
      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 // java.awt.font.TextMeasurer this
        start local 1 // int startPos
        start local 2 // int limitPos
         0: .line 472
            aconst_null
            astore 3 /* charsLtoV */
        start local 3 // int[] charsLtoV
         1: .line 473
            aconst_null
            astore 4 /* charLevels */
        start local 4 // byte[] charLevels
         2: .line 475
            aload 0 /* this */
            getfield java.awt.font.TextMeasurer.fBidi:Ljava/text/Bidi;
            ifnull 7
         3: .line 476
            aload 0 /* this */
            getfield java.awt.font.TextMeasurer.fBidi:Ljava/text/Bidi;
            iload 1 /* startPos */
            iload 2 /* limitPos */
            invokevirtual java.text.Bidi.createLineBidi:(II)Ljava/text/Bidi;
            astore 5 /* lineBidi */
        start local 5 // java.text.Bidi lineBidi
         4: .line 477
            aload 5 /* lineBidi */
            invokestatic sun.font.BidiUtils.getLevels:(Ljava/text/Bidi;)[B
            astore 4 /* charLevels */
         5: .line 478
            aload 4 /* charLevels */
            invokestatic sun.font.BidiUtils.createVisualToLogicalMap:([B)[I
            astore 6 /* charsVtoL */
        start local 6 // int[] charsVtoL
         6: .line 479
            aload 6 /* charsVtoL */
            invokestatic sun.font.BidiUtils.createInverseMap:([I)[I
            astore 3 /* charsLtoV */
        end local 6 // int[] charsVtoL
        end local 5 // java.text.Bidi lineBidi
         7: .line 482
      StackMap locals: int[] byte[]
      StackMap stack:
            aload 0 /* this */
            iload 1 /* startPos */
            iload 2 /* limitPos */
            invokevirtual java.awt.font.TextMeasurer.makeComponentsOnRange:(II)[Lsun/font/TextLineComponent;
            astore 5 /* components */
        start local 5 // sun.font.TextLineComponent[] components
         8: .line 484
            new java.awt.font.TextLine
            dup
            aload 0 /* this */
            getfield java.awt.font.TextMeasurer.fFrc:Ljava/awt/font/FontRenderContext;
         9: .line 485
            aload 5 /* components */
        10: .line 486
            aload 0 /* this */
            getfield java.awt.font.TextMeasurer.fBaselineOffsets:[F
        11: .line 487
            aload 0 /* this */
            getfield java.awt.font.TextMeasurer.fChars:[C
        12: .line 488
            iload 1 /* startPos */
        13: .line 489
            iload 2 /* limitPos */
        14: .line 490
            aload 3 /* charsLtoV */
        15: .line 491
            aload 4 /* charLevels */
        16: .line 492
            aload 0 /* this */
            getfield java.awt.font.TextMeasurer.fIsDirectionLTR:Z
        17: .line 484
            invokespecial java.awt.font.TextLine.<init>:(Ljava/awt/font/FontRenderContext;[Lsun/font/TextLineComponent;[F[CII[I[BZ)V
            areturn
        end local 5 // sun.font.TextLineComponent[] components
        end local 4 // byte[] charLevels
        end local 3 // int[] charsLtoV
        end local 2 // int limitPos
        end local 1 // int startPos
        end local 0 // java.awt.font.TextMeasurer this
      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 // java.awt.font.TextMeasurer this
        start local 1 // int start
        start local 2 // int limit
         0: .line 498
            iload 1 /* start */
            aload 0 /* this */
            getfield java.awt.font.TextMeasurer.fComponentStart:I
            if_icmplt 1
            iload 2 /* limit */
            aload 0 /* this */
            getfield java.awt.font.TextMeasurer.fComponentLimit:I
            if_icmple 2
         1: .line 499
      StackMap locals:
      StackMap stack:
            aload 0 /* this */
            iload 1 /* start */
            iload 2 /* limit */
            invokevirtual java.awt.font.TextMeasurer.generateComponents:(II)V
         2: .line 501
      StackMap locals:
      StackMap stack:
            return
        end local 2 // int limit
        end local 1 // int start
        end local 0 // java.awt.font.TextMeasurer this
      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 // java.awt.font.TextMeasurer this
        start local 1 // int localStart
         0: .line 505
            iload 1 /* localStart */
            istore 2 /* compStart */
        start local 2 // int compStart
         1: .line 506
            aload 0 /* this */
            getfield java.awt.font.TextMeasurer.fChars:[C
            arraylength
            istore 3 /* compLimit */
        start local 3 // int compLimit
         2: .line 509
            aload 0 /* this */
            getfield java.awt.font.TextMeasurer.layoutCount:I
            ifle 5
            aload 0 /* this */
            getfield java.awt.font.TextMeasurer.haveLayoutWindow:Z
            ifne 5
         3: .line 510
            aload 0 /* this */
            getfield java.awt.font.TextMeasurer.layoutCharCount:I
            aload 0 /* this */
            getfield java.awt.font.TextMeasurer.layoutCount:I
            idiv
            iconst_1
            invokestatic java.lang.Math.max:(II)I
            i2f
            fstore 4 /* avgLineLength */
        start local 4 // float avgLineLength
         4: .line 511
            iload 1 /* localStart */
            fload 4 /* avgLineLength */
            getstatic java.awt.font.TextMeasurer.EST_LINES:F
            fmul
            f2i
            iadd
            aload 0 /* this */
            getfield java.awt.font.TextMeasurer.fChars:[C
            arraylength
            invokestatic java.lang.Math.min:(II)I
            istore 3 /* compLimit */
        end local 4 // float avgLineLength
         5: .line 514
      StackMap locals: int int
      StackMap stack:
            iload 1 /* localStart */
            ifgt 6
            iload 3 /* compLimit */
            aload 0 /* this */
            getfield java.awt.font.TextMeasurer.fChars:[C
            arraylength
            if_icmpge 19
         6: .line 515
      StackMap locals:
      StackMap stack:
            aload 0 /* this */
            getfield java.awt.font.TextMeasurer.charIter:Ljava/awt/font/CharArrayIterator;
            ifnonnull 9
         7: .line 516
            aload 0 /* this */
            new java.awt.font.CharArrayIterator
            dup
            aload 0 /* this */
            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: .line 517
            goto 10
         9: .line 519
      StackMap locals:
      StackMap stack:
            aload 0 /* this */
            getfield java.awt.font.TextMeasurer.charIter:Ljava/awt/font/CharArrayIterator;
            aload 0 /* this */
            getfield java.awt.font.TextMeasurer.fChars:[C
            invokevirtual java.awt.font.CharArrayIterator.reset:([C)V
        10: .line 521
      StackMap locals:
      StackMap stack:
            aload 0 /* this */
            getfield java.awt.font.TextMeasurer.fLineBreak:Ljava/text/BreakIterator;
            ifnonnull 12
        11: .line 522
            aload 0 /* this */
            invokestatic java.text.BreakIterator.getLineInstance:()Ljava/text/BreakIterator;
            putfield java.awt.font.TextMeasurer.fLineBreak:Ljava/text/BreakIterator;
        12: .line 524
      StackMap locals:
      StackMap stack:
            aload 0 /* this */
            getfield java.awt.font.TextMeasurer.fLineBreak:Ljava/text/BreakIterator;
            aload 0 /* this */
            getfield java.awt.font.TextMeasurer.charIter:Ljava/awt/font/CharArrayIterator;
            invokevirtual java.text.BreakIterator.setText:(Ljava/text/CharacterIterator;)V
        13: .line 525
            iload 1 /* localStart */
            ifle 16
        14: .line 526
            aload 0 /* this */
            getfield java.awt.font.TextMeasurer.fLineBreak:Ljava/text/BreakIterator;
            iload 1 /* localStart */
            invokevirtual java.text.BreakIterator.isBoundary:(I)Z
            ifne 16
        15: .line 527
            aload 0 /* this */
            getfield java.awt.font.TextMeasurer.fLineBreak:Ljava/text/BreakIterator;
            iload 1 /* localStart */
            invokevirtual java.text.BreakIterator.preceding:(I)I
            istore 2 /* compStart */
        16: .line 530
      StackMap locals:
      StackMap stack:
            iload 3 /* compLimit */
            aload 0 /* this */
            getfield java.awt.font.TextMeasurer.fChars:[C
            arraylength
            if_icmpge 19
        17: .line 531
            aload 0 /* this */
            getfield java.awt.font.TextMeasurer.fLineBreak:Ljava/text/BreakIterator;
            iload 3 /* compLimit */
            invokevirtual java.text.BreakIterator.isBoundary:(I)Z
            ifne 19
        18: .line 532
            aload 0 /* this */
            getfield java.awt.font.TextMeasurer.fLineBreak:Ljava/text/BreakIterator;
            iload 3 /* compLimit */
            invokevirtual java.text.BreakIterator.following:(I)I
            istore 3 /* compLimit */
        19: .line 537
      StackMap locals:
      StackMap stack:
            aload 0 /* this */
            iload 2 /* compStart */
            iload 3 /* compLimit */
            invokevirtual java.awt.font.TextMeasurer.ensureComponents:(II)V
        20: .line 538
            aload 0 /* this */
            iconst_1
            putfield java.awt.font.TextMeasurer.haveLayoutWindow:Z
        21: .line 539
            return
        end local 3 // int compLimit
        end local 2 // int compStart
        end local 1 // int localStart
        end local 0 // java.awt.font.TextMeasurer this
      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 // java.awt.font.TextMeasurer this
        start local 1 // int start
        start local 2 // float maxAdvance
         0: .line 558
            iload 1 /* start */
            aload 0 /* this */
            getfield java.awt.font.TextMeasurer.fStart:I
            isub
            istore 3 /* localStart */
        start local 3 // int localStart
         1: .line 560
            aload 0 /* this */
            getfield java.awt.font.TextMeasurer.haveLayoutWindow:Z
            ifeq 4
         2: .line 561
            iload 3 /* localStart */
            aload 0 /* this */
            getfield java.awt.font.TextMeasurer.fComponentStart:I
            if_icmplt 4
         3: .line 562
            iload 3 /* localStart */
            aload 0 /* this */
            getfield java.awt.font.TextMeasurer.fComponentLimit:I
            if_icmplt 5
         4: .line 563
      StackMap locals: int
      StackMap stack:
            aload 0 /* this */
            iload 3 /* localStart */
            invokevirtual java.awt.font.TextMeasurer.makeLayoutWindow:(I)V
         5: .line 566
      StackMap locals:
      StackMap stack:
            aload 0 /* this */
            iload 3 /* localStart */
            fload 2 /* maxAdvance */
            invokevirtual java.awt.font.TextMeasurer.calcLineBreak:(IF)I
            aload 0 /* this */
            getfield java.awt.font.TextMeasurer.fStart:I
            iadd
            ireturn
        end local 3 // int localStart
        end local 2 // float maxAdvance
        end local 1 // int start
        end local 0 // java.awt.font.TextMeasurer this
      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 // java.awt.font.TextMeasurer this
        start local 1 // int start
        start local 2 // int limit
         0: .line 587
            iload 1 /* start */
            aload 0 /* this */
            getfield java.awt.font.TextMeasurer.fStart:I
            isub
            istore 3 /* localStart */
        start local 3 // int localStart
         1: .line 588
            iload 2 /* limit */
            aload 0 /* this */
            getfield java.awt.font.TextMeasurer.fStart:I
            isub
            istore 4 /* localLimit */
        start local 4 // int localLimit
         2: .line 590
            aload 0 /* this */
            iload 3 /* localStart */
            iload 4 /* localLimit */
            invokevirtual java.awt.font.TextMeasurer.ensureComponents:(II)V
         3: .line 591
            aload 0 /* this */
            iload 3 /* localStart */
            iload 4 /* localLimit */
            invokevirtual java.awt.font.TextMeasurer.makeTextLineOnRange:(II)Ljava/awt/font/TextLine;
            astore 5 /* line */
        start local 5 // java.awt.font.TextLine line
         4: .line 592
            aload 5 /* line */
            invokevirtual java.awt.font.TextLine.getMetrics:()Ljava/awt/font/TextLine$TextLineMetrics;
            getfield java.awt.font.TextLine$TextLineMetrics.advance:F
            freturn
        end local 5 // java.awt.font.TextLine line
        end local 4 // int localLimit
        end local 3 // int localStart
        end local 2 // int limit
        end local 1 // int start
        end local 0 // java.awt.font.TextMeasurer this
      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 // java.awt.font.TextMeasurer this
        start local 1 // int start
        start local 2 // int limit
         0: .line 612
            iload 1 /* start */
            aload 0 /* this */
            getfield java.awt.font.TextMeasurer.fStart:I
            isub
            istore 3 /* localStart */
        start local 3 // int localStart
         1: .line 613
            iload 2 /* limit */
            aload 0 /* this */
            getfield java.awt.font.TextMeasurer.fStart:I
            isub
            istore 4 /* localLimit */
        start local 4 // int localLimit
         2: .line 615
            aload 0 /* this */
            iload 3 /* localStart */
            iload 4 /* localLimit */
            invokevirtual java.awt.font.TextMeasurer.ensureComponents:(II)V
         3: .line 616
            aload 0 /* this */
            iload 3 /* localStart */
            iload 4 /* localLimit */
            invokevirtual java.awt.font.TextMeasurer.makeTextLineOnRange:(II)Ljava/awt/font/TextLine;
            astore 5 /* textLine */
        start local 5 // java.awt.font.TextLine textLine
         4: .line 618
            iload 4 /* localLimit */
            aload 0 /* this */
            getfield java.awt.font.TextMeasurer.fChars:[C
            arraylength
            if_icmpge 7
         5: .line 619
            aload 0 /* this */
            dup
            getfield java.awt.font.TextMeasurer.layoutCharCount:I
            iload 2 /* limit */
            iload 1 /* start */
            isub
            iadd
            putfield java.awt.font.TextMeasurer.layoutCharCount:I
         6: .line 620
            aload 0 /* this */
            dup
            getfield java.awt.font.TextMeasurer.layoutCount:I
            iconst_1
            iadd
            putfield java.awt.font.TextMeasurer.layoutCount:I
         7: .line 623
      StackMap locals: int int java.awt.font.TextLine
      StackMap stack:
            new java.awt.font.TextLayout
            dup
            aload 5 /* textLine */
         8: .line 624
            aload 0 /* this */
            getfield java.awt.font.TextMeasurer.fBaseline:B
         9: .line 625
            aload 0 /* this */
            getfield java.awt.font.TextMeasurer.fBaselineOffsets:[F
        10: .line 626
            aload 0 /* this */
            getfield java.awt.font.TextMeasurer.fJustifyRatio:F
        11: .line 623
            invokespecial java.awt.font.TextLayout.<init>:(Ljava/awt/font/TextLine;B[FF)V
            areturn
        end local 5 // java.awt.font.TextLine textLine
        end local 4 // int localLimit
        end local 3 // int localStart
        end local 2 // int limit
        end local 1 // int start
        end local 0 // java.awt.font.TextMeasurer this
      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 // java.awt.font.TextMeasurer this
         0: .line 634
            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 /* this */
            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: .line 636
            aload 0 /* this */
            iconst_0
            putfield java.awt.font.TextMeasurer.collectStats:Z
         2: .line 637
            return
        end local 0 // java.awt.font.TextMeasurer this
      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 // java.awt.font.TextMeasurer this
        start local 1 // java.text.AttributedCharacterIterator newParagraph
        start local 2 // int insertPos
         0: .line 663
            aload 0 /* this */
            getfield java.awt.font.TextMeasurer.collectStats:Z
            ifeq 2
         1: .line 664
            aload 0 /* this */
            invokevirtual java.awt.font.TextMeasurer.printStats:()V
         2: .line 666
      StackMap locals:
      StackMap stack:
            getstatic java.awt.font.TextMeasurer.wantStats:Z
            ifeq 4
         3: .line 667
            aload 0 /* this */
            iconst_1
            putfield java.awt.font.TextMeasurer.collectStats:Z
         4: .line 670
      StackMap locals:
      StackMap stack:
            aload 0 /* this */
            aload 1 /* newParagraph */
            invokeinterface java.text.AttributedCharacterIterator.getBeginIndex:()I
            putfield java.awt.font.TextMeasurer.fStart:I
         5: .line 671
            aload 1 /* newParagraph */
            invokeinterface java.text.AttributedCharacterIterator.getEndIndex:()I
            istore 3 /* end */
        start local 3 // int end
         6: .line 672
            iload 3 /* end */
            aload 0 /* this */
            getfield java.awt.font.TextMeasurer.fStart:I
            isub
            aload 0 /* this */
            getfield java.awt.font.TextMeasurer.fChars:[C
            arraylength
            iconst_1
            iadd
            if_icmpeq 8
         7: .line 673
            aload 0 /* this */
            aload 1 /* newParagraph */
            invokevirtual java.awt.font.TextMeasurer.initAll:(Ljava/text/AttributedCharacterIterator;)V
         8: .line 676
      StackMap locals: int
      StackMap stack:
            iload 3 /* end */
            aload 0 /* this */
            getfield java.awt.font.TextMeasurer.fStart:I
            isub
            newarray 5
            astore 4 /* newChars */
        start local 4 // char[] newChars
         9: .line 677
            iload 2 /* insertPos */
            aload 0 /* this */
            getfield java.awt.font.TextMeasurer.fStart:I
            isub
            istore 5 /* newCharIndex */
        start local 5 // int newCharIndex
        10: .line 678
            aload 0 /* this */
            getfield java.awt.font.TextMeasurer.fChars:[C
            iconst_0
            aload 4 /* newChars */
            iconst_0
            iload 5 /* newCharIndex */
            invokestatic java.lang.System.arraycopy:(Ljava/lang/Object;ILjava/lang/Object;II)V
        11: .line 680
            aload 1 /* newParagraph */
            iload 2 /* insertPos */
            invokeinterface java.text.AttributedCharacterIterator.setIndex:(I)C
            istore 6 /* newChar */
        start local 6 // char newChar
        12: .line 681
            aload 4 /* newChars */
            iload 5 /* newCharIndex */
            iload 6 /* newChar */
            castore
        13: .line 682
            aload 0 /* this */
            getfield java.awt.font.TextMeasurer.fChars:[C
        14: .line 683
            iload 5 /* newCharIndex */
        15: .line 684
            aload 4 /* newChars */
        16: .line 685
            iload 5 /* newCharIndex */
            iconst_1
            iadd
        17: .line 686
            iload 3 /* end */
            iload 2 /* insertPos */
            isub
            iconst_1
            isub
        18: .line 682
            invokestatic java.lang.System.arraycopy:(Ljava/lang/Object;ILjava/lang/Object;II)V
        19: .line 687
            aload 0 /* this */
            aload 4 /* newChars */
            putfield java.awt.font.TextMeasurer.fChars:[C
        20: .line 689
            aload 0 /* this */
            getfield java.awt.font.TextMeasurer.fBidi:Ljava/text/Bidi;
            ifnonnull 22
            aload 4 /* newChars */
            iload 5 /* newCharIndex */
            iload 5 /* newCharIndex */
            iconst_1
            iadd
            invokestatic java.text.Bidi.requiresBidi:([CII)Z
            ifne 22
        21: .line 690
            aload 1 /* newParagraph */
            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: .line 692
      StackMap locals: char[] int int
      StackMap stack:
            aload 0 /* this */
            new java.text.Bidi
            dup
            aload 1 /* newParagraph */
            invokespecial java.text.Bidi.<init>:(Ljava/text/AttributedCharacterIterator;)V
            putfield java.awt.font.TextMeasurer.fBidi:Ljava/text/Bidi;
        23: .line 693
            aload 0 /* this */
            getfield java.awt.font.TextMeasurer.fBidi:Ljava/text/Bidi;
            invokevirtual java.text.Bidi.isLeftToRight:()Z
            ifeq 25
        24: .line 694
            aload 0 /* this */
            aconst_null
            putfield java.awt.font.TextMeasurer.fBidi:Ljava/text/Bidi;
        25: .line 698
      StackMap locals:
      StackMap stack:
            aload 0 /* this */
            aload 1 /* newParagraph */
        26: .line 699
            aload 0 /* this */
            getfield java.awt.font.TextMeasurer.fChars:[C
        27: .line 700
            iload 2 /* insertPos */
        28: .line 701
            aload 0 /* this */
            getfield java.awt.font.TextMeasurer.fParagraph:Ljava/awt/font/StyledParagraph;
        29: .line 698
            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: .line 702
            aload 0 /* this */
            invokevirtual java.awt.font.TextMeasurer.invalidateComponents:()V
        31: .line 703
            return
        end local 6 // char newChar
        end local 5 // int newCharIndex
        end local 4 // char[] newChars
        end local 3 // int end
        end local 2 // int insertPos
        end local 1 // java.text.AttributedCharacterIterator newParagraph
        end local 0 // java.awt.font.TextMeasurer this
      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 // java.awt.font.TextMeasurer this
        start local 1 // java.text.AttributedCharacterIterator newParagraph
        start local 2 // int deletePos
         0: .line 729
            aload 0 /* this */
            aload 1 /* newParagraph */
            invokeinterface java.text.AttributedCharacterIterator.getBeginIndex:()I
            putfield java.awt.font.TextMeasurer.fStart:I
         1: .line 730
            aload 1 /* newParagraph */
            invokeinterface java.text.AttributedCharacterIterator.getEndIndex:()I
            istore 3 /* end */
        start local 3 // int end
         2: .line 731
            iload 3 /* end */
            aload 0 /* this */
            getfield java.awt.font.TextMeasurer.fStart:I
            isub
            aload 0 /* this */
            getfield java.awt.font.TextMeasurer.fChars:[C
            arraylength
            iconst_1
            isub
            if_icmpeq 4
         3: .line 732
            aload 0 /* this */
            aload 1 /* newParagraph */
            invokevirtual java.awt.font.TextMeasurer.initAll:(Ljava/text/AttributedCharacterIterator;)V
         4: .line 735
      StackMap locals: int
      StackMap stack:
            iload 3 /* end */
            aload 0 /* this */
            getfield java.awt.font.TextMeasurer.fStart:I
            isub
            newarray 5
            astore 4 /* newChars */
        start local 4 // char[] newChars
         5: .line 736
            iload 2 /* deletePos */
            aload 0 /* this */
            getfield java.awt.font.TextMeasurer.fStart:I
            isub
            istore 5 /* changedIndex */
        start local 5 // int changedIndex
         6: .line 738
            aload 0 /* this */
            getfield java.awt.font.TextMeasurer.fChars:[C
            iconst_0
            aload 4 /* newChars */
            iconst_0
            iload 2 /* deletePos */
            aload 0 /* this */
            getfield java.awt.font.TextMeasurer.fStart:I
            isub
            invokestatic java.lang.System.arraycopy:(Ljava/lang/Object;ILjava/lang/Object;II)V
         7: .line 739
            aload 0 /* this */
            getfield java.awt.font.TextMeasurer.fChars:[C
            iload 5 /* changedIndex */
            iconst_1
            iadd
            aload 4 /* newChars */
            iload 5 /* changedIndex */
            iload 3 /* end */
            iload 2 /* deletePos */
            isub
            invokestatic java.lang.System.arraycopy:(Ljava/lang/Object;ILjava/lang/Object;II)V
         8: .line 740
            aload 0 /* this */
            aload 4 /* newChars */
            putfield java.awt.font.TextMeasurer.fChars:[C
         9: .line 742
            aload 0 /* this */
            getfield java.awt.font.TextMeasurer.fBidi:Ljava/text/Bidi;
            ifnull 13
        10: .line 743
            aload 0 /* this */
            new java.text.Bidi
            dup
            aload 1 /* newParagraph */
            invokespecial java.text.Bidi.<init>:(Ljava/text/AttributedCharacterIterator;)V
            putfield java.awt.font.TextMeasurer.fBidi:Ljava/text/Bidi;
        11: .line 744
            aload 0 /* this */
            getfield java.awt.font.TextMeasurer.fBidi:Ljava/text/Bidi;
            invokevirtual java.text.Bidi.isLeftToRight:()Z
            ifeq 13
        12: .line 745
            aload 0 /* this */
            aconst_null
            putfield java.awt.font.TextMeasurer.fBidi:Ljava/text/Bidi;
        13: .line 749
      StackMap locals: char[] int
      StackMap stack:
            aload 0 /* this */
            aload 1 /* newParagraph */
        14: .line 750
            aload 0 /* this */
            getfield java.awt.font.TextMeasurer.fChars:[C
        15: .line 751
            iload 2 /* deletePos */
        16: .line 752
            aload 0 /* this */
            getfield java.awt.font.TextMeasurer.fParagraph:Ljava/awt/font/StyledParagraph;
        17: .line 749
            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: .line 753
            aload 0 /* this */
            invokevirtual java.awt.font.TextMeasurer.invalidateComponents:()V
        19: .line 754
            return
        end local 5 // int changedIndex
        end local 4 // char[] newChars
        end local 3 // int end
        end local 2 // int deletePos
        end local 1 // java.text.AttributedCharacterIterator newParagraph
        end local 0 // java.awt.font.TextMeasurer this
      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 // java.awt.font.TextMeasurer this
         0: .line 762
            aload 0 /* this */
            getfield java.awt.font.TextMeasurer.fChars:[C
            areturn
        end local 0 // java.awt.font.TextMeasurer this
      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