public abstract class sun.awt.image.SurfaceManager
  minor version: 0
  major version: 59
  flags: flags: (0x0421) ACC_PUBLIC, ACC_SUPER, ACC_ABSTRACT
  this_class: sun.awt.image.SurfaceManager
  super_class: java.lang.Object
{
  private static sun.awt.image.SurfaceManager$ImageAccessor imgaccessor;
    descriptor: Lsun/awt/image/SurfaceManager$ImageAccessor;
    flags: (0x000a) ACC_PRIVATE, ACC_STATIC

  private java.util.concurrent.ConcurrentHashMap<java.lang.Object, java.lang.Object> cacheMap;
    descriptor: Ljava/util/concurrent/ConcurrentHashMap;
    flags: (0x0002) ACC_PRIVATE
    Signature: Ljava/util/concurrent/ConcurrentHashMap<Ljava/lang/Object;Ljava/lang/Object;>;

  public void <init>();
    descriptor: ()V
    flags: (0x0001) ACC_PUBLIC
    Code:
      stack=1, locals=1, args_size=1
        start local 0 // sun.awt.image.SurfaceManager this
         0: .line 52
            aload 0 /* this */
            invokespecial java.lang.Object.<init>:()V
            return
        end local 0 // sun.awt.image.SurfaceManager this
      LocalVariableTable:
        Start  End  Slot  Name  Signature
            0    1     0  this  Lsun/awt/image/SurfaceManager;

  public static void setImageAccessor(sun.awt.image.SurfaceManager$ImageAccessor);
    descriptor: (Lsun/awt/image/SurfaceManager$ImageAccessor;)V
    flags: (0x0009) ACC_PUBLIC, ACC_STATIC
    Code:
      stack=3, locals=1, args_size=1
        start local 0 // sun.awt.image.SurfaceManager$ImageAccessor ia
         0: .line 62
            getstatic sun.awt.image.SurfaceManager.imgaccessor:Lsun/awt/image/SurfaceManager$ImageAccessor;
            ifnull 2
         1: .line 63
            new java.lang.InternalError
            dup
            ldc "Attempt to set ImageAccessor twice"
            invokespecial java.lang.InternalError.<init>:(Ljava/lang/String;)V
            athrow
         2: .line 65
      StackMap locals:
      StackMap stack:
            aload 0 /* ia */
            putstatic sun.awt.image.SurfaceManager.imgaccessor:Lsun/awt/image/SurfaceManager$ImageAccessor;
         3: .line 66
            return
        end local 0 // sun.awt.image.SurfaceManager$ImageAccessor ia
      LocalVariableTable:
        Start  End  Slot  Name  Signature
            0    4     0    ia  Lsun/awt/image/SurfaceManager$ImageAccessor;
    MethodParameters:
      Name  Flags
      ia    

  public static sun.awt.image.SurfaceManager getManager(java.awt.Image);
    descriptor: (Ljava/awt/Image;)Lsun/awt/image/SurfaceManager;
    flags: (0x0009) ACC_PUBLIC, ACC_STATIC
    Code:
      stack=3, locals=3, args_size=1
        start local 0 // java.awt.Image img
         0: .line 72
            getstatic sun.awt.image.SurfaceManager.imgaccessor:Lsun/awt/image/SurfaceManager$ImageAccessor;
            aload 0 /* img */
            invokevirtual sun.awt.image.SurfaceManager$ImageAccessor.getSurfaceManager:(Ljava/awt/Image;)Lsun/awt/image/SurfaceManager;
            astore 1 /* sMgr */
        start local 1 // sun.awt.image.SurfaceManager sMgr
         1: .line 73
            aload 1 /* sMgr */
            ifnonnull 8
         2: .line 78
            aload 0 /* img */
            checkcast java.awt.image.BufferedImage
            astore 2 /* bi */
        start local 2 // java.awt.image.BufferedImage bi
         3: .line 79
            new sun.awt.image.BufImgSurfaceManager
            dup
            aload 2 /* bi */
            invokespecial sun.awt.image.BufImgSurfaceManager.<init>:(Ljava/awt/image/BufferedImage;)V
            astore 1 /* sMgr */
         4: .line 80
            aload 2 /* bi */
            aload 1 /* sMgr */
            invokestatic sun.awt.image.SurfaceManager.setManager:(Ljava/awt/Image;Lsun/awt/image/SurfaceManager;)V
        end local 2 // java.awt.image.BufferedImage bi
         5: .line 81
            goto 8
      StackMap locals: java.awt.Image sun.awt.image.SurfaceManager
      StackMap stack: java.lang.ClassCastException
         6: pop
         7: .line 82
            new java.lang.IllegalArgumentException
            dup
            ldc "Invalid Image variant"
            invokespecial java.lang.IllegalArgumentException.<init>:(Ljava/lang/String;)V
            athrow
         8: .line 85
      StackMap locals:
      StackMap stack:
            aload 1 /* sMgr */
            areturn
        end local 1 // sun.awt.image.SurfaceManager sMgr
        end local 0 // java.awt.Image img
      LocalVariableTable:
        Start  End  Slot  Name  Signature
            0    9     0   img  Ljava/awt/Image;
            1    9     1  sMgr  Lsun/awt/image/SurfaceManager;
            3    5     2    bi  Ljava/awt/image/BufferedImage;
      Exception table:
        from    to  target  type
           2     5       6  Class java.lang.ClassCastException
    MethodParameters:
      Name  Flags
      img   

  public static void setManager(java.awt.Image, sun.awt.image.SurfaceManager);
    descriptor: (Ljava/awt/Image;Lsun/awt/image/SurfaceManager;)V
    flags: (0x0009) ACC_PUBLIC, ACC_STATIC
    Code:
      stack=3, locals=2, args_size=2
        start local 0 // java.awt.Image img
        start local 1 // sun.awt.image.SurfaceManager mgr
         0: .line 89
            getstatic sun.awt.image.SurfaceManager.imgaccessor:Lsun/awt/image/SurfaceManager$ImageAccessor;
            aload 0 /* img */
            aload 1 /* mgr */
            invokevirtual sun.awt.image.SurfaceManager$ImageAccessor.setSurfaceManager:(Ljava/awt/Image;Lsun/awt/image/SurfaceManager;)V
         1: .line 90
            return
        end local 1 // sun.awt.image.SurfaceManager mgr
        end local 0 // java.awt.Image img
      LocalVariableTable:
        Start  End  Slot  Name  Signature
            0    2     0   img  Ljava/awt/Image;
            0    2     1   mgr  Lsun/awt/image/SurfaceManager;
    MethodParameters:
      Name  Flags
      img   
      mgr   

  public java.lang.Object getCacheData(java.lang.Object);
    descriptor: (Ljava/lang/Object;)Ljava/lang/Object;
    flags: (0x0001) ACC_PUBLIC
    Code:
      stack=2, locals=2, args_size=2
        start local 0 // sun.awt.image.SurfaceManager this
        start local 1 // java.lang.Object key
         0: .line 115
            aload 0 /* this */
            getfield sun.awt.image.SurfaceManager.cacheMap:Ljava/util/concurrent/ConcurrentHashMap;
            ifnonnull 1
            aconst_null
            goto 2
      StackMap locals:
      StackMap stack:
         1: aload 0 /* this */
            getfield sun.awt.image.SurfaceManager.cacheMap:Ljava/util/concurrent/ConcurrentHashMap;
            aload 1 /* key */
            invokevirtual java.util.concurrent.ConcurrentHashMap.get:(Ljava/lang/Object;)Ljava/lang/Object;
      StackMap locals:
      StackMap stack: java.lang.Object
         2: areturn
        end local 1 // java.lang.Object key
        end local 0 // sun.awt.image.SurfaceManager this
      LocalVariableTable:
        Start  End  Slot  Name  Signature
            0    3     0  this  Lsun/awt/image/SurfaceManager;
            0    3     1   key  Ljava/lang/Object;
    MethodParameters:
      Name  Flags
      key   

  public void setCacheData(java.lang.Object, java.lang.Object);
    descriptor: (Ljava/lang/Object;Ljava/lang/Object;)V
    flags: (0x0001) ACC_PUBLIC
    Code:
      stack=4, locals=4, args_size=3
        start local 0 // sun.awt.image.SurfaceManager this
        start local 1 // java.lang.Object key
        start local 2 // java.lang.Object value
         0: .line 124
            aload 0 /* this */
            getfield sun.awt.image.SurfaceManager.cacheMap:Ljava/util/concurrent/ConcurrentHashMap;
            ifnonnull 8
         1: .line 125
            aload 0 /* this */
            dup
            astore 3
            monitorenter
         2: .line 126
            aload 0 /* this */
            getfield sun.awt.image.SurfaceManager.cacheMap:Ljava/util/concurrent/ConcurrentHashMap;
            ifnonnull 4
         3: .line 127
            aload 0 /* this */
            new java.util.concurrent.ConcurrentHashMap
            dup
            iconst_2
            invokespecial java.util.concurrent.ConcurrentHashMap.<init>:(I)V
            putfield sun.awt.image.SurfaceManager.cacheMap:Ljava/util/concurrent/ConcurrentHashMap;
         4: .line 125
      StackMap locals: sun.awt.image.SurfaceManager
      StackMap stack:
            aload 3
            monitorexit
         5: goto 8
      StackMap locals:
      StackMap stack: java.lang.Throwable
         6: aload 3
            monitorexit
         7: athrow
         8: .line 131
      StackMap locals:
      StackMap stack:
            aload 0 /* this */
            getfield sun.awt.image.SurfaceManager.cacheMap:Ljava/util/concurrent/ConcurrentHashMap;
            aload 1 /* key */
            aload 2 /* value */
            invokevirtual java.util.concurrent.ConcurrentHashMap.put:(Ljava/lang/Object;Ljava/lang/Object;)Ljava/lang/Object;
            pop
         9: .line 132
            return
        end local 2 // java.lang.Object value
        end local 1 // java.lang.Object key
        end local 0 // sun.awt.image.SurfaceManager this
      LocalVariableTable:
        Start  End  Slot   Name  Signature
            0   10     0   this  Lsun/awt/image/SurfaceManager;
            0   10     1    key  Ljava/lang/Object;
            0   10     2  value  Ljava/lang/Object;
      Exception table:
        from    to  target  type
           2     5       6  any
           6     7       6  any
    MethodParameters:
       Name  Flags
      key    
      value  

  public abstract sun.java2d.SurfaceData getPrimarySurfaceData();
    descriptor: ()Lsun/java2d/SurfaceData;
    flags: (0x0401) ACC_PUBLIC, ACC_ABSTRACT

  public abstract sun.java2d.SurfaceData restoreContents();
    descriptor: ()Lsun/java2d/SurfaceData;
    flags: (0x0401) ACC_PUBLIC, ACC_ABSTRACT

  public void acceleratedSurfaceLost();
    descriptor: ()V
    flags: (0x0001) ACC_PUBLIC
    Code:
      stack=0, locals=1, args_size=1
        start local 0 // sun.awt.image.SurfaceManager this
         0: .line 159
            return
        end local 0 // sun.awt.image.SurfaceManager this
      LocalVariableTable:
        Start  End  Slot  Name  Signature
            0    1     0  this  Lsun/awt/image/SurfaceManager;

  public java.awt.ImageCapabilities getCapabilities(java.awt.GraphicsConfiguration);
    descriptor: (Ljava/awt/GraphicsConfiguration;)Ljava/awt/ImageCapabilities;
    flags: (0x0001) ACC_PUBLIC
    Code:
      stack=4, locals=2, args_size=2
        start local 0 // sun.awt.image.SurfaceManager this
        start local 1 // java.awt.GraphicsConfiguration gc
         0: .line 185
            new sun.awt.image.SurfaceManager$ImageCapabilitiesGc
            dup
            aload 0 /* this */
            aload 1 /* gc */
            invokespecial sun.awt.image.SurfaceManager$ImageCapabilitiesGc.<init>:(Lsun/awt/image/SurfaceManager;Ljava/awt/GraphicsConfiguration;)V
            areturn
        end local 1 // java.awt.GraphicsConfiguration gc
        end local 0 // sun.awt.image.SurfaceManager this
      LocalVariableTable:
        Start  End  Slot  Name  Signature
            0    1     0  this  Lsun/awt/image/SurfaceManager;
            0    1     1    gc  Ljava/awt/GraphicsConfiguration;
    MethodParameters:
      Name  Flags
      gc    

  public synchronized void flush();
    descriptor: ()V
    flags: (0x0021) ACC_PUBLIC, ACC_SYNCHRONIZED
    Code:
      stack=2, locals=1, args_size=1
        start local 0 // sun.awt.image.SurfaceManager this
         0: .line 244
            aload 0 /* this */
            iconst_0
            invokevirtual sun.awt.image.SurfaceManager.flush:(Z)V
         1: .line 245
            return
        end local 0 // sun.awt.image.SurfaceManager this
      LocalVariableTable:
        Start  End  Slot  Name  Signature
            0    2     0  this  Lsun/awt/image/SurfaceManager;

  synchronized void flush(boolean);
    descriptor: (Z)V
    flags: (0x0020) ACC_SYNCHRONIZED
    Code:
      stack=2, locals=4, args_size=2
        start local 0 // sun.awt.image.SurfaceManager this
        start local 1 // boolean deaccelerate
         0: .line 248
            aload 0 /* this */
            getfield sun.awt.image.SurfaceManager.cacheMap:Ljava/util/concurrent/ConcurrentHashMap;
            ifnull 8
         1: .line 249
            aload 0 /* this */
            getfield sun.awt.image.SurfaceManager.cacheMap:Ljava/util/concurrent/ConcurrentHashMap;
            invokevirtual java.util.concurrent.ConcurrentHashMap.values:()Ljava/util/Collection;
            invokeinterface java.util.Collection.iterator:()Ljava/util/Iterator;
            astore 2 /* i */
        start local 2 // java.util.Iterator i
         2: .line 250
            goto 7
         3: .line 251
      StackMap locals: java.util.Iterator
      StackMap stack:
            aload 2 /* i */
            invokeinterface java.util.Iterator.next:()Ljava/lang/Object;
            astore 3 /* o */
        start local 3 // java.lang.Object o
         4: .line 252
            aload 3 /* o */
            instanceof sun.awt.image.SurfaceManager$FlushableCacheData
            ifeq 7
         5: .line 253
            aload 3 /* o */
            checkcast sun.awt.image.SurfaceManager$FlushableCacheData
            iload 1 /* deaccelerate */
            invokeinterface sun.awt.image.SurfaceManager$FlushableCacheData.flush:(Z)Z
            ifeq 7
         6: .line 254
            aload 2 /* i */
            invokeinterface java.util.Iterator.remove:()V
        end local 3 // java.lang.Object o
         7: .line 250
      StackMap locals:
      StackMap stack:
            aload 2 /* i */
            invokeinterface java.util.Iterator.hasNext:()Z
            ifne 3
        end local 2 // java.util.Iterator i
         8: .line 259
      StackMap locals:
      StackMap stack:
            return
        end local 1 // boolean deaccelerate
        end local 0 // sun.awt.image.SurfaceManager this
      LocalVariableTable:
        Start  End  Slot          Name  Signature
            0    9     0          this  Lsun/awt/image/SurfaceManager;
            0    9     1  deaccelerate  Z
            2    8     2             i  Ljava/util/Iterator<Ljava/lang/Object;>;
            4    7     3             o  Ljava/lang/Object;
    MethodParameters:
              Name  Flags
      deaccelerate  

  public void setAccelerationPriority(float);
    descriptor: (F)V
    flags: (0x0001) ACC_PUBLIC
    Code:
      stack=2, locals=2, args_size=2
        start local 0 // sun.awt.image.SurfaceManager this
        start local 1 // float priority
         0: .line 287
            fload 1 /* priority */
            fconst_0
            fcmpl
            ifne 2
         1: .line 288
            aload 0 /* this */
            iconst_1
            invokevirtual sun.awt.image.SurfaceManager.flush:(Z)V
         2: .line 290
      StackMap locals:
      StackMap stack:
            return
        end local 1 // float priority
        end local 0 // sun.awt.image.SurfaceManager this
      LocalVariableTable:
        Start  End  Slot      Name  Signature
            0    3     0      this  Lsun/awt/image/SurfaceManager;
            0    3     1  priority  F
    MethodParameters:
          Name  Flags
      priority  

  public static int getImageScale(java.awt.Image);
    descriptor: (Ljava/awt/Image;)I
    flags: (0x0009) ACC_PUBLIC, ACC_STATIC
    Code:
      stack=1, locals=2, args_size=1
        start local 0 // java.awt.Image img
         0: .line 299
            aload 0 /* img */
            instanceof java.awt.image.VolatileImage
            ifne 2
         1: .line 300
            iconst_1
            ireturn
         2: .line 302
      StackMap locals:
      StackMap stack:
            aload 0 /* img */
            invokestatic sun.awt.image.SurfaceManager.getManager:(Ljava/awt/Image;)Lsun/awt/image/SurfaceManager;
            astore 1 /* sm */
        start local 1 // sun.awt.image.SurfaceManager sm
         3: .line 303
            aload 1 /* sm */
            invokevirtual sun.awt.image.SurfaceManager.getPrimarySurfaceData:()Lsun/java2d/SurfaceData;
            invokevirtual sun.java2d.SurfaceData.getDefaultScale:()I
            ireturn
        end local 1 // sun.awt.image.SurfaceManager sm
        end local 0 // java.awt.Image img
      LocalVariableTable:
        Start  End  Slot  Name  Signature
            0    4     0   img  Ljava/awt/Image;
            3    4     1    sm  Lsun/awt/image/SurfaceManager;
    MethodParameters:
      Name  Flags
      img   final
}
SourceFile: "SurfaceManager.java"
NestMembers:
  sun.awt.image.SurfaceManager$FlushableCacheData  sun.awt.image.SurfaceManager$ImageAccessor  sun.awt.image.SurfaceManager$ImageCapabilitiesGc  sun.awt.image.SurfaceManager$ProxiedGraphicsConfig
InnerClasses:
  public abstract FlushableCacheData = sun.awt.image.SurfaceManager$FlushableCacheData of sun.awt.image.SurfaceManager
  public abstract ImageAccessor = sun.awt.image.SurfaceManager$ImageAccessor of sun.awt.image.SurfaceManager
  ImageCapabilitiesGc = sun.awt.image.SurfaceManager$ImageCapabilitiesGc of sun.awt.image.SurfaceManager
  public abstract ProxiedGraphicsConfig = sun.awt.image.SurfaceManager$ProxiedGraphicsConfig of sun.awt.image.SurfaceManager