final class sun.font.GlyphLayout$EngineRecord
  minor version: 0
  major version: 59
  flags: flags: (0x0030) ACC_FINAL, ACC_SUPER
  this_class: sun.font.GlyphLayout$EngineRecord
  super_class: java.lang.Object
{
  private int start;
    descriptor: I
    flags: (0x0002) ACC_PRIVATE

  private int limit;
    descriptor: I
    flags: (0x0002) ACC_PRIVATE

  private int gmask;
    descriptor: I
    flags: (0x0002) ACC_PRIVATE

  private int eflags;
    descriptor: I
    flags: (0x0002) ACC_PRIVATE

  private sun.font.GlyphLayout$LayoutEngineKey key;
    descriptor: Lsun/font/GlyphLayout$LayoutEngineKey;
    flags: (0x0002) ACC_PRIVATE

  private sun.font.GlyphLayout$LayoutEngine engine;
    descriptor: Lsun/font/GlyphLayout$LayoutEngine;
    flags: (0x0002) ACC_PRIVATE

  final sun.font.GlyphLayout this$0;
    descriptor: Lsun/font/GlyphLayout;
    flags: (0x1010) ACC_FINAL, ACC_SYNTHETIC

  void <init>(sun.font.GlyphLayout);
    descriptor: (Lsun/font/GlyphLayout;)V
    flags: (0x0000) 
    Code:
      stack=3, locals=2, args_size=2
        start local 0 // sun.font.GlyphLayout$EngineRecord this
         0: .line 646
            aload 0 /* this */
            aload 1
            putfield sun.font.GlyphLayout$EngineRecord.this$0:Lsun/font/GlyphLayout;
            aload 0 /* this */
            invokespecial java.lang.Object.<init>:()V
         1: .line 647
            aload 0 /* this */
            new sun.font.GlyphLayout$LayoutEngineKey
            dup
            invokespecial sun.font.GlyphLayout$LayoutEngineKey.<init>:()V
            putfield sun.font.GlyphLayout$EngineRecord.key:Lsun/font/GlyphLayout$LayoutEngineKey;
         2: .line 648
            return
        end local 0 // sun.font.GlyphLayout$EngineRecord this
      LocalVariableTable:
        Start  End  Slot  Name  Signature
            0    3     0  this  Lsun/font/GlyphLayout$EngineRecord;
    MethodParameters:
        Name  Flags
      this$0  final

  void init(int, int, sun.font.Font2D, int, int, int);
    descriptor: (IILsun/font/Font2D;III)V
    flags: (0x0000) 
    Code:
      stack=4, locals=10, args_size=7
        start local 0 // sun.font.GlyphLayout$EngineRecord this
        start local 1 // int start
        start local 2 // int limit
        start local 3 // sun.font.Font2D font
        start local 4 // int script
        start local 5 // int lang
        start local 6 // int gmask
         0: .line 651
            aload 0 /* this */
            iload 1 /* start */
            putfield sun.font.GlyphLayout$EngineRecord.start:I
         1: .line 652
            aload 0 /* this */
            iload 2 /* limit */
            putfield sun.font.GlyphLayout$EngineRecord.limit:I
         2: .line 653
            aload 0 /* this */
            iload 6 /* gmask */
            putfield sun.font.GlyphLayout$EngineRecord.gmask:I
         3: .line 654
            aload 0 /* this */
            getfield sun.font.GlyphLayout$EngineRecord.key:Lsun/font/GlyphLayout$LayoutEngineKey;
            aload 3 /* font */
            iload 4 /* script */
            iload 5 /* lang */
            invokevirtual sun.font.GlyphLayout$LayoutEngineKey.init:(Lsun/font/Font2D;II)V
         4: .line 655
            aload 0 /* this */
            iconst_0
            putfield sun.font.GlyphLayout$EngineRecord.eflags:I
         5: .line 658
            iload 1 /* start */
            istore 7 /* i */
        start local 7 // int i
         6: goto 19
         7: .line 659
      StackMap locals: int
      StackMap stack:
            aload 0 /* this */
            getfield sun.font.GlyphLayout$EngineRecord.this$0:Lsun/font/GlyphLayout;
            getfield sun.font.GlyphLayout._textRecord:Lsun/font/TextRecord;
            getfield sun.font.TextRecord.text:[C
            iload 7 /* i */
            caload
            istore 8 /* ch */
        start local 8 // int ch
         8: .line 660
            iload 8 /* ch */
            i2c
            invokestatic java.lang.Character.isHighSurrogate:(C)Z
            ifeq 12
         9: .line 661
            iload 7 /* i */
            iload 2 /* limit */
            iconst_1
            isub
            if_icmpge 12
        10: .line 662
            aload 0 /* this */
            getfield sun.font.GlyphLayout$EngineRecord.this$0:Lsun/font/GlyphLayout;
            getfield sun.font.GlyphLayout._textRecord:Lsun/font/TextRecord;
            getfield sun.font.TextRecord.text:[C
            iload 7 /* i */
            iconst_1
            iadd
            caload
            invokestatic java.lang.Character.isLowSurrogate:(C)Z
            ifeq 12
        11: .line 664
            iload 8 /* ch */
            i2c
            aload 0 /* this */
            getfield sun.font.GlyphLayout$EngineRecord.this$0:Lsun/font/GlyphLayout;
            getfield sun.font.GlyphLayout._textRecord:Lsun/font/TextRecord;
            getfield sun.font.TextRecord.text:[C
            iinc 7 /* i */ 1
            iload 7 /* i */
            caload
            invokestatic java.lang.Character.toCodePoint:(CC)I
            istore 8 /* ch */
        12: .line 666
      StackMap locals: int
      StackMap stack:
            iload 8 /* ch */
            invokestatic java.lang.Character.getType:(I)I
            istore 9 /* gc */
        start local 9 // int gc
        13: .line 667
            iload 9 /* gc */
            bipush 6
            if_icmpeq 16
        14: .line 668
            iload 9 /* gc */
            bipush 7
            if_icmpeq 16
        15: .line 669
            iload 9 /* gc */
            bipush 8
            if_icmpne 18
        16: .line 671
      StackMap locals: int
      StackMap stack:
            aload 0 /* this */
            iconst_4
            putfield sun.font.GlyphLayout$EngineRecord.eflags:I
        17: .line 672
            goto 20
        end local 9 // int gc
        end local 8 // int ch
        18: .line 658
      StackMap locals:
      StackMap stack:
            iinc 7 /* i */ 1
      StackMap locals:
      StackMap stack:
        19: iload 7 /* i */
            iload 2 /* limit */
            if_icmplt 7
        end local 7 // int i
        20: .line 676
      StackMap locals:
      StackMap stack:
            aload 0 /* this */
            aload 0 /* this */
            getfield sun.font.GlyphLayout$EngineRecord.this$0:Lsun/font/GlyphLayout;
            getfield sun.font.GlyphLayout._lef:Lsun/font/GlyphLayout$LayoutEngineFactory;
            aload 0 /* this */
            getfield sun.font.GlyphLayout$EngineRecord.key:Lsun/font/GlyphLayout$LayoutEngineKey;
            invokeinterface sun.font.GlyphLayout$LayoutEngineFactory.getEngine:(Lsun/font/GlyphLayout$LayoutEngineKey;)Lsun/font/GlyphLayout$LayoutEngine;
            putfield sun.font.GlyphLayout$EngineRecord.engine:Lsun/font/GlyphLayout$LayoutEngine;
        21: .line 677
            return
        end local 6 // int gmask
        end local 5 // int lang
        end local 4 // int script
        end local 3 // sun.font.Font2D font
        end local 2 // int limit
        end local 1 // int start
        end local 0 // sun.font.GlyphLayout$EngineRecord this
      LocalVariableTable:
        Start  End  Slot    Name  Signature
            0   22     0    this  Lsun/font/GlyphLayout$EngineRecord;
            0   22     1   start  I
            0   22     2   limit  I
            0   22     3    font  Lsun/font/Font2D;
            0   22     4  script  I
            0   22     5    lang  I
            0   22     6   gmask  I
            6   20     7       i  I
            8   18     8      ch  I
           13   18     9      gc  I
    MethodParameters:
        Name  Flags
      start   
      limit   
      font    
      script  
      lang    
      gmask   

  void layout();
    descriptor: ()V
    flags: (0x0000) 
    Code:
      stack=9, locals=1, args_size=1
        start local 0 // sun.font.GlyphLayout$EngineRecord this
         0: .line 680
            aload 0 /* this */
            getfield sun.font.GlyphLayout$EngineRecord.this$0:Lsun/font/GlyphLayout;
            getfield sun.font.GlyphLayout._textRecord:Lsun/font/TextRecord;
            aload 0 /* this */
            getfield sun.font.GlyphLayout$EngineRecord.start:I
            putfield sun.font.TextRecord.start:I
         1: .line 681
            aload 0 /* this */
            getfield sun.font.GlyphLayout$EngineRecord.this$0:Lsun/font/GlyphLayout;
            getfield sun.font.GlyphLayout._textRecord:Lsun/font/TextRecord;
            aload 0 /* this */
            getfield sun.font.GlyphLayout$EngineRecord.limit:I
            putfield sun.font.TextRecord.limit:I
         2: .line 682
            aload 0 /* this */
            getfield sun.font.GlyphLayout$EngineRecord.engine:Lsun/font/GlyphLayout$LayoutEngine;
            aload 0 /* this */
            getfield sun.font.GlyphLayout$EngineRecord.this$0:Lsun/font/GlyphLayout;
            getfield sun.font.GlyphLayout._sd:Lsun/font/FontStrikeDesc;
            aload 0 /* this */
            getfield sun.font.GlyphLayout$EngineRecord.this$0:Lsun/font/GlyphLayout;
            getfield sun.font.GlyphLayout._mat:[F
            aload 0 /* this */
            getfield sun.font.GlyphLayout$EngineRecord.gmask:I
            aload 0 /* this */
            getfield sun.font.GlyphLayout$EngineRecord.start:I
            aload 0 /* this */
            getfield sun.font.GlyphLayout$EngineRecord.this$0:Lsun/font/GlyphLayout;
            getfield sun.font.GlyphLayout._offset:I
            isub
            aload 0 /* this */
            getfield sun.font.GlyphLayout$EngineRecord.this$0:Lsun/font/GlyphLayout;
            getfield sun.font.GlyphLayout._textRecord:Lsun/font/TextRecord;
         3: .line 683
            aload 0 /* this */
            getfield sun.font.GlyphLayout$EngineRecord.this$0:Lsun/font/GlyphLayout;
            getfield sun.font.GlyphLayout._typo_flags:I
            aload 0 /* this */
            getfield sun.font.GlyphLayout$EngineRecord.eflags:I
            ior
            aload 0 /* this */
            getfield sun.font.GlyphLayout$EngineRecord.this$0:Lsun/font/GlyphLayout;
            getfield sun.font.GlyphLayout._pt:Ljava/awt/geom/Point2D$Float;
            aload 0 /* this */
            getfield sun.font.GlyphLayout$EngineRecord.this$0:Lsun/font/GlyphLayout;
            getfield sun.font.GlyphLayout._gvdata:Lsun/font/GlyphLayout$GVData;
         4: .line 682
            invokeinterface sun.font.GlyphLayout$LayoutEngine.layout:(Lsun/font/FontStrikeDesc;[FIILsun/font/TextRecord;ILjava/awt/geom/Point2D$Float;Lsun/font/GlyphLayout$GVData;)V
         5: .line 684
            return
        end local 0 // sun.font.GlyphLayout$EngineRecord this
      LocalVariableTable:
        Start  End  Slot  Name  Signature
            0    6     0  this  Lsun/font/GlyphLayout$EngineRecord;
}
SourceFile: "GlyphLayout.java"
NestHost: sun.font.GlyphLayout
InnerClasses:
  public Float = java.awt.geom.Point2D$Float of java.awt.geom.Point2D
  private final EngineRecord = sun.font.GlyphLayout$EngineRecord of sun.font.GlyphLayout
  public final GVData = sun.font.GlyphLayout$GVData of sun.font.GlyphLayout
  public abstract LayoutEngine = sun.font.GlyphLayout$LayoutEngine of sun.font.GlyphLayout
  public abstract LayoutEngineFactory = sun.font.GlyphLayout$LayoutEngineFactory of sun.font.GlyphLayout
  public final LayoutEngineKey = sun.font.GlyphLayout$LayoutEngineKey of sun.font.GlyphLayout