public class sun.awt.motif.X11FontMetrics extends java.awt.FontMetrics
  minor version: 0
  major version: 59
  flags: flags: (0x0021) ACC_PUBLIC, ACC_SUPER
  this_class: sun.awt.motif.X11FontMetrics
  super_class: java.awt.FontMetrics
{
  int[] widths;
    descriptor: [I
    flags: (0x0000) 

  int ascent;
    descriptor: I
    flags: (0x0000) 

  int descent;
    descriptor: I
    flags: (0x0000) 

  int leading;
    descriptor: I
    flags: (0x0000) 

  int height;
    descriptor: I
    flags: (0x0000) 

  int maxAscent;
    descriptor: I
    flags: (0x0000) 

  int maxDescent;
    descriptor: I
    flags: (0x0000) 

  int maxHeight;
    descriptor: I
    flags: (0x0000) 

  int maxAdvance;
    descriptor: I
    flags: (0x0000) 

  static java.util.Hashtable table;
    descriptor: Ljava/util/Hashtable;
    flags: (0x0008) ACC_STATIC

  static void <clinit>();
    descriptor: ()V
    flags: (0x0008) ACC_STATIC
    Code:
      stack=2, locals=0, args_size=0
         0: .line 106
            invokestatic sun.awt.motif.X11FontMetrics.initIDs:()V
         1: .line 221
            new java.util.Hashtable
            dup
            invokespecial java.util.Hashtable.<init>:()V
            putstatic sun.awt.motif.X11FontMetrics.table:Ljava/util/Hashtable;
            return
      LocalVariableTable:
        Start  End  Slot  Name  Signature

  private static native void initIDs();
    descriptor: ()V
    flags: (0x010a) ACC_PRIVATE, ACC_STATIC, ACC_NATIVE

  public void <init>(java.awt.Font);
    descriptor: (Ljava/awt/Font;)V
    flags: (0x0001) ACC_PUBLIC
    Code:
      stack=2, locals=2, args_size=2
        start local 0 // sun.awt.motif.X11FontMetrics this
        start local 1 // java.awt.Font font
         0: .line 119
            aload 0 /* this */
            aload 1 /* font */
            invokespecial java.awt.FontMetrics.<init>:(Ljava/awt/Font;)V
         1: .line 120
            aload 0 /* this */
            invokevirtual sun.awt.motif.X11FontMetrics.init:()V
         2: .line 121
            return
        end local 1 // java.awt.Font font
        end local 0 // sun.awt.motif.X11FontMetrics this
      LocalVariableTable:
        Start  End  Slot  Name  Signature
            0    3     0  this  Lsun/awt/motif/X11FontMetrics;
            0    3     1  font  Ljava/awt/Font;
    MethodParameters:
      Name  Flags
      font  

  public int getLeading();
    descriptor: ()I
    flags: (0x0001) ACC_PUBLIC
    Code:
      stack=1, locals=1, args_size=1
        start local 0 // sun.awt.motif.X11FontMetrics this
         0: .line 127
            aload 0 /* this */
            getfield sun.awt.motif.X11FontMetrics.leading:I
            ireturn
        end local 0 // sun.awt.motif.X11FontMetrics this
      LocalVariableTable:
        Start  End  Slot  Name  Signature
            0    1     0  this  Lsun/awt/motif/X11FontMetrics;

  public int getAscent();
    descriptor: ()I
    flags: (0x0001) ACC_PUBLIC
    Code:
      stack=1, locals=1, args_size=1
        start local 0 // sun.awt.motif.X11FontMetrics this
         0: .line 134
            aload 0 /* this */
            getfield sun.awt.motif.X11FontMetrics.ascent:I
            ireturn
        end local 0 // sun.awt.motif.X11FontMetrics this
      LocalVariableTable:
        Start  End  Slot  Name  Signature
            0    1     0  this  Lsun/awt/motif/X11FontMetrics;

  public int getDescent();
    descriptor: ()I
    flags: (0x0001) ACC_PUBLIC
    Code:
      stack=1, locals=1, args_size=1
        start local 0 // sun.awt.motif.X11FontMetrics this
         0: .line 141
            aload 0 /* this */
            getfield sun.awt.motif.X11FontMetrics.descent:I
            ireturn
        end local 0 // sun.awt.motif.X11FontMetrics this
      LocalVariableTable:
        Start  End  Slot  Name  Signature
            0    1     0  this  Lsun/awt/motif/X11FontMetrics;

  public int getHeight();
    descriptor: ()I
    flags: (0x0001) ACC_PUBLIC
    Code:
      stack=1, locals=1, args_size=1
        start local 0 // sun.awt.motif.X11FontMetrics this
         0: .line 148
            aload 0 /* this */
            getfield sun.awt.motif.X11FontMetrics.height:I
            ireturn
        end local 0 // sun.awt.motif.X11FontMetrics this
      LocalVariableTable:
        Start  End  Slot  Name  Signature
            0    1     0  this  Lsun/awt/motif/X11FontMetrics;

  public int getMaxAscent();
    descriptor: ()I
    flags: (0x0001) ACC_PUBLIC
    Code:
      stack=1, locals=1, args_size=1
        start local 0 // sun.awt.motif.X11FontMetrics this
         0: .line 155
            aload 0 /* this */
            getfield sun.awt.motif.X11FontMetrics.maxAscent:I
            ireturn
        end local 0 // sun.awt.motif.X11FontMetrics this
      LocalVariableTable:
        Start  End  Slot  Name  Signature
            0    1     0  this  Lsun/awt/motif/X11FontMetrics;

  public int getMaxDescent();
    descriptor: ()I
    flags: (0x0001) ACC_PUBLIC
    Code:
      stack=1, locals=1, args_size=1
        start local 0 // sun.awt.motif.X11FontMetrics this
         0: .line 162
            aload 0 /* this */
            getfield sun.awt.motif.X11FontMetrics.maxDescent:I
            ireturn
        end local 0 // sun.awt.motif.X11FontMetrics this
      LocalVariableTable:
        Start  End  Slot  Name  Signature
            0    1     0  this  Lsun/awt/motif/X11FontMetrics;

  public int getMaxAdvance();
    descriptor: ()I
    flags: (0x0001) ACC_PUBLIC
    Code:
      stack=1, locals=1, args_size=1
        start local 0 // sun.awt.motif.X11FontMetrics this
         0: .line 169
            aload 0 /* this */
            getfield sun.awt.motif.X11FontMetrics.maxAdvance:I
            ireturn
        end local 0 // sun.awt.motif.X11FontMetrics this
      LocalVariableTable:
        Start  End  Slot  Name  Signature
            0    1     0  this  Lsun/awt/motif/X11FontMetrics;

  public int stringWidth(java.lang.String);
    descriptor: (Ljava/lang/String;)I
    flags: (0x0001) ACC_PUBLIC
    Code:
      stack=4, locals=2, args_size=2
        start local 0 // sun.awt.motif.X11FontMetrics this
        start local 1 // java.lang.String string
         0: .line 176
            aload 0 /* this */
            aload 1 /* string */
            invokevirtual java.lang.String.toCharArray:()[C
            iconst_0
            aload 1 /* string */
            invokevirtual java.lang.String.length:()I
            invokevirtual sun.awt.motif.X11FontMetrics.charsWidth:([CII)I
            ireturn
        end local 1 // java.lang.String string
        end local 0 // sun.awt.motif.X11FontMetrics this
      LocalVariableTable:
        Start  End  Slot    Name  Signature
            0    1     0    this  Lsun/awt/motif/X11FontMetrics;
            0    1     1  string  Ljava/lang/String;
    MethodParameters:
        Name  Flags
      string  

  public int charsWidth(char[], int, int);
    descriptor: ([CII)I
    flags: (0x0001) ACC_PUBLIC
    Code:
      stack=5, locals=9, args_size=4
        start local 0 // sun.awt.motif.X11FontMetrics this
        start local 1 // char[] chars
        start local 2 // int offset
        start local 3 // int length
         0: .line 183
            aload 0 /* this */
            invokevirtual sun.awt.motif.X11FontMetrics.getFont:()Ljava/awt/Font;
            astore 4 /* font */
        start local 4 // java.awt.Font font
         1: .line 184
            aload 4 /* font */
            invokevirtual java.awt.Font.getPeer:()Ljava/awt/peer/FontPeer;
            checkcast sun.awt.PlatformFont
            astore 5 /* pf */
        start local 5 // sun.awt.PlatformFont pf
         2: .line 185
            aload 5 /* pf */
            invokevirtual sun.awt.PlatformFont.mightHaveMultiFontMetrics:()Z
            ifeq 4
         3: .line 186
            aload 0 /* this */
            aload 1 /* chars */
            iload 2 /* offset */
            iload 3 /* length */
            aload 4 /* font */
            invokevirtual sun.awt.motif.X11FontMetrics.getMFCharsWidth:([CIILjava/awt/Font;)I
            ireturn
         4: .line 188
      StackMap locals: java.awt.Font sun.awt.PlatformFont
      StackMap stack:
            aload 0 /* this */
            getfield sun.awt.motif.X11FontMetrics.widths:[I
            ifnull 16
         5: .line 189
            iconst_0
            istore 6 /* w */
        start local 6 // int w
         6: .line 190
            iload 2 /* offset */
            istore 7 /* i */
        start local 7 // int i
         7: goto 14
         8: .line 191
      StackMap locals: int int
      StackMap stack:
            aload 1 /* chars */
            iload 7 /* i */
            caload
            istore 8 /* ch */
        start local 8 // int ch
         9: .line 192
            iload 8 /* ch */
            iflt 10
            iload 8 /* ch */
            aload 0 /* this */
            getfield sun.awt.motif.X11FontMetrics.widths:[I
            arraylength
            if_icmplt 12
        10: .line 193
      StackMap locals: int
      StackMap stack:
            iload 6 /* w */
            aload 0 /* this */
            getfield sun.awt.motif.X11FontMetrics.maxAdvance:I
            iadd
            istore 6 /* w */
        11: .line 194
            goto 13
        12: .line 195
      StackMap locals:
      StackMap stack:
            iload 6 /* w */
            aload 0 /* this */
            getfield sun.awt.motif.X11FontMetrics.widths:[I
            iload 8 /* ch */
            iaload
            iadd
            istore 6 /* w */
        end local 8 // int ch
        13: .line 190
      StackMap locals:
      StackMap stack:
            iinc 7 /* i */ 1
      StackMap locals:
      StackMap stack:
        14: iload 7 /* i */
            iload 2 /* offset */
            iload 3 /* length */
            iadd
            if_icmplt 8
        end local 7 // int i
        15: .line 198
            iload 6 /* w */
            ireturn
        end local 6 // int w
        16: .line 200
      StackMap locals:
      StackMap stack:
            aload 0 /* this */
            getfield sun.awt.motif.X11FontMetrics.maxAdvance:I
            iload 3 /* length */
            imul
            ireturn
        end local 5 // sun.awt.PlatformFont pf
        end local 4 // java.awt.Font font
        end local 3 // int length
        end local 2 // int offset
        end local 1 // char[] chars
        end local 0 // sun.awt.motif.X11FontMetrics this
      LocalVariableTable:
        Start  End  Slot    Name  Signature
            0   17     0    this  Lsun/awt/motif/X11FontMetrics;
            0   17     1   chars  [C
            0   17     2  offset  I
            0   17     3  length  I
            1   17     4    font  Ljava/awt/Font;
            2   17     5      pf  Lsun/awt/PlatformFont;
            6   16     6       w  I
            7   15     7       i  I
            9   13     8      ch  I
    MethodParameters:
        Name  Flags
      chars   
      offset  
      length  

  private native int getMFCharsWidth(char[], int, int, java.awt.Font);
    descriptor: ([CIILjava/awt/Font;)I
    flags: (0x0102) ACC_PRIVATE, ACC_NATIVE
    MethodParameters:
        Name  Flags
      chars   
      offset  
      length  
      font    

  public native int bytesWidth(byte[], int, int);
    descriptor: ([BII)I
    flags: (0x0101) ACC_PUBLIC, ACC_NATIVE
    MethodParameters:
      Name  Flags
      data  
      off   
      len   

  public int[] getWidths();
    descriptor: ()[I
    flags: (0x0001) ACC_PUBLIC
    Code:
      stack=1, locals=1, args_size=1
        start local 0 // sun.awt.motif.X11FontMetrics this
         0: .line 216
            aload 0 /* this */
            getfield sun.awt.motif.X11FontMetrics.widths:[I
            areturn
        end local 0 // sun.awt.motif.X11FontMetrics this
      LocalVariableTable:
        Start  End  Slot  Name  Signature
            0    1     0  this  Lsun/awt/motif/X11FontMetrics;

  native void init();
    descriptor: ()V
    flags: (0x0100) ACC_NATIVE

  static synchronized java.awt.FontMetrics getFontMetrics(java.awt.Font);
    descriptor: (Ljava/awt/Font;)Ljava/awt/FontMetrics;
    flags: (0x0028) ACC_STATIC, ACC_SYNCHRONIZED
    Code:
      stack=5, locals=2, args_size=1
        start local 0 // java.awt.Font font
         0: .line 224
            getstatic sun.awt.motif.X11FontMetrics.table:Ljava/util/Hashtable;
            aload 0 /* font */
            invokevirtual java.util.Hashtable.get:(Ljava/lang/Object;)Ljava/lang/Object;
            checkcast java.awt.FontMetrics
            astore 1 /* fm */
        start local 1 // java.awt.FontMetrics fm
         1: .line 225
            aload 1 /* fm */
            ifnonnull 3
         2: .line 226
            getstatic sun.awt.motif.X11FontMetrics.table:Ljava/util/Hashtable;
            aload 0 /* font */
            new sun.awt.motif.X11FontMetrics
            dup
            aload 0 /* font */
            invokespecial sun.awt.motif.X11FontMetrics.<init>:(Ljava/awt/Font;)V
            dup
            astore 1 /* fm */
            invokevirtual java.util.Hashtable.put:(Ljava/lang/Object;Ljava/lang/Object;)Ljava/lang/Object;
            pop
         3: .line 228
      StackMap locals: java.awt.FontMetrics
      StackMap stack:
            aload 1 /* fm */
            areturn
        end local 1 // java.awt.FontMetrics fm
        end local 0 // java.awt.Font font
      LocalVariableTable:
        Start  End  Slot  Name  Signature
            0    4     0  font  Ljava/awt/Font;
            1    4     1    fm  Ljava/awt/FontMetrics;
    MethodParameters:
      Name  Flags
      font  
}
SourceFile: "X11FontMetrics.java"