public abstract class sun.java2d.SurfaceDataProxy implements sun.awt.DisplayChangedListener, sun.awt.image.SurfaceManager$FlushableCacheData
  minor version: 0
  major version: 59
  flags: flags: (0x0421) ACC_PUBLIC, ACC_SUPER, ACC_ABSTRACT
  this_class: sun.java2d.SurfaceDataProxy
  super_class: java.lang.Object
{
  private static boolean cachingAllowed;
    descriptor: Z
    flags: (0x000a) ACC_PRIVATE, ACC_STATIC

  private static int defaultThreshold;
    descriptor: I
    flags: (0x000a) ACC_PRIVATE, ACC_STATIC

  public static sun.java2d.SurfaceDataProxy UNCACHED;
    descriptor: Lsun/java2d/SurfaceDataProxy;
    flags: (0x0009) ACC_PUBLIC, ACC_STATIC

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

  private sun.java2d.StateTracker srcTracker;
    descriptor: Lsun/java2d/StateTracker;
    flags: (0x0002) ACC_PRIVATE

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

  private sun.java2d.SurfaceData cachedSD;
    descriptor: Lsun/java2d/SurfaceData;
    flags: (0x0002) ACC_PRIVATE

  private sun.java2d.StateTracker cacheTracker;
    descriptor: Lsun/java2d/StateTracker;
    flags: (0x0002) ACC_PRIVATE

  private boolean valid;
    descriptor: Z
    flags: (0x0002) ACC_PRIVATE

  static void <clinit>();
    descriptor: ()V
    flags: (0x0008) ACC_STATIC
    Code:
      stack=4, locals=3, args_size=0
         0: .line 73
            iconst_1
            putstatic sun.java2d.SurfaceDataProxy.cachingAllowed:Z
         1: .line 75
            new sun.security.action.GetPropertyAction
            dup
            ldc "sun.java2d.managedimages"
            invokespecial sun.security.action.GetPropertyAction.<init>:(Ljava/lang/String;)V
         2: .line 74
            invokestatic java.security.AccessController.doPrivileged:(Ljava/security/PrivilegedAction;)Ljava/lang/Object;
            checkcast java.lang.String
            astore 0 /* manimg */
        start local 0 // java.lang.String manimg
         3: .line 76
            aload 0 /* manimg */
            ifnull 6
            aload 0 /* manimg */
            ldc "false"
            invokevirtual java.lang.String.equals:(Ljava/lang/Object;)Z
            ifeq 6
         4: .line 77
            iconst_0
            putstatic sun.java2d.SurfaceDataProxy.cachingAllowed:Z
         5: .line 78
            getstatic java.lang.System.out:Ljava/io/PrintStream;
            ldc "Disabling managed images"
            invokevirtual java.io.PrintStream.println:(Ljava/lang/String;)V
         6: .line 81
      StackMap locals: java.lang.String
      StackMap stack:
            iconst_1
            putstatic sun.java2d.SurfaceDataProxy.defaultThreshold:I
         7: .line 83
            new sun.security.action.GetPropertyAction
            dup
            ldc "sun.java2d.accthreshold"
            invokespecial sun.security.action.GetPropertyAction.<init>:(Ljava/lang/String;)V
         8: .line 82
            invokestatic java.security.AccessController.doPrivileged:(Ljava/security/PrivilegedAction;)Ljava/lang/Object;
            checkcast java.lang.String
            astore 1 /* num */
        start local 1 // java.lang.String num
         9: .line 84
            aload 1 /* num */
            ifnull 19
        10: .line 86
            aload 1 /* num */
            invokestatic java.lang.Integer.parseInt:(Ljava/lang/String;)I
            istore 2 /* parsed */
        start local 2 // int parsed
        11: .line 87
            iload 2 /* parsed */
            iflt 19
        12: .line 88
            iload 2 /* parsed */
            putstatic sun.java2d.SurfaceDataProxy.defaultThreshold:I
        13: .line 89
            getstatic java.lang.System.out:Ljava/io/PrintStream;
            new java.lang.StringBuilder
            dup
            ldc "New Default Acceleration Threshold: "
            invokespecial java.lang.StringBuilder.<init>:(Ljava/lang/String;)V
        14: .line 90
            getstatic sun.java2d.SurfaceDataProxy.defaultThreshold:I
            invokevirtual java.lang.StringBuilder.append:(I)Ljava/lang/StringBuilder;
            invokevirtual java.lang.StringBuilder.toString:()Ljava/lang/String;
        15: .line 89
            invokevirtual java.io.PrintStream.println:(Ljava/lang/String;)V
        end local 2 // int parsed
        16: .line 92
            goto 19
      StackMap locals: java.lang.String java.lang.String
      StackMap stack: java.lang.NumberFormatException
        17: astore 2 /* e */
        start local 2 // java.lang.NumberFormatException e
        18: .line 93
            getstatic java.lang.System.err:Ljava/io/PrintStream;
            new java.lang.StringBuilder
            dup
            ldc "Error setting new threshold:"
            invokespecial java.lang.StringBuilder.<init>:(Ljava/lang/String;)V
            aload 2 /* e */
            invokevirtual java.lang.StringBuilder.append:(Ljava/lang/Object;)Ljava/lang/StringBuilder;
            invokevirtual java.lang.StringBuilder.toString:()Ljava/lang/String;
            invokevirtual java.io.PrintStream.println:(Ljava/lang/String;)V
        end local 2 // java.lang.NumberFormatException e
        end local 1 // java.lang.String num
        end local 0 // java.lang.String manimg
        19: .line 162
      StackMap locals:
      StackMap stack:
            new sun.java2d.SurfaceDataProxy$1
            dup
            iconst_0
            invokespecial sun.java2d.SurfaceDataProxy$1.<init>:(I)V
            putstatic sun.java2d.SurfaceDataProxy.UNCACHED:Lsun/java2d/SurfaceDataProxy;
        20: .line 194
            return
      LocalVariableTable:
        Start  End  Slot    Name  Signature
            3   19     0  manimg  Ljava/lang/String;
            9   19     1     num  Ljava/lang/String;
           11   16     2  parsed  I
           18   19     2       e  Ljava/lang/NumberFormatException;
      Exception table:
        from    to  target  type
          10    16      17  Class java.lang.NumberFormatException

  public static boolean isCachingAllowed();
    descriptor: ()Z
    flags: (0x0009) ACC_PUBLIC, ACC_STATIC
    Code:
      stack=1, locals=0, args_size=0
         0: .line 99
            getstatic sun.java2d.SurfaceDataProxy.cachingAllowed:Z
            ireturn
      LocalVariableTable:
        Start  End  Slot  Name  Signature

  public abstract boolean isSupportedOperation(sun.java2d.SurfaceData, int, sun.java2d.loops.CompositeType, java.awt.Color);
    descriptor: (Lsun/java2d/SurfaceData;ILsun/java2d/loops/CompositeType;Ljava/awt/Color;)Z
    flags: (0x0401) ACC_PUBLIC, ACC_ABSTRACT
    MethodParameters:
         Name  Flags
      srcData  
      txtype   
      comp     
      bgColor  

  public abstract sun.java2d.SurfaceData validateSurfaceData(sun.java2d.SurfaceData, sun.java2d.SurfaceData, int, int);
    descriptor: (Lsun/java2d/SurfaceData;Lsun/java2d/SurfaceData;II)Lsun/java2d/SurfaceData;
    flags: (0x0401) ACC_PUBLIC, ACC_ABSTRACT
    MethodParameters:
            Name  Flags
      srcData     
      cachedData  
      w           
      h           

  public sun.java2d.StateTracker getRetryTracker(sun.java2d.SurfaceData);
    descriptor: (Lsun/java2d/SurfaceData;)Lsun/java2d/StateTracker;
    flags: (0x0001) ACC_PUBLIC
    Code:
      stack=3, locals=2, args_size=2
        start local 0 // sun.java2d.SurfaceDataProxy this
        start local 1 // sun.java2d.SurfaceData srcData
         0: .line 137
            new sun.java2d.SurfaceDataProxy$CountdownTracker
            dup
            aload 0 /* this */
            getfield sun.java2d.SurfaceDataProxy.threshold:I
            invokespecial sun.java2d.SurfaceDataProxy$CountdownTracker.<init>:(I)V
            areturn
        end local 1 // sun.java2d.SurfaceData srcData
        end local 0 // sun.java2d.SurfaceDataProxy this
      LocalVariableTable:
        Start  End  Slot     Name  Signature
            0    1     0     this  Lsun/java2d/SurfaceDataProxy;
            0    1     1  srcData  Lsun/java2d/SurfaceData;
    MethodParameters:
         Name  Flags
      srcData  

  public void <init>();
    descriptor: ()V
    flags: (0x0001) ACC_PUBLIC
    Code:
      stack=2, locals=1, args_size=1
        start local 0 // sun.java2d.SurfaceDataProxy this
         0: .line 243
            aload 0 /* this */
            getstatic sun.java2d.SurfaceDataProxy.defaultThreshold:I
            invokespecial sun.java2d.SurfaceDataProxy.<init>:(I)V
         1: .line 244
            return
        end local 0 // sun.java2d.SurfaceDataProxy this
      LocalVariableTable:
        Start  End  Slot  Name  Signature
            0    2     0  this  Lsun/java2d/SurfaceDataProxy;

  public void <init>(int);
    descriptor: (I)V
    flags: (0x0001) ACC_PUBLIC
    Code:
      stack=2, locals=2, args_size=2
        start local 0 // sun.java2d.SurfaceDataProxy this
        start local 1 // int threshold
         0: .line 252
            aload 0 /* this */
            invokespecial java.lang.Object.<init>:()V
         1: .line 253
            aload 0 /* this */
            iload 1 /* threshold */
            putfield sun.java2d.SurfaceDataProxy.threshold:I
         2: .line 255
            aload 0 /* this */
            getstatic sun.java2d.StateTracker.NEVER_CURRENT:Lsun/java2d/StateTracker;
            putfield sun.java2d.SurfaceDataProxy.srcTracker:Lsun/java2d/StateTracker;
         3: .line 257
            aload 0 /* this */
            getstatic sun.java2d.StateTracker.NEVER_CURRENT:Lsun/java2d/StateTracker;
            putfield sun.java2d.SurfaceDataProxy.cacheTracker:Lsun/java2d/StateTracker;
         4: .line 259
            aload 0 /* this */
            iconst_1
            putfield sun.java2d.SurfaceDataProxy.valid:Z
         5: .line 260
            return
        end local 1 // int threshold
        end local 0 // sun.java2d.SurfaceDataProxy this
      LocalVariableTable:
        Start  End  Slot       Name  Signature
            0    6     0       this  Lsun/java2d/SurfaceDataProxy;
            0    6     1  threshold  I
    MethodParameters:
           Name  Flags
      threshold  

  public boolean isValid();
    descriptor: ()Z
    flags: (0x0001) ACC_PUBLIC
    Code:
      stack=1, locals=1, args_size=1
        start local 0 // sun.java2d.SurfaceDataProxy this
         0: .line 268
            aload 0 /* this */
            getfield sun.java2d.SurfaceDataProxy.valid:Z
            ireturn
        end local 0 // sun.java2d.SurfaceDataProxy this
      LocalVariableTable:
        Start  End  Slot  Name  Signature
            0    1     0  this  Lsun/java2d/SurfaceDataProxy;

  public void invalidate();
    descriptor: ()V
    flags: (0x0001) ACC_PUBLIC
    Code:
      stack=2, locals=1, args_size=1
        start local 0 // sun.java2d.SurfaceDataProxy this
         0: .line 277
            aload 0 /* this */
            iconst_0
            putfield sun.java2d.SurfaceDataProxy.valid:Z
         1: .line 278
            return
        end local 0 // sun.java2d.SurfaceDataProxy this
      LocalVariableTable:
        Start  End  Slot  Name  Signature
            0    2     0  this  Lsun/java2d/SurfaceDataProxy;

  public boolean flush(boolean);
    descriptor: (Z)Z
    flags: (0x0001) ACC_PUBLIC
    Code:
      stack=1, locals=2, args_size=2
        start local 0 // sun.java2d.SurfaceDataProxy this
        start local 1 // boolean deaccelerated
         0: .line 290
            iload 1 /* deaccelerated */
            ifeq 2
         1: .line 291
            aload 0 /* this */
            invokevirtual sun.java2d.SurfaceDataProxy.invalidate:()V
         2: .line 293
      StackMap locals:
      StackMap stack:
            aload 0 /* this */
            invokevirtual sun.java2d.SurfaceDataProxy.flush:()V
         3: .line 294
            aload 0 /* this */
            invokevirtual sun.java2d.SurfaceDataProxy.isValid:()Z
            ifeq 4
            iconst_0
            goto 5
      StackMap locals:
      StackMap stack:
         4: iconst_1
      StackMap locals:
      StackMap stack: int
         5: ireturn
        end local 1 // boolean deaccelerated
        end local 0 // sun.java2d.SurfaceDataProxy this
      LocalVariableTable:
        Start  End  Slot           Name  Signature
            0    6     0           this  Lsun/java2d/SurfaceDataProxy;
            0    6     1  deaccelerated  Z
    MethodParameters:
               Name  Flags
      deaccelerated  

  public synchronized void flush();
    descriptor: ()V
    flags: (0x0021) ACC_PUBLIC, ACC_SYNCHRONIZED
    Code:
      stack=2, locals=2, args_size=1
        start local 0 // sun.java2d.SurfaceDataProxy this
         0: .line 302
            aload 0 /* this */
            getfield sun.java2d.SurfaceDataProxy.cachedSD:Lsun/java2d/SurfaceData;
            astore 1 /* csd */
        start local 1 // sun.java2d.SurfaceData csd
         1: .line 303
            aload 0 /* this */
            aconst_null
            putfield sun.java2d.SurfaceDataProxy.cachedSD:Lsun/java2d/SurfaceData;
         2: .line 304
            aload 0 /* this */
            getstatic sun.java2d.StateTracker.NEVER_CURRENT:Lsun/java2d/StateTracker;
            putfield sun.java2d.SurfaceDataProxy.cacheTracker:Lsun/java2d/StateTracker;
         3: .line 305
            aload 1 /* csd */
            ifnull 5
         4: .line 306
            aload 1 /* csd */
            invokevirtual sun.java2d.SurfaceData.flush:()V
         5: .line 308
      StackMap locals: sun.java2d.SurfaceData
      StackMap stack:
            return
        end local 1 // sun.java2d.SurfaceData csd
        end local 0 // sun.java2d.SurfaceDataProxy this
      LocalVariableTable:
        Start  End  Slot  Name  Signature
            0    6     0  this  Lsun/java2d/SurfaceDataProxy;
            1    6     1   csd  Lsun/java2d/SurfaceData;

  public boolean isAccelerated();
    descriptor: ()Z
    flags: (0x0001) ACC_PUBLIC
    Code:
      stack=1, locals=1, args_size=1
        start local 0 // sun.java2d.SurfaceDataProxy this
         0: .line 316
            aload 0 /* this */
            invokevirtual sun.java2d.SurfaceDataProxy.isValid:()Z
            ifeq 4
         1: .line 317
            aload 0 /* this */
            getfield sun.java2d.SurfaceDataProxy.srcTracker:Lsun/java2d/StateTracker;
            invokeinterface sun.java2d.StateTracker.isCurrent:()Z
            ifeq 4
         2: .line 318
            aload 0 /* this */
            getfield sun.java2d.SurfaceDataProxy.cacheTracker:Lsun/java2d/StateTracker;
            invokeinterface sun.java2d.StateTracker.isCurrent:()Z
            ifeq 4
         3: .line 316
            iconst_1
            ireturn
      StackMap locals:
      StackMap stack:
         4: iconst_0
            ireturn
        end local 0 // sun.java2d.SurfaceDataProxy this
      LocalVariableTable:
        Start  End  Slot  Name  Signature
            0    5     0  this  Lsun/java2d/SurfaceDataProxy;

  protected void activateDisplayListener();
    descriptor: ()V
    flags: (0x0004) ACC_PROTECTED
    Code:
      stack=2, locals=2, args_size=1
        start local 0 // sun.java2d.SurfaceDataProxy this
         0: .line 328
            invokestatic java.awt.GraphicsEnvironment.getLocalGraphicsEnvironment:()Ljava/awt/GraphicsEnvironment;
         1: .line 327
            astore 1 /* ge */
        start local 1 // java.awt.GraphicsEnvironment ge
         2: .line 333
            aload 1 /* ge */
            instanceof sun.java2d.SunGraphicsEnvironment
            ifeq 4
         3: .line 334
            aload 1 /* ge */
            checkcast sun.java2d.SunGraphicsEnvironment
            aload 0 /* this */
            invokevirtual sun.java2d.SunGraphicsEnvironment.addDisplayChangedListener:(Lsun/awt/DisplayChangedListener;)V
         4: .line 336
      StackMap locals: java.awt.GraphicsEnvironment
      StackMap stack:
            return
        end local 1 // java.awt.GraphicsEnvironment ge
        end local 0 // sun.java2d.SurfaceDataProxy this
      LocalVariableTable:
        Start  End  Slot  Name  Signature
            0    5     0  this  Lsun/java2d/SurfaceDataProxy;
            2    5     1    ge  Ljava/awt/GraphicsEnvironment;

  public void displayChanged();
    descriptor: ()V
    flags: (0x0001) ACC_PUBLIC
    Code:
      stack=1, locals=1, args_size=1
        start local 0 // sun.java2d.SurfaceDataProxy this
         0: .line 343
            aload 0 /* this */
            invokevirtual sun.java2d.SurfaceDataProxy.flush:()V
         1: .line 344
            return
        end local 0 // sun.java2d.SurfaceDataProxy this
      LocalVariableTable:
        Start  End  Slot  Name  Signature
            0    2     0  this  Lsun/java2d/SurfaceDataProxy;

  public void paletteChanged();
    descriptor: ()V
    flags: (0x0001) ACC_PUBLIC
    Code:
      stack=2, locals=1, args_size=1
        start local 0 // sun.java2d.SurfaceDataProxy this
         0: .line 362
            aload 0 /* this */
            getstatic sun.java2d.StateTracker.NEVER_CURRENT:Lsun/java2d/StateTracker;
            putfield sun.java2d.SurfaceDataProxy.srcTracker:Lsun/java2d/StateTracker;
         1: .line 363
            return
        end local 0 // sun.java2d.SurfaceDataProxy this
      LocalVariableTable:
        Start  End  Slot  Name  Signature
            0    2     0  this  Lsun/java2d/SurfaceDataProxy;

  public sun.java2d.SurfaceData replaceData(sun.java2d.SurfaceData, int, sun.java2d.loops.CompositeType, java.awt.Color);
    descriptor: (Lsun/java2d/SurfaceData;ILsun/java2d/loops/CompositeType;Ljava/awt/Color;)Lsun/java2d/SurfaceData;
    flags: (0x0001) ACC_PUBLIC
    Code:
      stack=5, locals=11, args_size=5
        start local 0 // sun.java2d.SurfaceDataProxy this
        start local 1 // sun.java2d.SurfaceData srcData
        start local 2 // int txtype
        start local 3 // sun.java2d.loops.CompositeType comp
        start local 4 // java.awt.Color bgColor
         0: .line 398
            aload 0 /* this */
            aload 1 /* srcData */
            iload 2 /* txtype */
            aload 3 /* comp */
            aload 4 /* bgColor */
            invokevirtual sun.java2d.SurfaceDataProxy.isSupportedOperation:(Lsun/java2d/SurfaceData;ILsun/java2d/loops/CompositeType;Ljava/awt/Color;)Z
            ifeq 54
         1: .line 400
            aload 0 /* this */
            getfield sun.java2d.SurfaceDataProxy.srcTracker:Lsun/java2d/StateTracker;
            invokeinterface sun.java2d.StateTracker.isCurrent:()Z
            ifne 15
         2: .line 401
            aload 0 /* this */
            dup
            astore 5
            monitorenter
         3: .line 402
            aload 0 /* this */
            aload 0 /* this */
            getfield sun.java2d.SurfaceDataProxy.threshold:I
            putfield sun.java2d.SurfaceDataProxy.numtries:I
         4: .line 403
            aload 0 /* this */
            aload 1 /* srcData */
            invokevirtual sun.java2d.SurfaceData.getStateTracker:()Lsun/java2d/StateTracker;
            putfield sun.java2d.SurfaceDataProxy.srcTracker:Lsun/java2d/StateTracker;
         5: .line 404
            aload 0 /* this */
            getstatic sun.java2d.StateTracker.NEVER_CURRENT:Lsun/java2d/StateTracker;
            putfield sun.java2d.SurfaceDataProxy.cacheTracker:Lsun/java2d/StateTracker;
         6: .line 401
            aload 5
            monitorexit
         7: goto 10
      StackMap locals: sun.java2d.SurfaceDataProxy sun.java2d.SurfaceData int sun.java2d.loops.CompositeType java.awt.Color sun.java2d.SurfaceDataProxy
      StackMap stack: java.lang.Throwable
         8: aload 5
            monitorexit
         9: athrow
        10: .line 407
      StackMap locals:
      StackMap stack:
            aload 0 /* this */
            getfield sun.java2d.SurfaceDataProxy.srcTracker:Lsun/java2d/StateTracker;
            invokeinterface sun.java2d.StateTracker.isCurrent:()Z
            ifne 15
        11: .line 409
            aload 1 /* srcData */
            invokevirtual sun.java2d.SurfaceData.getState:()Lsun/java2d/StateTrackable$State;
            getstatic sun.java2d.StateTrackable$State.UNTRACKABLE:Lsun/java2d/StateTrackable$State;
            if_acmpne 14
        12: .line 414
            aload 0 /* this */
            invokevirtual sun.java2d.SurfaceDataProxy.invalidate:()V
        13: .line 419
            aload 0 /* this */
            invokevirtual sun.java2d.SurfaceDataProxy.flush:()V
        14: .line 421
      StackMap locals:
      StackMap stack:
            aload 1 /* srcData */
            areturn
        15: .line 426
      StackMap locals:
      StackMap stack:
            aload 0 /* this */
            getfield sun.java2d.SurfaceDataProxy.cachedSD:Lsun/java2d/SurfaceData;
            astore 5 /* csd */
        start local 5 // sun.java2d.SurfaceData csd
        16: .line 427
            aload 0 /* this */
            getfield sun.java2d.SurfaceDataProxy.cacheTracker:Lsun/java2d/StateTracker;
            invokeinterface sun.java2d.StateTracker.isCurrent:()Z
            ifne 52
        17: .line 429
            aload 0 /* this */
            dup
            astore 6
            monitorenter
        18: .line 430
            aload 0 /* this */
            getfield sun.java2d.SurfaceDataProxy.numtries:I
            ifle 22
        19: .line 431
            aload 0 /* this */
            dup
            getfield sun.java2d.SurfaceDataProxy.numtries:I
            iconst_1
            isub
            putfield sun.java2d.SurfaceDataProxy.numtries:I
        20: .line 432
            aload 1 /* srcData */
            aload 6
            monitorexit
        21: areturn
        22: .line 429
      StackMap locals: sun.java2d.SurfaceData sun.java2d.SurfaceDataProxy
      StackMap stack:
            aload 6
            monitorexit
        23: goto 26
      StackMap locals:
      StackMap stack: java.lang.Throwable
        24: aload 6
            monitorexit
        25: athrow
        26: .line 436
      StackMap locals:
      StackMap stack:
            aload 1 /* srcData */
            invokevirtual sun.java2d.SurfaceData.getBounds:()Ljava/awt/Rectangle;
            astore 6 /* r */
        start local 6 // java.awt.Rectangle r
        27: .line 437
            aload 6 /* r */
            getfield java.awt.Rectangle.width:I
            istore 7 /* w */
        start local 7 // int w
        28: .line 438
            aload 6 /* r */
            getfield java.awt.Rectangle.height:I
            istore 8 /* h */
        start local 8 // int h
        29: .line 442
            aload 0 /* this */
            getfield sun.java2d.SurfaceDataProxy.srcTracker:Lsun/java2d/StateTracker;
            astore 9 /* curTracker */
        start local 9 // sun.java2d.StateTracker curTracker
        30: .line 444
            aload 0 /* this */
            aload 1 /* srcData */
            aload 5 /* csd */
            iload 7 /* w */
            iload 8 /* h */
            invokevirtual sun.java2d.SurfaceDataProxy.validateSurfaceData:(Lsun/java2d/SurfaceData;Lsun/java2d/SurfaceData;II)Lsun/java2d/SurfaceData;
            astore 5 /* csd */
        31: .line 445
            aload 5 /* csd */
            ifnonnull 41
        32: .line 446
            aload 0 /* this */
            dup
            astore 10
            monitorenter
        33: .line 447
            aload 9 /* curTracker */
            aload 0 /* this */
            getfield sun.java2d.SurfaceDataProxy.srcTracker:Lsun/java2d/StateTracker;
            if_acmpne 36
        34: .line 448
            aload 0 /* this */
            aload 0 /* this */
            aload 1 /* srcData */
            invokevirtual sun.java2d.SurfaceDataProxy.getRetryTracker:(Lsun/java2d/SurfaceData;)Lsun/java2d/StateTracker;
            putfield sun.java2d.SurfaceDataProxy.cacheTracker:Lsun/java2d/StateTracker;
        35: .line 449
            aload 0 /* this */
            aconst_null
            putfield sun.java2d.SurfaceDataProxy.cachedSD:Lsun/java2d/SurfaceData;
        36: .line 446
      StackMap locals: sun.java2d.SurfaceDataProxy sun.java2d.SurfaceData int sun.java2d.loops.CompositeType java.awt.Color sun.java2d.SurfaceData java.awt.Rectangle int int sun.java2d.StateTracker sun.java2d.SurfaceDataProxy
      StackMap stack:
            aload 10
            monitorexit
        37: goto 40
      StackMap locals:
      StackMap stack: java.lang.Throwable
        38: aload 10
            monitorexit
        39: athrow
        40: .line 452
      StackMap locals:
      StackMap stack:
            aload 1 /* srcData */
            areturn
        41: .line 455
      StackMap locals:
      StackMap stack:
            aload 0 /* this */
            aload 1 /* srcData */
            aload 5 /* csd */
            iload 7 /* w */
            iload 8 /* h */
            invokevirtual sun.java2d.SurfaceDataProxy.updateSurfaceData:(Lsun/java2d/SurfaceData;Lsun/java2d/SurfaceData;II)V
        42: .line 456
            aload 5 /* csd */
            invokevirtual sun.java2d.SurfaceData.isValid:()Z
            ifne 44
        43: .line 457
            aload 1 /* srcData */
            areturn
        44: .line 460
      StackMap locals:
      StackMap stack:
            aload 0 /* this */
            dup
            astore 10
            monitorenter
        45: .line 466
            aload 9 /* curTracker */
            aload 0 /* this */
            getfield sun.java2d.SurfaceDataProxy.srcTracker:Lsun/java2d/StateTracker;
            if_acmpne 48
            aload 9 /* curTracker */
            invokeinterface sun.java2d.StateTracker.isCurrent:()Z
            ifeq 48
        46: .line 467
            aload 0 /* this */
            aload 5 /* csd */
            invokevirtual sun.java2d.SurfaceData.getStateTracker:()Lsun/java2d/StateTracker;
            putfield sun.java2d.SurfaceDataProxy.cacheTracker:Lsun/java2d/StateTracker;
        47: .line 468
            aload 0 /* this */
            aload 5 /* csd */
            putfield sun.java2d.SurfaceDataProxy.cachedSD:Lsun/java2d/SurfaceData;
        48: .line 460
      StackMap locals: sun.java2d.SurfaceDataProxy
      StackMap stack:
            aload 10
            monitorexit
        49: goto 52
      StackMap locals:
      StackMap stack: java.lang.Throwable
        50: aload 10
            monitorexit
        51: athrow
        end local 9 // sun.java2d.StateTracker curTracker
        end local 8 // int h
        end local 7 // int w
        end local 6 // java.awt.Rectangle r
        52: .line 473
      StackMap locals: sun.java2d.SurfaceDataProxy sun.java2d.SurfaceData int sun.java2d.loops.CompositeType java.awt.Color sun.java2d.SurfaceData
      StackMap stack:
            aload 5 /* csd */
            ifnull 54
        53: .line 474
            aload 5 /* csd */
            areturn
        end local 5 // sun.java2d.SurfaceData csd
        54: .line 478
      StackMap locals:
      StackMap stack:
            aload 1 /* srcData */
            areturn
        end local 4 // java.awt.Color bgColor
        end local 3 // sun.java2d.loops.CompositeType comp
        end local 2 // int txtype
        end local 1 // sun.java2d.SurfaceData srcData
        end local 0 // sun.java2d.SurfaceDataProxy this
      LocalVariableTable:
        Start  End  Slot        Name  Signature
            0   55     0        this  Lsun/java2d/SurfaceDataProxy;
            0   55     1     srcData  Lsun/java2d/SurfaceData;
            0   55     2      txtype  I
            0   55     3        comp  Lsun/java2d/loops/CompositeType;
            0   55     4     bgColor  Ljava/awt/Color;
           16   54     5         csd  Lsun/java2d/SurfaceData;
           27   52     6           r  Ljava/awt/Rectangle;
           28   52     7           w  I
           29   52     8           h  I
           30   52     9  curTracker  Lsun/java2d/StateTracker;
      Exception table:
        from    to  target  type
           3     7       8  any
           8     9       8  any
          18    21      24  any
          22    23      24  any
          24    25      24  any
          33    37      38  any
          38    39      38  any
          45    49      50  any
          50    51      50  any
    MethodParameters:
         Name  Flags
      srcData  
      txtype   
      comp     
      bgColor  

  public void updateSurfaceData(sun.java2d.SurfaceData, sun.java2d.SurfaceData, int, int);
    descriptor: (Lsun/java2d/SurfaceData;Lsun/java2d/SurfaceData;II)V
    flags: (0x0001) ACC_PUBLIC
    Code:
      stack=11, locals=8, args_size=5
        start local 0 // sun.java2d.SurfaceDataProxy this
        start local 1 // sun.java2d.SurfaceData srcData
        start local 2 // sun.java2d.SurfaceData dstData
        start local 3 // int w
        start local 4 // int h
         0: .line 493
            aload 1 /* srcData */
            invokevirtual sun.java2d.SurfaceData.getSurfaceType:()Lsun/java2d/loops/SurfaceType;
            astore 5 /* srcType */
        start local 5 // sun.java2d.loops.SurfaceType srcType
         1: .line 494
            aload 2 /* dstData */
            invokevirtual sun.java2d.SurfaceData.getSurfaceType:()Lsun/java2d/loops/SurfaceType;
            astore 6 /* dstType */
        start local 6 // sun.java2d.loops.SurfaceType dstType
         2: .line 495
            aload 5 /* srcType */
         3: .line 496
            getstatic sun.java2d.loops.CompositeType.SrcNoEa:Lsun/java2d/loops/CompositeType;
         4: .line 497
            aload 6 /* dstType */
         5: .line 495
            invokestatic sun.java2d.loops.Blit.getFromCache:(Lsun/java2d/loops/SurfaceType;Lsun/java2d/loops/CompositeType;Lsun/java2d/loops/SurfaceType;)Lsun/java2d/loops/Blit;
            astore 7 /* blit */
        start local 7 // sun.java2d.loops.Blit blit
         6: .line 498
            aload 7 /* blit */
            aload 1 /* srcData */
            aload 2 /* dstData */
         7: .line 499
            getstatic java.awt.AlphaComposite.Src:Ljava/awt/AlphaComposite;
            aconst_null
         8: .line 500
            iconst_0
            iconst_0
            iconst_0
            iconst_0
            iload 3 /* w */
            iload 4 /* h */
         9: .line 498
            invokevirtual sun.java2d.loops.Blit.Blit:(Lsun/java2d/SurfaceData;Lsun/java2d/SurfaceData;Ljava/awt/Composite;Lsun/java2d/pipe/Region;IIIIII)V
        10: .line 501
            aload 2 /* dstData */
            invokevirtual sun.java2d.SurfaceData.markDirty:()V
        11: .line 502
            return
        end local 7 // sun.java2d.loops.Blit blit
        end local 6 // sun.java2d.loops.SurfaceType dstType
        end local 5 // sun.java2d.loops.SurfaceType srcType
        end local 4 // int h
        end local 3 // int w
        end local 2 // sun.java2d.SurfaceData dstData
        end local 1 // sun.java2d.SurfaceData srcData
        end local 0 // sun.java2d.SurfaceDataProxy this
      LocalVariableTable:
        Start  End  Slot     Name  Signature
            0   12     0     this  Lsun/java2d/SurfaceDataProxy;
            0   12     1  srcData  Lsun/java2d/SurfaceData;
            0   12     2  dstData  Lsun/java2d/SurfaceData;
            0   12     3        w  I
            0   12     4        h  I
            1   12     5  srcType  Lsun/java2d/loops/SurfaceType;
            2   12     6  dstType  Lsun/java2d/loops/SurfaceType;
            6   12     7     blit  Lsun/java2d/loops/Blit;
    MethodParameters:
         Name  Flags
      srcData  
      dstData  
      w        
      h        

  public void updateSurfaceDataBg(sun.java2d.SurfaceData, sun.java2d.SurfaceData, int, int, java.awt.Color);
    descriptor: (Lsun/java2d/SurfaceData;Lsun/java2d/SurfaceData;IILjava/awt/Color;)V
    flags: (0x0001) ACC_PUBLIC
    Code:
      stack=12, locals=9, args_size=6
        start local 0 // sun.java2d.SurfaceDataProxy this
        start local 1 // sun.java2d.SurfaceData srcData
        start local 2 // sun.java2d.SurfaceData dstData
        start local 3 // int w
        start local 4 // int h
        start local 5 // java.awt.Color bgColor
         0: .line 518
            aload 1 /* srcData */
            invokevirtual sun.java2d.SurfaceData.getSurfaceType:()Lsun/java2d/loops/SurfaceType;
            astore 6 /* srcType */
        start local 6 // sun.java2d.loops.SurfaceType srcType
         1: .line 519
            aload 2 /* dstData */
            invokevirtual sun.java2d.SurfaceData.getSurfaceType:()Lsun/java2d/loops/SurfaceType;
            astore 7 /* dstType */
        start local 7 // sun.java2d.loops.SurfaceType dstType
         2: .line 520
            aload 6 /* srcType */
         3: .line 521
            getstatic sun.java2d.loops.CompositeType.SrcNoEa:Lsun/java2d/loops/CompositeType;
         4: .line 522
            aload 7 /* dstType */
         5: .line 520
            invokestatic sun.java2d.loops.BlitBg.getFromCache:(Lsun/java2d/loops/SurfaceType;Lsun/java2d/loops/CompositeType;Lsun/java2d/loops/SurfaceType;)Lsun/java2d/loops/BlitBg;
            astore 8 /* blitbg */
        start local 8 // sun.java2d.loops.BlitBg blitbg
         6: .line 523
            aload 8 /* blitbg */
            aload 1 /* srcData */
            aload 2 /* dstData */
         7: .line 524
            getstatic java.awt.AlphaComposite.Src:Ljava/awt/AlphaComposite;
            aconst_null
            aload 5 /* bgColor */
            invokevirtual java.awt.Color.getRGB:()I
         8: .line 525
            iconst_0
            iconst_0
            iconst_0
            iconst_0
            iload 3 /* w */
            iload 4 /* h */
         9: .line 523
            invokevirtual sun.java2d.loops.BlitBg.BlitBg:(Lsun/java2d/SurfaceData;Lsun/java2d/SurfaceData;Ljava/awt/Composite;Lsun/java2d/pipe/Region;IIIIIII)V
        10: .line 526
            aload 2 /* dstData */
            invokevirtual sun.java2d.SurfaceData.markDirty:()V
        11: .line 527
            return
        end local 8 // sun.java2d.loops.BlitBg blitbg
        end local 7 // sun.java2d.loops.SurfaceType dstType
        end local 6 // sun.java2d.loops.SurfaceType srcType
        end local 5 // java.awt.Color bgColor
        end local 4 // int h
        end local 3 // int w
        end local 2 // sun.java2d.SurfaceData dstData
        end local 1 // sun.java2d.SurfaceData srcData
        end local 0 // sun.java2d.SurfaceDataProxy this
      LocalVariableTable:
        Start  End  Slot     Name  Signature
            0   12     0     this  Lsun/java2d/SurfaceDataProxy;
            0   12     1  srcData  Lsun/java2d/SurfaceData;
            0   12     2  dstData  Lsun/java2d/SurfaceData;
            0   12     3        w  I
            0   12     4        h  I
            0   12     5  bgColor  Ljava/awt/Color;
            1   12     6  srcType  Lsun/java2d/loops/SurfaceType;
            2   12     7  dstType  Lsun/java2d/loops/SurfaceType;
            6   12     8   blitbg  Lsun/java2d/loops/BlitBg;
    MethodParameters:
         Name  Flags
      srcData  
      dstData  
      w        
      h        
      bgColor  
}
SourceFile: "SurfaceDataProxy.java"
NestMembers:
  sun.java2d.SurfaceDataProxy$1  sun.java2d.SurfaceDataProxy$CountdownTracker
InnerClasses:
  public abstract FlushableCacheData = sun.awt.image.SurfaceManager$FlushableCacheData of sun.awt.image.SurfaceManager
  public final State = sun.java2d.StateTrackable$State of sun.java2d.StateTrackable
  sun.java2d.SurfaceDataProxy$1
  public CountdownTracker = sun.java2d.SurfaceDataProxy$CountdownTracker of sun.java2d.SurfaceDataProxy