public class sun.awt.X11.XCustomCursor extends sun.awt.X11CustomCursor
  minor version: 0
  major version: 59
  flags: flags: (0x0021) ACC_PUBLIC, ACC_SUPER
  this_class: sun.awt.X11.XCustomCursor
  super_class: sun.awt.X11CustomCursor
{
  public void <init>(java.awt.Image, java.awt.Point, java.lang.String);
    descriptor: (Ljava/awt/Image;Ljava/awt/Point;Ljava/lang/String;)V
    flags: (0x0001) ACC_PUBLIC
    Code:
      stack=4, locals=4, args_size=4
        start local 0 // sun.awt.X11.XCustomCursor this
        start local 1 // java.awt.Image cursor
        start local 2 // java.awt.Point hotSpot
        start local 3 // java.lang.String name
         0: .line 43
            aload 0 /* this */
            aload 1 /* cursor */
            aload 2 /* hotSpot */
            aload 3 /* name */
            invokespecial sun.awt.X11CustomCursor.<init>:(Ljava/awt/Image;Ljava/awt/Point;Ljava/lang/String;)V
         1: .line 44
            return
        end local 3 // java.lang.String name
        end local 2 // java.awt.Point hotSpot
        end local 1 // java.awt.Image cursor
        end local 0 // sun.awt.X11.XCustomCursor this
      LocalVariableTable:
        Start  End  Slot     Name  Signature
            0    2     0     this  Lsun/awt/X11/XCustomCursor;
            0    2     1   cursor  Ljava/awt/Image;
            0    2     2  hotSpot  Ljava/awt/Point;
            0    2     3     name  Ljava/lang/String;
    Exceptions:
      throws java.lang.IndexOutOfBoundsException
    MethodParameters:
         Name  Flags
      cursor   
      hotSpot  
      name     

  static java.awt.Dimension getBestCursorSize(int, int);
    descriptor: (II)Ljava/awt/Dimension;
    flags: (0x0008) ACC_STATIC
    Code:
      stack=10, locals=8, args_size=2
        start local 0 // int preferredWidth
        start local 1 // int preferredHeight
         0: .line 58
            invokestatic sun.awt.X11.XToolkit.awtLock:()V
         1: .line 60
            invokestatic sun.awt.X11.XToolkit.getDisplay:()J
            lstore 3 /* display */
        start local 3 // long display
         2: .line 61
            lload 3 /* display */
         3: .line 62
            lload 3 /* display */
            invokestatic sun.awt.X11.XlibWrapper.DefaultScreen:(J)J
         4: .line 61
            invokestatic sun.awt.X11.XlibWrapper.RootWindow:(JJ)J
            lstore 5 /* root_window */
        start local 5 // long root_window
         5: .line 64
            lload 3 /* display */
            lload 5 /* root_window */
            iload 0 /* preferredWidth */
            invokestatic java.lang.Math.abs:(I)I
            iload 1 /* preferredHeight */
            invokestatic java.lang.Math.abs:(I)I
            getstatic sun.awt.X11.XlibWrapper.larg1:J
            getstatic sun.awt.X11.XlibWrapper.larg2:J
            invokestatic sun.awt.X11.XlibWrapper.XQueryBestCursor:(JJIIJJ)Z
            pop
         6: .line 65
            new java.awt.Dimension
            dup
            getstatic sun.awt.X11.XlibWrapper.unsafe:Ljdk/internal/misc/Unsafe;
            getstatic sun.awt.X11.XlibWrapper.larg1:J
            invokevirtual jdk.internal.misc.Unsafe.getInt:(J)I
            getstatic sun.awt.X11.XlibWrapper.unsafe:Ljdk/internal/misc/Unsafe;
            getstatic sun.awt.X11.XlibWrapper.larg2:J
            invokevirtual jdk.internal.misc.Unsafe.getInt:(J)I
            invokespecial java.awt.Dimension.<init>:(II)V
            astore 2 /* d */
        end local 5 // long root_window
        end local 3 // long display
        start local 2 // java.awt.Dimension d
         7: .line 66
            goto 11
        end local 2 // java.awt.Dimension d
         8: .line 67
      StackMap locals:
      StackMap stack: java.lang.Throwable
            astore 7
         9: .line 68
            invokestatic sun.awt.X11.XToolkit.awtUnlock:()V
        10: .line 69
            aload 7
            athrow
        start local 2 // java.awt.Dimension d
        11: .line 68
      StackMap locals: java.awt.Dimension
      StackMap stack:
            invokestatic sun.awt.X11.XToolkit.awtUnlock:()V
        12: .line 70
            aload 2 /* d */
            areturn
        end local 2 // java.awt.Dimension d
        end local 1 // int preferredHeight
        end local 0 // int preferredWidth
      LocalVariableTable:
        Start  End  Slot             Name  Signature
            0   13     0   preferredWidth  I
            0   13     1  preferredHeight  I
            7    8     2                d  Ljava/awt/Dimension;
           11   13     2                d  Ljava/awt/Dimension;
            2    7     3          display  J
            5    7     5      root_window  J
      Exception table:
        from    to  target  type
           1     8       8  any
    MethodParameters:
                 Name  Flags
      preferredWidth   
      preferredHeight  

  protected void createCursor(byte[], byte[], int, int, int, int, int, int);
    descriptor: ([B[BIIIIII)V
    flags: (0x0004) ACC_PROTECTED
    Code:
      stack=12, locals=28, args_size=9
        start local 0 // sun.awt.X11.XCustomCursor this
        start local 1 // byte[] xorMask
        start local 2 // byte[] andMask
        start local 3 // int width
        start local 4 // int height
        start local 5 // int fcolor
        start local 6 // int bcolor
        start local 7 // int xHotSpot
        start local 8 // int yHotSpot
         0: .line 78
            invokestatic sun.awt.X11.XToolkit.awtLock:()V
         1: .line 80
            invokestatic sun.awt.X11.XToolkit.getDisplay:()J
            lstore 9 /* display */
        start local 9 // long display
         2: .line 81
            lload 9 /* display */
         3: .line 82
            lload 9 /* display */
            invokestatic sun.awt.X11.XlibWrapper.DefaultScreen:(J)J
         4: .line 81
            invokestatic sun.awt.X11.XlibWrapper.RootWindow:(JJ)J
            lstore 11 /* root_window */
        start local 11 // long root_window
         5: .line 84
            invokestatic sun.awt.X11.XToolkit.getDefaultXColormap:()J
            lstore 13 /* colormap */
        start local 13 // long colormap
         6: .line 85
            new sun.awt.X11.XColor
            dup
            invokespecial sun.awt.X11.XColor.<init>:()V
            astore 15 /* fore_color */
        start local 15 // sun.awt.X11.XColor fore_color
         7: .line 87
            aload 15 /* fore_color */
            bipush 7
            invokevirtual sun.awt.X11.XColor.set_flags:(B)V
         8: .line 88
            aload 15 /* fore_color */
            iload 5 /* fcolor */
            bipush 16
            ishr
            sipush 255
            iand
            bipush 8
            ishl
            i2s
            invokevirtual sun.awt.X11.XColor.set_red:(S)V
         9: .line 89
            aload 15 /* fore_color */
            iload 5 /* fcolor */
            bipush 8
            ishr
            sipush 255
            iand
            bipush 8
            ishl
            i2s
            invokevirtual sun.awt.X11.XColor.set_green:(S)V
        10: .line 90
            aload 15 /* fore_color */
            iload 5 /* fcolor */
            iconst_0
            ishr
            sipush 255
            iand
            bipush 8
            ishl
            i2s
            invokevirtual sun.awt.X11.XColor.set_blue:(S)V
        11: .line 92
            lload 9 /* display */
            lload 13 /* colormap */
            aload 15 /* fore_color */
            getfield sun.awt.X11.XColor.pData:J
            invokestatic sun.awt.X11.XlibWrapper.XAllocColor:(JJJ)Z
            pop
        12: .line 95
            new sun.awt.X11.XColor
            dup
            invokespecial sun.awt.X11.XColor.<init>:()V
            astore 16 /* back_color */
        start local 16 // sun.awt.X11.XColor back_color
        13: .line 96
            aload 16 /* back_color */
            bipush 7
            invokevirtual sun.awt.X11.XColor.set_flags:(B)V
        14: .line 98
            aload 16 /* back_color */
            iload 6 /* bcolor */
            bipush 16
            ishr
            sipush 255
            iand
            bipush 8
            ishl
            i2s
            invokevirtual sun.awt.X11.XColor.set_red:(S)V
        15: .line 99
            aload 16 /* back_color */
            iload 6 /* bcolor */
            bipush 8
            ishr
            sipush 255
            iand
            bipush 8
            ishl
            i2s
            invokevirtual sun.awt.X11.XColor.set_green:(S)V
        16: .line 100
            aload 16 /* back_color */
            iload 6 /* bcolor */
            iconst_0
            ishr
            sipush 255
            iand
            bipush 8
            ishl
            i2s
            invokevirtual sun.awt.X11.XColor.set_blue:(S)V
        17: .line 102
            lload 9 /* display */
            lload 13 /* colormap */
            aload 16 /* back_color */
            getfield sun.awt.X11.XColor.pData:J
            invokestatic sun.awt.X11.XlibWrapper.XAllocColor:(JJJ)Z
            pop
        18: .line 105
            aload 1 /* xorMask */
            invokestatic sun.awt.X11.Native.toData:([B)J
            lstore 17 /* nativeXorMask */
        start local 17 // long nativeXorMask
        19: .line 106
            lload 9 /* display */
            lload 11 /* root_window */
            lload 17 /* nativeXorMask */
            iload 3 /* width */
            iload 4 /* height */
            invokestatic sun.awt.X11.XlibWrapper.XCreateBitmapFromData:(JJJII)J
            lstore 19 /* source */
        start local 19 // long source
        20: .line 108
            aload 2 /* andMask */
            invokestatic sun.awt.X11.Native.toData:([B)J
            lstore 21 /* nativeAndMask */
        start local 21 // long nativeAndMask
        21: .line 109
            lload 9 /* display */
            lload 11 /* root_window */
            lload 21 /* nativeAndMask */
            iload 3 /* width */
            iload 4 /* height */
            invokestatic sun.awt.X11.XlibWrapper.XCreateBitmapFromData:(JJJII)J
            lstore 23 /* mask */
        start local 23 // long mask
        22: .line 111
            lload 9 /* display */
            lload 19 /* source */
            lload 23 /* mask */
            aload 15 /* fore_color */
            getfield sun.awt.X11.XColor.pData:J
            aload 16 /* back_color */
            getfield sun.awt.X11.XColor.pData:J
            iload 7 /* xHotSpot */
            iload 8 /* yHotSpot */
            invokestatic sun.awt.X11.XlibWrapper.XCreatePixmapCursor:(JJJJJII)J
            lstore 25 /* cursor */
        start local 25 // long cursor
        23: .line 113
            getstatic sun.awt.X11.XlibWrapper.unsafe:Ljdk/internal/misc/Unsafe;
            lload 17 /* nativeXorMask */
            invokevirtual jdk.internal.misc.Unsafe.freeMemory:(J)V
        24: .line 114
            getstatic sun.awt.X11.XlibWrapper.unsafe:Ljdk/internal/misc/Unsafe;
            lload 21 /* nativeAndMask */
            invokevirtual jdk.internal.misc.Unsafe.freeMemory:(J)V
        25: .line 115
            lload 9 /* display */
            lload 19 /* source */
            invokestatic sun.awt.X11.XlibWrapper.XFreePixmap:(JJ)V
        26: .line 116
            lload 9 /* display */
            lload 23 /* mask */
            invokestatic sun.awt.X11.XlibWrapper.XFreePixmap:(JJ)V
        27: .line 117
            aload 16 /* back_color */
            invokevirtual sun.awt.X11.XColor.dispose:()V
        28: .line 118
            aload 15 /* fore_color */
            invokevirtual sun.awt.X11.XColor.dispose:()V
        29: .line 120
            aload 0 /* this */
            lload 25 /* cursor */
            invokestatic sun.awt.X11.XGlobalCursorManager.setPData:(Ljava/awt/Cursor;J)V
        end local 25 // long cursor
        end local 23 // long mask
        end local 21 // long nativeAndMask
        end local 19 // long source
        end local 17 // long nativeXorMask
        end local 16 // sun.awt.X11.XColor back_color
        end local 15 // sun.awt.X11.XColor fore_color
        end local 13 // long colormap
        end local 11 // long root_window
        end local 9 // long display
        30: .line 121
            goto 34
        31: .line 122
      StackMap locals:
      StackMap stack: java.lang.Throwable
            astore 27
        32: .line 123
            invokestatic sun.awt.X11.XToolkit.awtUnlock:()V
        33: .line 124
            aload 27
            athrow
        34: .line 123
      StackMap locals:
      StackMap stack:
            invokestatic sun.awt.X11.XToolkit.awtUnlock:()V
        35: .line 126
            return
        end local 8 // int yHotSpot
        end local 7 // int xHotSpot
        end local 6 // int bcolor
        end local 5 // int fcolor
        end local 4 // int height
        end local 3 // int width
        end local 2 // byte[] andMask
        end local 1 // byte[] xorMask
        end local 0 // sun.awt.X11.XCustomCursor this
      LocalVariableTable:
        Start  End  Slot           Name  Signature
            0   36     0           this  Lsun/awt/X11/XCustomCursor;
            0   36     1        xorMask  [B
            0   36     2        andMask  [B
            0   36     3          width  I
            0   36     4         height  I
            0   36     5         fcolor  I
            0   36     6         bcolor  I
            0   36     7       xHotSpot  I
            0   36     8       yHotSpot  I
            2   30     9        display  J
            5   30    11    root_window  J
            6   30    13       colormap  J
            7   30    15     fore_color  Lsun/awt/X11/XColor;
           13   30    16     back_color  Lsun/awt/X11/XColor;
           19   30    17  nativeXorMask  J
           20   30    19         source  J
           21   30    21  nativeAndMask  J
           22   30    23           mask  J
           23   30    25         cursor  J
      Exception table:
        from    to  target  type
           1    31      31  any
    MethodParameters:
          Name  Flags
      xorMask   
      andMask   
      width     
      height    
      fcolor    
      bcolor    
      xHotSpot  
      yHotSpot  
}
SourceFile: "XCustomCursor.java"