public abstract class sun.awt.image.InputStreamImageSource implements java.awt.image.ImageProducer, sun.awt.image.ImageFetchable
  minor version: 0
  major version: 59
  flags: flags: (0x0421) ACC_PUBLIC, ACC_SUPER, ACC_ABSTRACT
  this_class: sun.awt.image.InputStreamImageSource
  super_class: java.lang.Object
{
  sun.awt.image.ImageConsumerQueue consumers;
    descriptor: Lsun/awt/image/ImageConsumerQueue;
    flags: (0x0000) 

  sun.awt.image.ImageDecoder decoder;
    descriptor: Lsun/awt/image/ImageDecoder;
    flags: (0x0000) 

  sun.awt.image.ImageDecoder decoders;
    descriptor: Lsun/awt/image/ImageDecoder;
    flags: (0x0000) 

  boolean awaitingFetch;
    descriptor: Z
    flags: (0x0000) 

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

  abstract boolean checkSecurity(java.lang.Object, boolean);
    descriptor: (Ljava/lang/Object;Z)Z
    flags: (0x0400) ACC_ABSTRACT
    MethodParameters:
         Name  Flags
      context  
      quiet    

  int countConsumers(sun.awt.image.ImageConsumerQueue);
    descriptor: (Lsun/awt/image/ImageConsumerQueue;)I
    flags: (0x0000) 
    Code:
      stack=1, locals=3, args_size=2
        start local 0 // sun.awt.image.InputStreamImageSource this
        start local 1 // sun.awt.image.ImageConsumerQueue cq
         0: .line 47
            iconst_0
            istore 2 /* i */
        start local 2 // int i
         1: .line 48
            goto 4
         2: .line 49
      StackMap locals: int
      StackMap stack:
            iinc 2 /* i */ 1
         3: .line 50
            aload 1 /* cq */
            getfield sun.awt.image.ImageConsumerQueue.next:Lsun/awt/image/ImageConsumerQueue;
            astore 1 /* cq */
         4: .line 48
      StackMap locals:
      StackMap stack:
            aload 1 /* cq */
            ifnonnull 2
         5: .line 52
            iload 2 /* i */
            ireturn
        end local 2 // int i
        end local 1 // sun.awt.image.ImageConsumerQueue cq
        end local 0 // sun.awt.image.InputStreamImageSource this
      LocalVariableTable:
        Start  End  Slot  Name  Signature
            0    6     0  this  Lsun/awt/image/InputStreamImageSource;
            0    6     1    cq  Lsun/awt/image/ImageConsumerQueue;
            1    6     2     i  I
    MethodParameters:
      Name  Flags
      cq    

  synchronized int countConsumers();
    descriptor: ()I
    flags: (0x0020) ACC_SYNCHRONIZED
    Code:
      stack=3, locals=3, args_size=1
        start local 0 // sun.awt.image.InputStreamImageSource this
         0: .line 56
            aload 0 /* this */
            getfield sun.awt.image.InputStreamImageSource.decoders:Lsun/awt/image/ImageDecoder;
            astore 1 /* id */
        start local 1 // sun.awt.image.ImageDecoder id
         1: .line 57
            aload 0 /* this */
            aload 0 /* this */
            getfield sun.awt.image.InputStreamImageSource.consumers:Lsun/awt/image/ImageConsumerQueue;
            invokevirtual sun.awt.image.InputStreamImageSource.countConsumers:(Lsun/awt/image/ImageConsumerQueue;)I
            istore 2 /* i */
        start local 2 // int i
         2: .line 58
            goto 5
         3: .line 59
      StackMap locals: sun.awt.image.ImageDecoder int
      StackMap stack:
            iload 2 /* i */
            aload 0 /* this */
            aload 1 /* id */
            getfield sun.awt.image.ImageDecoder.queue:Lsun/awt/image/ImageConsumerQueue;
            invokevirtual sun.awt.image.InputStreamImageSource.countConsumers:(Lsun/awt/image/ImageConsumerQueue;)I
            iadd
            istore 2 /* i */
         4: .line 60
            aload 1 /* id */
            getfield sun.awt.image.ImageDecoder.next:Lsun/awt/image/ImageDecoder;
            astore 1 /* id */
         5: .line 58
      StackMap locals:
      StackMap stack:
            aload 1 /* id */
            ifnonnull 3
         6: .line 62
            iload 2 /* i */
            ireturn
        end local 2 // int i
        end local 1 // sun.awt.image.ImageDecoder id
        end local 0 // sun.awt.image.InputStreamImageSource this
      LocalVariableTable:
        Start  End  Slot  Name  Signature
            0    7     0  this  Lsun/awt/image/InputStreamImageSource;
            1    7     1    id  Lsun/awt/image/ImageDecoder;
            2    7     2     i  I

  public void addConsumer(java.awt.image.ImageConsumer);
    descriptor: (Ljava/awt/image/ImageConsumer;)V
    flags: (0x0001) ACC_PUBLIC
    Code:
      stack=3, locals=2, args_size=2
        start local 0 // sun.awt.image.InputStreamImageSource this
        start local 1 // java.awt.image.ImageConsumer ic
         0: .line 66
            aload 0 /* this */
            aload 1 /* ic */
            iconst_0
            invokevirtual sun.awt.image.InputStreamImageSource.addConsumer:(Ljava/awt/image/ImageConsumer;Z)V
         1: .line 67
            return
        end local 1 // java.awt.image.ImageConsumer ic
        end local 0 // sun.awt.image.InputStreamImageSource this
      LocalVariableTable:
        Start  End  Slot  Name  Signature
            0    2     0  this  Lsun/awt/image/InputStreamImageSource;
            0    2     1    ic  Ljava/awt/image/ImageConsumer;
    MethodParameters:
      Name  Flags
      ic    

  synchronized void printQueue(sun.awt.image.ImageConsumerQueue, java.lang.String);
    descriptor: (Lsun/awt/image/ImageConsumerQueue;Ljava/lang/String;)V
    flags: (0x0020) ACC_SYNCHRONIZED
    Code:
      stack=4, locals=3, args_size=3
        start local 0 // sun.awt.image.InputStreamImageSource this
        start local 1 // sun.awt.image.ImageConsumerQueue cq
        start local 2 // java.lang.String prefix
         0: .line 70
            goto 3
         1: .line 71
      StackMap locals:
      StackMap stack:
            getstatic java.lang.System.out:Ljava/io/PrintStream;
            new java.lang.StringBuilder
            dup
            aload 2 /* prefix */
            invokestatic java.lang.String.valueOf:(Ljava/lang/Object;)Ljava/lang/String;
            invokespecial java.lang.StringBuilder.<init>:(Ljava/lang/String;)V
            aload 1 /* cq */
            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
         2: .line 72
            aload 1 /* cq */
            getfield sun.awt.image.ImageConsumerQueue.next:Lsun/awt/image/ImageConsumerQueue;
            astore 1 /* cq */
         3: .line 70
      StackMap locals:
      StackMap stack:
            aload 1 /* cq */
            ifnonnull 1
         4: .line 74
            return
        end local 2 // java.lang.String prefix
        end local 1 // sun.awt.image.ImageConsumerQueue cq
        end local 0 // sun.awt.image.InputStreamImageSource this
      LocalVariableTable:
        Start  End  Slot    Name  Signature
            0    5     0    this  Lsun/awt/image/InputStreamImageSource;
            0    5     1      cq  Lsun/awt/image/ImageConsumerQueue;
            0    5     2  prefix  Ljava/lang/String;
    MethodParameters:
        Name  Flags
      cq      
      prefix  

  synchronized void printQueues(java.lang.String);
    descriptor: (Ljava/lang/String;)V
    flags: (0x0020) ACC_SYNCHRONIZED
    Code:
      stack=4, locals=3, args_size=2
        start local 0 // sun.awt.image.InputStreamImageSource this
        start local 1 // java.lang.String title
         0: .line 77
            getstatic java.lang.System.out:Ljava/io/PrintStream;
            new java.lang.StringBuilder
            dup
            aload 1 /* title */
            invokestatic java.lang.String.valueOf:(Ljava/lang/Object;)Ljava/lang/String;
            invokespecial java.lang.StringBuilder.<init>:(Ljava/lang/String;)V
            ldc "[ -----------"
            invokevirtual java.lang.StringBuilder.append:(Ljava/lang/String;)Ljava/lang/StringBuilder;
            invokevirtual java.lang.StringBuilder.toString:()Ljava/lang/String;
            invokevirtual java.io.PrintStream.println:(Ljava/lang/String;)V
         1: .line 78
            aload 0 /* this */
            aload 0 /* this */
            getfield sun.awt.image.InputStreamImageSource.consumers:Lsun/awt/image/ImageConsumerQueue;
            ldc "  "
            invokevirtual sun.awt.image.InputStreamImageSource.printQueue:(Lsun/awt/image/ImageConsumerQueue;Ljava/lang/String;)V
         2: .line 79
            aload 0 /* this */
            getfield sun.awt.image.InputStreamImageSource.decoders:Lsun/awt/image/ImageDecoder;
            astore 2 /* id */
        start local 2 // sun.awt.image.ImageDecoder id
         3: goto 7
         4: .line 80
      StackMap locals: sun.awt.image.ImageDecoder
      StackMap stack:
            getstatic java.lang.System.out:Ljava/io/PrintStream;
            new java.lang.StringBuilder
            dup
            ldc "    "
            invokespecial java.lang.StringBuilder.<init>:(Ljava/lang/String;)V
            aload 2 /* id */
            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
         5: .line 81
            aload 0 /* this */
            aload 2 /* id */
            getfield sun.awt.image.ImageDecoder.queue:Lsun/awt/image/ImageConsumerQueue;
            ldc "      "
            invokevirtual sun.awt.image.InputStreamImageSource.printQueue:(Lsun/awt/image/ImageConsumerQueue;Ljava/lang/String;)V
         6: .line 79
            aload 2 /* id */
            getfield sun.awt.image.ImageDecoder.next:Lsun/awt/image/ImageDecoder;
            astore 2 /* id */
      StackMap locals:
      StackMap stack:
         7: aload 2 /* id */
            ifnonnull 4
        end local 2 // sun.awt.image.ImageDecoder id
         8: .line 83
            getstatic java.lang.System.out:Ljava/io/PrintStream;
            new java.lang.StringBuilder
            dup
            ldc "----------- ]"
            invokespecial java.lang.StringBuilder.<init>:(Ljava/lang/String;)V
            aload 1 /* title */
            invokevirtual java.lang.StringBuilder.append:(Ljava/lang/String;)Ljava/lang/StringBuilder;
            invokevirtual java.lang.StringBuilder.toString:()Ljava/lang/String;
            invokevirtual java.io.PrintStream.println:(Ljava/lang/String;)V
         9: .line 84
            return
        end local 1 // java.lang.String title
        end local 0 // sun.awt.image.InputStreamImageSource this
      LocalVariableTable:
        Start  End  Slot   Name  Signature
            0   10     0   this  Lsun/awt/image/InputStreamImageSource;
            0   10     1  title  Ljava/lang/String;
            3    8     2     id  Lsun/awt/image/ImageDecoder;
    MethodParameters:
       Name  Flags
      title  

  synchronized void addConsumer(java.awt.image.ImageConsumer, boolean);
    descriptor: (Ljava/awt/image/ImageConsumer;Z)V
    flags: (0x0020) ACC_SYNCHRONIZED
    Code:
      stack=4, locals=6, args_size=3
        start local 0 // sun.awt.image.InputStreamImageSource this
        start local 1 // java.awt.image.ImageConsumer ic
        start local 2 // boolean produce
         0: .line 87
            aload 0 /* this */
            aconst_null
            iconst_0
            invokevirtual sun.awt.image.InputStreamImageSource.checkSecurity:(Ljava/lang/Object;Z)Z
            pop
         1: .line 88
            aload 0 /* this */
            getfield sun.awt.image.InputStreamImageSource.decoders:Lsun/awt/image/ImageDecoder;
            astore 3 /* id */
        start local 3 // sun.awt.image.ImageDecoder id
         2: goto 6
         3: .line 89
      StackMap locals: sun.awt.image.ImageDecoder
      StackMap stack:
            aload 3 /* id */
            aload 1 /* ic */
            invokevirtual sun.awt.image.ImageDecoder.isConsumer:(Ljava/awt/image/ImageConsumer;)Z
            ifeq 5
         4: .line 91
            return
         5: .line 88
      StackMap locals:
      StackMap stack:
            aload 3 /* id */
            getfield sun.awt.image.ImageDecoder.next:Lsun/awt/image/ImageDecoder;
            astore 3 /* id */
      StackMap locals:
      StackMap stack:
         6: aload 3 /* id */
            ifnonnull 3
        end local 3 // sun.awt.image.ImageDecoder id
         7: .line 94
            aload 0 /* this */
            getfield sun.awt.image.InputStreamImageSource.consumers:Lsun/awt/image/ImageConsumerQueue;
            astore 3 /* cq */
        start local 3 // sun.awt.image.ImageConsumerQueue cq
         8: .line 95
            goto 10
         9: .line 96
      StackMap locals: sun.awt.image.InputStreamImageSource java.awt.image.ImageConsumer int sun.awt.image.ImageConsumerQueue
      StackMap stack:
            aload 3 /* cq */
            getfield sun.awt.image.ImageConsumerQueue.next:Lsun/awt/image/ImageConsumerQueue;
            astore 3 /* cq */
        10: .line 95
      StackMap locals:
      StackMap stack:
            aload 3 /* cq */
            ifnull 11
            aload 3 /* cq */
            getfield sun.awt.image.ImageConsumerQueue.consumer:Ljava/awt/image/ImageConsumer;
            aload 1 /* ic */
            if_acmpne 9
        11: .line 98
      StackMap locals:
      StackMap stack:
            aload 3 /* cq */
            ifnonnull 16
        12: .line 99
            new sun.awt.image.ImageConsumerQueue
            dup
            aload 0 /* this */
            aload 1 /* ic */
            invokespecial sun.awt.image.ImageConsumerQueue.<init>:(Lsun/awt/image/InputStreamImageSource;Ljava/awt/image/ImageConsumer;)V
            astore 3 /* cq */
        13: .line 100
            aload 3 /* cq */
            aload 0 /* this */
            getfield sun.awt.image.InputStreamImageSource.consumers:Lsun/awt/image/ImageConsumerQueue;
            putfield sun.awt.image.ImageConsumerQueue.next:Lsun/awt/image/ImageConsumerQueue;
        14: .line 101
            aload 0 /* this */
            aload 3 /* cq */
            putfield sun.awt.image.InputStreamImageSource.consumers:Lsun/awt/image/ImageConsumerQueue;
        15: .line 102
            goto 28
        16: .line 103
      StackMap locals:
      StackMap stack:
            aload 3 /* cq */
            getfield sun.awt.image.ImageConsumerQueue.secure:Z
            ifne 27
        17: .line 104
            aconst_null
            astore 4 /* context */
        start local 4 // java.lang.Object context
        18: .line 105
            invokestatic java.lang.System.getSecurityManager:()Ljava/lang/SecurityManager;
            astore 5 /* security */
        start local 5 // java.lang.SecurityManager security
        19: .line 106
            aload 5 /* security */
            ifnull 21
        20: .line 107
            aload 5 /* security */
            invokevirtual java.lang.SecurityManager.getSecurityContext:()Ljava/lang/Object;
            astore 4 /* context */
        21: .line 109
      StackMap locals: java.lang.Object java.lang.SecurityManager
      StackMap stack:
            aload 3 /* cq */
            getfield sun.awt.image.ImageConsumerQueue.securityContext:Ljava/lang/Object;
            ifnonnull 24
        22: .line 110
            aload 3 /* cq */
            aload 4 /* context */
            putfield sun.awt.image.ImageConsumerQueue.securityContext:Ljava/lang/Object;
        23: .line 111
            goto 27
      StackMap locals:
      StackMap stack:
        24: aload 3 /* cq */
            getfield sun.awt.image.ImageConsumerQueue.securityContext:Ljava/lang/Object;
            aload 4 /* context */
            invokevirtual java.lang.Object.equals:(Ljava/lang/Object;)Z
            ifne 27
        25: .line 117
            aload 0 /* this */
            aload 3 /* cq */
            iconst_0
            invokevirtual sun.awt.image.InputStreamImageSource.errorConsumer:(Lsun/awt/image/ImageConsumerQueue;Z)V
        26: .line 118
            new java.lang.SecurityException
            dup
            ldc "Applets are trading image data!"
            invokespecial java.lang.SecurityException.<init>:(Ljava/lang/String;)V
            athrow
        end local 5 // java.lang.SecurityManager security
        end local 4 // java.lang.Object context
        27: .line 121
      StackMap locals:
      StackMap stack:
            aload 3 /* cq */
            iconst_1
            putfield sun.awt.image.ImageConsumerQueue.interested:Z
        28: .line 123
      StackMap locals:
      StackMap stack:
            iload 2 /* produce */
            ifeq 30
            aload 0 /* this */
            getfield sun.awt.image.InputStreamImageSource.decoder:Lsun/awt/image/ImageDecoder;
            ifnonnull 30
        29: .line 124
            aload 0 /* this */
            invokevirtual sun.awt.image.InputStreamImageSource.startProduction:()V
        30: .line 126
      StackMap locals:
      StackMap stack:
            return
        end local 3 // sun.awt.image.ImageConsumerQueue cq
        end local 2 // boolean produce
        end local 1 // java.awt.image.ImageConsumer ic
        end local 0 // sun.awt.image.InputStreamImageSource this
      LocalVariableTable:
        Start  End  Slot      Name  Signature
            0   31     0      this  Lsun/awt/image/InputStreamImageSource;
            0   31     1        ic  Ljava/awt/image/ImageConsumer;
            0   31     2   produce  Z
            2    7     3        id  Lsun/awt/image/ImageDecoder;
            8   31     3        cq  Lsun/awt/image/ImageConsumerQueue;
           18   27     4   context  Ljava/lang/Object;
           19   27     5  security  Ljava/lang/SecurityManager;
    MethodParameters:
         Name  Flags
      ic       
      produce  

  public synchronized boolean isConsumer(java.awt.image.ImageConsumer);
    descriptor: (Ljava/awt/image/ImageConsumer;)Z
    flags: (0x0021) ACC_PUBLIC, ACC_SYNCHRONIZED
    Code:
      stack=2, locals=3, args_size=2
        start local 0 // sun.awt.image.InputStreamImageSource this
        start local 1 // java.awt.image.ImageConsumer ic
         0: .line 129
            aload 0 /* this */
            getfield sun.awt.image.InputStreamImageSource.decoders:Lsun/awt/image/ImageDecoder;
            astore 2 /* id */
        start local 2 // sun.awt.image.ImageDecoder id
         1: goto 5
         2: .line 130
      StackMap locals: sun.awt.image.ImageDecoder
      StackMap stack:
            aload 2 /* id */
            aload 1 /* ic */
            invokevirtual sun.awt.image.ImageDecoder.isConsumer:(Ljava/awt/image/ImageConsumer;)Z
            ifeq 4
         3: .line 131
            iconst_1
            ireturn
         4: .line 129
      StackMap locals:
      StackMap stack:
            aload 2 /* id */
            getfield sun.awt.image.ImageDecoder.next:Lsun/awt/image/ImageDecoder;
            astore 2 /* id */
      StackMap locals:
      StackMap stack:
         5: aload 2 /* id */
            ifnonnull 2
        end local 2 // sun.awt.image.ImageDecoder id
         6: .line 134
            aload 0 /* this */
            getfield sun.awt.image.InputStreamImageSource.consumers:Lsun/awt/image/ImageConsumerQueue;
            aload 1 /* ic */
            invokestatic sun.awt.image.ImageConsumerQueue.isConsumer:(Lsun/awt/image/ImageConsumerQueue;Ljava/awt/image/ImageConsumer;)Z
            ireturn
        end local 1 // java.awt.image.ImageConsumer ic
        end local 0 // sun.awt.image.InputStreamImageSource this
      LocalVariableTable:
        Start  End  Slot  Name  Signature
            0    7     0  this  Lsun/awt/image/InputStreamImageSource;
            0    7     1    ic  Ljava/awt/image/ImageConsumer;
            1    6     2    id  Lsun/awt/image/ImageDecoder;
    MethodParameters:
      Name  Flags
      ic    

  private void errorAllConsumers(sun.awt.image.ImageConsumerQueue, boolean);
    descriptor: (Lsun/awt/image/ImageConsumerQueue;Z)V
    flags: (0x0002) ACC_PRIVATE
    Code:
      stack=3, locals=3, args_size=3
        start local 0 // sun.awt.image.InputStreamImageSource this
        start local 1 // sun.awt.image.ImageConsumerQueue cq
        start local 2 // boolean needReload
         0: .line 138
            goto 4
         1: .line 139
      StackMap locals:
      StackMap stack:
            aload 1 /* cq */
            getfield sun.awt.image.ImageConsumerQueue.interested:Z
            ifeq 3
         2: .line 140
            aload 0 /* this */
            aload 1 /* cq */
            iload 2 /* needReload */
            invokevirtual sun.awt.image.InputStreamImageSource.errorConsumer:(Lsun/awt/image/ImageConsumerQueue;Z)V
         3: .line 142
      StackMap locals:
      StackMap stack:
            aload 1 /* cq */
            getfield sun.awt.image.ImageConsumerQueue.next:Lsun/awt/image/ImageConsumerQueue;
            astore 1 /* cq */
         4: .line 138
      StackMap locals:
      StackMap stack:
            aload 1 /* cq */
            ifnonnull 1
         5: .line 144
            return
        end local 2 // boolean needReload
        end local 1 // sun.awt.image.ImageConsumerQueue cq
        end local 0 // sun.awt.image.InputStreamImageSource this
      LocalVariableTable:
        Start  End  Slot        Name  Signature
            0    6     0        this  Lsun/awt/image/InputStreamImageSource;
            0    6     1          cq  Lsun/awt/image/ImageConsumerQueue;
            0    6     2  needReload  Z
    MethodParameters:
            Name  Flags
      cq          
      needReload  

  private void errorConsumer(sun.awt.image.ImageConsumerQueue, boolean);
    descriptor: (Lsun/awt/image/ImageConsumerQueue;Z)V
    flags: (0x0002) ACC_PRIVATE
    Code:
      stack=2, locals=3, args_size=3
        start local 0 // sun.awt.image.InputStreamImageSource this
        start local 1 // sun.awt.image.ImageConsumerQueue cq
        start local 2 // boolean needReload
         0: .line 147
            aload 1 /* cq */
            getfield sun.awt.image.ImageConsumerQueue.consumer:Ljava/awt/image/ImageConsumer;
            iconst_1
            invokeinterface java.awt.image.ImageConsumer.imageComplete:(I)V
         1: .line 148
            iload 2 /* needReload */
            ifeq 3
            aload 1 /* cq */
            getfield sun.awt.image.ImageConsumerQueue.consumer:Ljava/awt/image/ImageConsumer;
            instanceof sun.awt.image.ImageRepresentation
            ifeq 3
         2: .line 149
            aload 1 /* cq */
            getfield sun.awt.image.ImageConsumerQueue.consumer:Ljava/awt/image/ImageConsumer;
            checkcast sun.awt.image.ImageRepresentation
            getfield sun.awt.image.ImageRepresentation.image:Lsun/awt/image/ToolkitImage;
            invokevirtual sun.awt.image.ToolkitImage.flush:()V
         3: .line 151
      StackMap locals:
      StackMap stack:
            aload 0 /* this */
            aload 1 /* cq */
            getfield sun.awt.image.ImageConsumerQueue.consumer:Ljava/awt/image/ImageConsumer;
            invokevirtual sun.awt.image.InputStreamImageSource.removeConsumer:(Ljava/awt/image/ImageConsumer;)V
         4: .line 152
            return
        end local 2 // boolean needReload
        end local 1 // sun.awt.image.ImageConsumerQueue cq
        end local 0 // sun.awt.image.InputStreamImageSource this
      LocalVariableTable:
        Start  End  Slot        Name  Signature
            0    5     0        this  Lsun/awt/image/InputStreamImageSource;
            0    5     1          cq  Lsun/awt/image/ImageConsumerQueue;
            0    5     2  needReload  Z
    MethodParameters:
            Name  Flags
      cq          
      needReload  

  public synchronized void removeConsumer(java.awt.image.ImageConsumer);
    descriptor: (Ljava/awt/image/ImageConsumer;)V
    flags: (0x0021) ACC_PUBLIC, ACC_SYNCHRONIZED
    Code:
      stack=4, locals=3, args_size=2
        start local 0 // sun.awt.image.InputStreamImageSource this
        start local 1 // java.awt.image.ImageConsumer ic
         0: .line 155
            aload 0 /* this */
            getfield sun.awt.image.InputStreamImageSource.decoders:Lsun/awt/image/ImageDecoder;
            astore 2 /* id */
        start local 2 // sun.awt.image.ImageDecoder id
         1: goto 4
         2: .line 156
      StackMap locals: sun.awt.image.ImageDecoder
      StackMap stack:
            aload 2 /* id */
            aload 1 /* ic */
            invokevirtual sun.awt.image.ImageDecoder.removeConsumer:(Ljava/awt/image/ImageConsumer;)V
         3: .line 155
            aload 2 /* id */
            getfield sun.awt.image.ImageDecoder.next:Lsun/awt/image/ImageDecoder;
            astore 2 /* id */
      StackMap locals:
      StackMap stack:
         4: aload 2 /* id */
            ifnonnull 2
        end local 2 // sun.awt.image.ImageDecoder id
         5: .line 158
            aload 0 /* this */
            aload 0 /* this */
            getfield sun.awt.image.InputStreamImageSource.consumers:Lsun/awt/image/ImageConsumerQueue;
            aload 1 /* ic */
            iconst_0
            invokestatic sun.awt.image.ImageConsumerQueue.removeConsumer:(Lsun/awt/image/ImageConsumerQueue;Ljava/awt/image/ImageConsumer;Z)Lsun/awt/image/ImageConsumerQueue;
            putfield sun.awt.image.InputStreamImageSource.consumers:Lsun/awt/image/ImageConsumerQueue;
         6: .line 159
            return
        end local 1 // java.awt.image.ImageConsumer ic
        end local 0 // sun.awt.image.InputStreamImageSource this
      LocalVariableTable:
        Start  End  Slot  Name  Signature
            0    7     0  this  Lsun/awt/image/InputStreamImageSource;
            0    7     1    ic  Ljava/awt/image/ImageConsumer;
            1    5     2    id  Lsun/awt/image/ImageDecoder;
    MethodParameters:
      Name  Flags
      ic    

  public void startProduction(java.awt.image.ImageConsumer);
    descriptor: (Ljava/awt/image/ImageConsumer;)V
    flags: (0x0001) ACC_PUBLIC
    Code:
      stack=3, locals=2, args_size=2
        start local 0 // sun.awt.image.InputStreamImageSource this
        start local 1 // java.awt.image.ImageConsumer ic
         0: .line 162
            aload 0 /* this */
            aload 1 /* ic */
            iconst_1
            invokevirtual sun.awt.image.InputStreamImageSource.addConsumer:(Ljava/awt/image/ImageConsumer;Z)V
         1: .line 163
            return
        end local 1 // java.awt.image.ImageConsumer ic
        end local 0 // sun.awt.image.InputStreamImageSource this
      LocalVariableTable:
        Start  End  Slot  Name  Signature
            0    2     0  this  Lsun/awt/image/InputStreamImageSource;
            0    2     1    ic  Ljava/awt/image/ImageConsumer;
    MethodParameters:
      Name  Flags
      ic    

  private synchronized void startProduction();
    descriptor: ()V
    flags: (0x0022) ACC_PRIVATE, ACC_SYNCHRONIZED
    Code:
      stack=3, locals=2, args_size=1
        start local 0 // sun.awt.image.InputStreamImageSource this
         0: .line 166
            aload 0 /* this */
            getfield sun.awt.image.InputStreamImageSource.awaitingFetch:Z
            ifne 7
         1: .line 167
            aload 0 /* this */
            invokestatic sun.awt.image.ImageFetcher.add:(Lsun/awt/image/ImageFetchable;)Z
            ifeq 4
         2: .line 168
            aload 0 /* this */
            iconst_1
            putfield sun.awt.image.InputStreamImageSource.awaitingFetch:Z
         3: .line 169
            goto 7
         4: .line 170
      StackMap locals:
      StackMap stack:
            aload 0 /* this */
            getfield sun.awt.image.InputStreamImageSource.consumers:Lsun/awt/image/ImageConsumerQueue;
            astore 1 /* cq */
        start local 1 // sun.awt.image.ImageConsumerQueue cq
         5: .line 171
            aload 0 /* this */
            aconst_null
            putfield sun.awt.image.InputStreamImageSource.consumers:Lsun/awt/image/ImageConsumerQueue;
         6: .line 172
            aload 0 /* this */
            aload 1 /* cq */
            iconst_0
            invokevirtual sun.awt.image.InputStreamImageSource.errorAllConsumers:(Lsun/awt/image/ImageConsumerQueue;Z)V
        end local 1 // sun.awt.image.ImageConsumerQueue cq
         7: .line 175
      StackMap locals:
      StackMap stack:
            return
        end local 0 // sun.awt.image.InputStreamImageSource this
      LocalVariableTable:
        Start  End  Slot  Name  Signature
            0    8     0  this  Lsun/awt/image/InputStreamImageSource;
            5    7     1    cq  Lsun/awt/image/ImageConsumerQueue;

  private synchronized void stopProduction();
    descriptor: ()V
    flags: (0x0022) ACC_PRIVATE, ACC_SYNCHRONIZED
    Code:
      stack=2, locals=1, args_size=1
        start local 0 // sun.awt.image.InputStreamImageSource this
         0: .line 178
            aload 0 /* this */
            getfield sun.awt.image.InputStreamImageSource.awaitingFetch:Z
            ifeq 3
         1: .line 179
            aload 0 /* this */
            invokestatic sun.awt.image.ImageFetcher.remove:(Lsun/awt/image/ImageFetchable;)V
         2: .line 180
            aload 0 /* this */
            iconst_0
            putfield sun.awt.image.InputStreamImageSource.awaitingFetch:Z
         3: .line 182
      StackMap locals:
      StackMap stack:
            return
        end local 0 // sun.awt.image.InputStreamImageSource this
      LocalVariableTable:
        Start  End  Slot  Name  Signature
            0    4     0  this  Lsun/awt/image/InputStreamImageSource;

  public void requestTopDownLeftRightResend(java.awt.image.ImageConsumer);
    descriptor: (Ljava/awt/image/ImageConsumer;)V
    flags: (0x0001) ACC_PUBLIC
    Code:
      stack=0, locals=2, args_size=2
        start local 0 // sun.awt.image.InputStreamImageSource this
        start local 1 // java.awt.image.ImageConsumer ic
         0: .line 185
            return
        end local 1 // java.awt.image.ImageConsumer ic
        end local 0 // sun.awt.image.InputStreamImageSource this
      LocalVariableTable:
        Start  End  Slot  Name  Signature
            0    1     0  this  Lsun/awt/image/InputStreamImageSource;
            0    1     1    ic  Ljava/awt/image/ImageConsumer;
    MethodParameters:
      Name  Flags
      ic    

  protected abstract sun.awt.image.ImageDecoder getDecoder();
    descriptor: ()Lsun/awt/image/ImageDecoder;
    flags: (0x0404) ACC_PROTECTED, ACC_ABSTRACT

  protected sun.awt.image.ImageDecoder decoderForType(java.io.InputStream, java.lang.String);
    descriptor: (Ljava/io/InputStream;Ljava/lang/String;)Lsun/awt/image/ImageDecoder;
    flags: (0x0004) ACC_PROTECTED
    Code:
      stack=1, locals=3, args_size=3
        start local 0 // sun.awt.image.InputStreamImageSource this
        start local 1 // java.io.InputStream is
        start local 2 // java.lang.String content_type
         0: .line 210
            aconst_null
            areturn
        end local 2 // java.lang.String content_type
        end local 1 // java.io.InputStream is
        end local 0 // sun.awt.image.InputStreamImageSource this
      LocalVariableTable:
        Start  End  Slot          Name  Signature
            0    1     0          this  Lsun/awt/image/InputStreamImageSource;
            0    1     1            is  Ljava/io/InputStream;
            0    1     2  content_type  Ljava/lang/String;
    MethodParameters:
              Name  Flags
      is            
      content_type  

  protected sun.awt.image.ImageDecoder getDecoder(java.io.InputStream);
    descriptor: (Ljava/io/InputStream;)Lsun/awt/image/ImageDecoder;
    flags: (0x0004) ACC_PROTECTED
    Code:
      stack=4, locals=10, args_size=2
        start local 0 // sun.awt.image.InputStreamImageSource this
        start local 1 // java.io.InputStream is
         0: .line 214
            aload 1 /* is */
            invokevirtual java.io.InputStream.markSupported:()Z
            ifne 2
         1: .line 215
            new java.io.BufferedInputStream
            dup
            aload 1 /* is */
            invokespecial java.io.BufferedInputStream.<init>:(Ljava/io/InputStream;)V
            astore 1 /* is */
         2: .line 220
      StackMap locals:
      StackMap stack:
            aload 1 /* is */
            bipush 8
            invokevirtual java.io.InputStream.mark:(I)V
         3: .line 221
            aload 1 /* is */
            invokevirtual java.io.InputStream.read:()I
            istore 2 /* c1 */
        start local 2 // int c1
         4: .line 222
            aload 1 /* is */
            invokevirtual java.io.InputStream.read:()I
            istore 3 /* c2 */
        start local 3 // int c2
         5: .line 223
            aload 1 /* is */
            invokevirtual java.io.InputStream.read:()I
            istore 4 /* c3 */
        start local 4 // int c3
         6: .line 224
            aload 1 /* is */
            invokevirtual java.io.InputStream.read:()I
            istore 5 /* c4 */
        start local 5 // int c4
         7: .line 225
            aload 1 /* is */
            invokevirtual java.io.InputStream.read:()I
            istore 6 /* c5 */
        start local 6 // int c5
         8: .line 226
            aload 1 /* is */
            invokevirtual java.io.InputStream.read:()I
            istore 7 /* c6 */
        start local 7 // int c6
         9: .line 228
            aload 1 /* is */
            invokevirtual java.io.InputStream.read:()I
            istore 8 /* c7 */
        start local 8 // int c7
        10: .line 229
            aload 1 /* is */
            invokevirtual java.io.InputStream.read:()I
            istore 9 /* c8 */
        start local 9 // int c8
        11: .line 231
            aload 1 /* is */
            invokevirtual java.io.InputStream.reset:()V
        12: .line 232
            aload 1 /* is */
            iconst_m1
            invokevirtual java.io.InputStream.mark:(I)V
        13: .line 234
            iload 2 /* c1 */
            bipush 71
            if_icmpne 16
            iload 3 /* c2 */
            bipush 73
            if_icmpne 16
            iload 4 /* c3 */
            bipush 70
            if_icmpne 16
            iload 5 /* c4 */
            bipush 56
            if_icmpne 16
        14: .line 235
            new sun.awt.image.GifImageDecoder
            dup
            aload 0 /* this */
            aload 1 /* is */
            invokespecial sun.awt.image.GifImageDecoder.<init>:(Lsun/awt/image/InputStreamImageSource;Ljava/io/InputStream;)V
        15: areturn
        16: .line 236
      StackMap locals: sun.awt.image.InputStreamImageSource java.io.InputStream int int int int int int int int
      StackMap stack:
            iload 2 /* c1 */
            sipush 255
            if_icmpne 19
            iload 3 /* c2 */
            sipush 216
            if_icmpne 19
            iload 4 /* c3 */
            sipush 255
            if_icmpne 19
        17: .line 237
            new sun.awt.image.JPEGImageDecoder
            dup
            aload 0 /* this */
            aload 1 /* is */
            invokespecial sun.awt.image.JPEGImageDecoder.<init>:(Lsun/awt/image/InputStreamImageSource;Ljava/io/InputStream;)V
        18: areturn
        19: .line 238
      StackMap locals:
      StackMap stack:
            iload 2 /* c1 */
            bipush 35
            if_icmpne 22
            iload 3 /* c2 */
            bipush 100
            if_icmpne 22
            iload 4 /* c3 */
            bipush 101
            if_icmpne 22
            iload 5 /* c4 */
            bipush 102
            if_icmpne 22
        20: .line 239
            new sun.awt.image.XbmImageDecoder
            dup
            aload 0 /* this */
            aload 1 /* is */
            invokespecial sun.awt.image.XbmImageDecoder.<init>:(Lsun/awt/image/InputStreamImageSource;Ljava/io/InputStream;)V
        21: areturn
        22: .line 244
      StackMap locals:
      StackMap stack:
            iload 2 /* c1 */
            sipush 137
            if_icmpne 28
            iload 3 /* c2 */
            bipush 80
            if_icmpne 28
            iload 4 /* c3 */
            bipush 78
            if_icmpne 28
        23: .line 245
            iload 5 /* c4 */
            bipush 71
            if_icmpne 28
            iload 6 /* c5 */
            bipush 13
            if_icmpne 28
            iload 7 /* c6 */
            bipush 10
            if_icmpne 28
        24: .line 246
            iload 8 /* c7 */
            bipush 26
            if_icmpne 28
            iload 9 /* c8 */
            bipush 10
            if_icmpne 28
        25: .line 247
            new sun.awt.image.PNGImageDecoder
            dup
            aload 0 /* this */
            aload 1 /* is */
            invokespecial sun.awt.image.PNGImageDecoder.<init>:(Lsun/awt/image/InputStreamImageSource;Ljava/io/InputStream;)V
        26: areturn
        end local 9 // int c8
        end local 8 // int c7
        end local 7 // int c6
        end local 6 // int c5
        end local 5 // int c4
        end local 4 // int c3
        end local 3 // int c2
        end local 2 // int c1
        27: .line 250
      StackMap locals: sun.awt.image.InputStreamImageSource java.io.InputStream
      StackMap stack: java.io.IOException
            pop
        28: .line 253
      StackMap locals:
      StackMap stack:
            aconst_null
            areturn
        end local 1 // java.io.InputStream is
        end local 0 // sun.awt.image.InputStreamImageSource this
      LocalVariableTable:
        Start  End  Slot  Name  Signature
            0   29     0  this  Lsun/awt/image/InputStreamImageSource;
            0   29     1    is  Ljava/io/InputStream;
            4   27     2    c1  I
            5   27     3    c2  I
            6   27     4    c3  I
            7   27     5    c4  I
            8   27     6    c5  I
            9   27     7    c6  I
           10   27     8    c7  I
           11   27     9    c8  I
      Exception table:
        from    to  target  type
           2    15      27  Class java.io.IOException
          16    18      27  Class java.io.IOException
          19    21      27  Class java.io.IOException
          22    26      27  Class java.io.IOException
    MethodParameters:
      Name  Flags
      is    

  public void doFetch();
    descriptor: ()V
    flags: (0x0001) ACC_PUBLIC
    Code:
      stack=3, locals=4, args_size=1
        start local 0 // sun.awt.image.InputStreamImageSource this
         0: .line 257
            aload 0 /* this */
            dup
            astore 1
            monitorenter
         1: .line 258
            aload 0 /* this */
            getfield sun.awt.image.InputStreamImageSource.consumers:Lsun/awt/image/ImageConsumerQueue;
            ifnonnull 5
         2: .line 259
            aload 0 /* this */
            iconst_0
            putfield sun.awt.image.InputStreamImageSource.awaitingFetch:Z
         3: .line 260
            aload 1
            monitorexit
         4: return
         5: .line 257
      StackMap locals: sun.awt.image.InputStreamImageSource
      StackMap stack:
            aload 1
            monitorexit
         6: goto 9
      StackMap locals:
      StackMap stack: java.lang.Throwable
         7: aload 1
            monitorexit
         8: athrow
         9: .line 263
      StackMap locals:
      StackMap stack:
            aload 0 /* this */
            invokevirtual sun.awt.image.InputStreamImageSource.getDecoder:()Lsun/awt/image/ImageDecoder;
            astore 1 /* imgd */
        start local 1 // sun.awt.image.ImageDecoder imgd
        10: .line 264
            aload 1 /* imgd */
            ifnonnull 13
        11: .line 265
            aload 0 /* this */
            invokevirtual sun.awt.image.InputStreamImageSource.badDecoder:()V
        12: .line 266
            goto 42
        13: .line 267
      StackMap locals: sun.awt.image.ImageDecoder
      StackMap stack:
            aload 0 /* this */
            aload 1 /* imgd */
            invokevirtual sun.awt.image.InputStreamImageSource.setDecoder:(Lsun/awt/image/ImageDecoder;)V
        14: .line 269
            aload 1 /* imgd */
            invokevirtual sun.awt.image.ImageDecoder.produceImage:()V
        15: .line 270
            goto 37
      StackMap locals:
      StackMap stack: java.io.IOException
        16: astore 2 /* e */
        start local 2 // java.io.IOException e
        17: .line 271
            aload 2 /* e */
            invokevirtual java.io.IOException.printStackTrace:()V
        end local 2 // java.io.IOException e
        18: .line 277
            aload 0 /* this */
            aload 1 /* imgd */
            invokevirtual sun.awt.image.InputStreamImageSource.removeDecoder:(Lsun/awt/image/ImageDecoder;)V
        19: .line 278
            invokestatic java.lang.Thread.currentThread:()Ljava/lang/Thread;
            invokevirtual java.lang.Thread.isInterrupted:()Z
            ifne 20
            invokestatic java.lang.Thread.currentThread:()Ljava/lang/Thread;
            invokevirtual java.lang.Thread.isAlive:()Z
            ifne 22
        20: .line 279
      StackMap locals:
      StackMap stack:
            aload 0 /* this */
            aload 1 /* imgd */
            getfield sun.awt.image.ImageDecoder.queue:Lsun/awt/image/ImageConsumerQueue;
            iconst_1
            invokevirtual sun.awt.image.InputStreamImageSource.errorAllConsumers:(Lsun/awt/image/ImageConsumerQueue;Z)V
        21: .line 280
            goto 42
        22: .line 281
      StackMap locals:
      StackMap stack:
            aload 0 /* this */
            aload 1 /* imgd */
            getfield sun.awt.image.ImageDecoder.queue:Lsun/awt/image/ImageConsumerQueue;
            iconst_0
            invokevirtual sun.awt.image.InputStreamImageSource.errorAllConsumers:(Lsun/awt/image/ImageConsumerQueue;Z)V
            goto 42
        23: .line 273
      StackMap locals:
      StackMap stack: sun.awt.image.ImageFormatException
            astore 2 /* e */
        start local 2 // sun.awt.image.ImageFormatException e
        24: .line 274
            aload 2 /* e */
            invokevirtual sun.awt.image.ImageFormatException.printStackTrace:()V
        end local 2 // sun.awt.image.ImageFormatException e
        25: .line 277
            aload 0 /* this */
            aload 1 /* imgd */
            invokevirtual sun.awt.image.InputStreamImageSource.removeDecoder:(Lsun/awt/image/ImageDecoder;)V
        26: .line 278
            invokestatic java.lang.Thread.currentThread:()Ljava/lang/Thread;
            invokevirtual java.lang.Thread.isInterrupted:()Z
            ifne 27
            invokestatic java.lang.Thread.currentThread:()Ljava/lang/Thread;
            invokevirtual java.lang.Thread.isAlive:()Z
            ifne 29
        27: .line 279
      StackMap locals:
      StackMap stack:
            aload 0 /* this */
            aload 1 /* imgd */
            getfield sun.awt.image.ImageDecoder.queue:Lsun/awt/image/ImageConsumerQueue;
            iconst_1
            invokevirtual sun.awt.image.InputStreamImageSource.errorAllConsumers:(Lsun/awt/image/ImageConsumerQueue;Z)V
        28: .line 280
            goto 42
        29: .line 281
      StackMap locals:
      StackMap stack:
            aload 0 /* this */
            aload 1 /* imgd */
            getfield sun.awt.image.ImageDecoder.queue:Lsun/awt/image/ImageConsumerQueue;
            iconst_0
            invokevirtual sun.awt.image.InputStreamImageSource.errorAllConsumers:(Lsun/awt/image/ImageConsumerQueue;Z)V
            goto 42
        30: .line 276
      StackMap locals:
      StackMap stack: java.lang.Throwable
            astore 3
        31: .line 277
            aload 0 /* this */
            aload 1 /* imgd */
            invokevirtual sun.awt.image.InputStreamImageSource.removeDecoder:(Lsun/awt/image/ImageDecoder;)V
        32: .line 278
            invokestatic java.lang.Thread.currentThread:()Ljava/lang/Thread;
            invokevirtual java.lang.Thread.isInterrupted:()Z
            ifne 33
            invokestatic java.lang.Thread.currentThread:()Ljava/lang/Thread;
            invokevirtual java.lang.Thread.isAlive:()Z
            ifne 35
        33: .line 279
      StackMap locals: sun.awt.image.InputStreamImageSource sun.awt.image.ImageDecoder top java.lang.Throwable
      StackMap stack:
            aload 0 /* this */
            aload 1 /* imgd */
            getfield sun.awt.image.ImageDecoder.queue:Lsun/awt/image/ImageConsumerQueue;
            iconst_1
            invokevirtual sun.awt.image.InputStreamImageSource.errorAllConsumers:(Lsun/awt/image/ImageConsumerQueue;Z)V
        34: .line 280
            goto 36
        35: .line 281
      StackMap locals:
      StackMap stack:
            aload 0 /* this */
            aload 1 /* imgd */
            getfield sun.awt.image.ImageDecoder.queue:Lsun/awt/image/ImageConsumerQueue;
            iconst_0
            invokevirtual sun.awt.image.InputStreamImageSource.errorAllConsumers:(Lsun/awt/image/ImageConsumerQueue;Z)V
        36: .line 283
      StackMap locals:
      StackMap stack:
            aload 3
            athrow
        37: .line 277
      StackMap locals: sun.awt.image.InputStreamImageSource sun.awt.image.ImageDecoder
      StackMap stack:
            aload 0 /* this */
            aload 1 /* imgd */
            invokevirtual sun.awt.image.InputStreamImageSource.removeDecoder:(Lsun/awt/image/ImageDecoder;)V
        38: .line 278
            invokestatic java.lang.Thread.currentThread:()Ljava/lang/Thread;
            invokevirtual java.lang.Thread.isInterrupted:()Z
            ifne 39
            invokestatic java.lang.Thread.currentThread:()Ljava/lang/Thread;
            invokevirtual java.lang.Thread.isAlive:()Z
            ifne 41
        39: .line 279
      StackMap locals:
      StackMap stack:
            aload 0 /* this */
            aload 1 /* imgd */
            getfield sun.awt.image.ImageDecoder.queue:Lsun/awt/image/ImageConsumerQueue;
            iconst_1
            invokevirtual sun.awt.image.InputStreamImageSource.errorAllConsumers:(Lsun/awt/image/ImageConsumerQueue;Z)V
        40: .line 280
            goto 42
        41: .line 281
      StackMap locals:
      StackMap stack:
            aload 0 /* this */
            aload 1 /* imgd */
            getfield sun.awt.image.ImageDecoder.queue:Lsun/awt/image/ImageConsumerQueue;
            iconst_0
            invokevirtual sun.awt.image.InputStreamImageSource.errorAllConsumers:(Lsun/awt/image/ImageConsumerQueue;Z)V
        42: .line 285
      StackMap locals:
      StackMap stack:
            return
        end local 1 // sun.awt.image.ImageDecoder imgd
        end local 0 // sun.awt.image.InputStreamImageSource this
      LocalVariableTable:
        Start  End  Slot  Name  Signature
            0   43     0  this  Lsun/awt/image/InputStreamImageSource;
           10   43     1  imgd  Lsun/awt/image/ImageDecoder;
           17   18     2     e  Ljava/io/IOException;
           24   25     2     e  Lsun/awt/image/ImageFormatException;
      Exception table:
        from    to  target  type
           1     4       7  any
           5     6       7  any
           7     8       7  any
          14    15      16  Class java.io.IOException
          14    15      23  Class sun.awt.image.ImageFormatException
          14    18      30  any
          23    25      30  any

  private void badDecoder();
    descriptor: ()V
    flags: (0x0002) ACC_PRIVATE
    Code:
      stack=3, locals=3, args_size=1
        start local 0 // sun.awt.image.InputStreamImageSource this
         0: .line 289
            aload 0 /* this */
            dup
            astore 2
            monitorenter
         1: .line 290
            aload 0 /* this */
            getfield sun.awt.image.InputStreamImageSource.consumers:Lsun/awt/image/ImageConsumerQueue;
            astore 1 /* cq */
        start local 1 // sun.awt.image.ImageConsumerQueue cq
         2: .line 291
            aload 0 /* this */
            aconst_null
            putfield sun.awt.image.InputStreamImageSource.consumers:Lsun/awt/image/ImageConsumerQueue;
         3: .line 292
            aload 0 /* this */
            iconst_0
            putfield sun.awt.image.InputStreamImageSource.awaitingFetch:Z
         4: .line 289
            aload 2
            monitorexit
         5: goto 8
        end local 1 // sun.awt.image.ImageConsumerQueue cq
      StackMap locals: sun.awt.image.InputStreamImageSource top sun.awt.image.InputStreamImageSource
      StackMap stack: java.lang.Throwable
         6: aload 2
            monitorexit
         7: athrow
        start local 1 // sun.awt.image.ImageConsumerQueue cq
         8: .line 294
      StackMap locals: sun.awt.image.InputStreamImageSource sun.awt.image.ImageConsumerQueue
      StackMap stack:
            aload 0 /* this */
            aload 1 /* cq */
            iconst_0
            invokevirtual sun.awt.image.InputStreamImageSource.errorAllConsumers:(Lsun/awt/image/ImageConsumerQueue;Z)V
         9: .line 295
            return
        end local 1 // sun.awt.image.ImageConsumerQueue cq
        end local 0 // sun.awt.image.InputStreamImageSource this
      LocalVariableTable:
        Start  End  Slot  Name  Signature
            0   10     0  this  Lsun/awt/image/InputStreamImageSource;
            2    6     1    cq  Lsun/awt/image/ImageConsumerQueue;
            8   10     1    cq  Lsun/awt/image/ImageConsumerQueue;
      Exception table:
        from    to  target  type
           1     5       6  any
           6     7       6  any

  private void setDecoder(sun.awt.image.ImageDecoder);
    descriptor: (Lsun/awt/image/ImageDecoder;)V
    flags: (0x0002) ACC_PRIVATE
    Code:
      stack=3, locals=4, args_size=2
        start local 0 // sun.awt.image.InputStreamImageSource this
        start local 1 // sun.awt.image.ImageDecoder mydecoder
         0: .line 299
            aload 0 /* this */
            dup
            astore 3
            monitorenter
         1: .line 300
            aload 1 /* mydecoder */
            aload 0 /* this */
            getfield sun.awt.image.InputStreamImageSource.decoders:Lsun/awt/image/ImageDecoder;
            putfield sun.awt.image.ImageDecoder.next:Lsun/awt/image/ImageDecoder;
         2: .line 301
            aload 0 /* this */
            aload 1 /* mydecoder */
            putfield sun.awt.image.InputStreamImageSource.decoders:Lsun/awt/image/ImageDecoder;
         3: .line 302
            aload 0 /* this */
            aload 1 /* mydecoder */
            putfield sun.awt.image.InputStreamImageSource.decoder:Lsun/awt/image/ImageDecoder;
         4: .line 303
            aload 0 /* this */
            getfield sun.awt.image.InputStreamImageSource.consumers:Lsun/awt/image/ImageConsumerQueue;
            astore 2 /* cq */
        start local 2 // sun.awt.image.ImageConsumerQueue cq
         5: .line 304
            aload 1 /* mydecoder */
            aload 2 /* cq */
            putfield sun.awt.image.ImageDecoder.queue:Lsun/awt/image/ImageConsumerQueue;
         6: .line 305
            aload 0 /* this */
            aconst_null
            putfield sun.awt.image.InputStreamImageSource.consumers:Lsun/awt/image/ImageConsumerQueue;
         7: .line 306
            aload 0 /* this */
            iconst_0
            putfield sun.awt.image.InputStreamImageSource.awaitingFetch:Z
         8: .line 299
            aload 3
            monitorexit
         9: goto 16
        end local 2 // sun.awt.image.ImageConsumerQueue cq
      StackMap locals: sun.awt.image.InputStreamImageSource sun.awt.image.ImageDecoder top sun.awt.image.InputStreamImageSource
      StackMap stack: java.lang.Throwable
        10: aload 3
            monitorexit
        11: athrow
        start local 2 // sun.awt.image.ImageConsumerQueue cq
        12: .line 309
      StackMap locals: sun.awt.image.InputStreamImageSource sun.awt.image.ImageDecoder sun.awt.image.ImageConsumerQueue
      StackMap stack:
            aload 2 /* cq */
            getfield sun.awt.image.ImageConsumerQueue.interested:Z
            ifeq 15
        13: .line 312
            aload 0 /* this */
            aload 2 /* cq */
            getfield sun.awt.image.ImageConsumerQueue.securityContext:Ljava/lang/Object;
            iconst_1
            invokevirtual sun.awt.image.InputStreamImageSource.checkSecurity:(Ljava/lang/Object;Z)Z
            ifne 15
        14: .line 313
            aload 0 /* this */
            aload 2 /* cq */
            iconst_0
            invokevirtual sun.awt.image.InputStreamImageSource.errorConsumer:(Lsun/awt/image/ImageConsumerQueue;Z)V
        15: .line 316
      StackMap locals:
      StackMap stack:
            aload 2 /* cq */
            getfield sun.awt.image.ImageConsumerQueue.next:Lsun/awt/image/ImageConsumerQueue;
            astore 2 /* cq */
        16: .line 308
      StackMap locals:
      StackMap stack:
            aload 2 /* cq */
            ifnonnull 12
        17: .line 318
            return
        end local 2 // sun.awt.image.ImageConsumerQueue cq
        end local 1 // sun.awt.image.ImageDecoder mydecoder
        end local 0 // sun.awt.image.InputStreamImageSource this
      LocalVariableTable:
        Start  End  Slot       Name  Signature
            0   18     0       this  Lsun/awt/image/InputStreamImageSource;
            0   18     1  mydecoder  Lsun/awt/image/ImageDecoder;
            5   10     2         cq  Lsun/awt/image/ImageConsumerQueue;
           12   18     2         cq  Lsun/awt/image/ImageConsumerQueue;
      Exception table:
        from    to  target  type
           1     9      10  any
          10    11      10  any
    MethodParameters:
           Name  Flags
      mydecoder  

  private synchronized void removeDecoder(sun.awt.image.ImageDecoder);
    descriptor: (Lsun/awt/image/ImageDecoder;)V
    flags: (0x0022) ACC_PRIVATE, ACC_SYNCHRONIZED
    Code:
      stack=2, locals=4, args_size=2
        start local 0 // sun.awt.image.InputStreamImageSource this
        start local 1 // sun.awt.image.ImageDecoder mydecoder
         0: .line 321
            aload 0 /* this */
            aload 1 /* mydecoder */
            invokevirtual sun.awt.image.InputStreamImageSource.doneDecoding:(Lsun/awt/image/ImageDecoder;)V
         1: .line 322
            aconst_null
            astore 2 /* idprev */
        start local 2 // sun.awt.image.ImageDecoder idprev
         2: .line 323
            aload 0 /* this */
            getfield sun.awt.image.InputStreamImageSource.decoders:Lsun/awt/image/ImageDecoder;
            astore 3 /* id */
        start local 3 // sun.awt.image.ImageDecoder id
         3: goto 12
         4: .line 324
      StackMap locals: sun.awt.image.ImageDecoder sun.awt.image.ImageDecoder
      StackMap stack:
            aload 3 /* id */
            aload 1 /* mydecoder */
            if_acmpne 10
         5: .line 325
            aload 2 /* idprev */
            ifnonnull 8
         6: .line 326
            aload 0 /* this */
            aload 3 /* id */
            getfield sun.awt.image.ImageDecoder.next:Lsun/awt/image/ImageDecoder;
            putfield sun.awt.image.InputStreamImageSource.decoders:Lsun/awt/image/ImageDecoder;
         7: .line 327
            goto 13
         8: .line 328
      StackMap locals:
      StackMap stack:
            aload 2 /* idprev */
            aload 3 /* id */
            getfield sun.awt.image.ImageDecoder.next:Lsun/awt/image/ImageDecoder;
            putfield sun.awt.image.ImageDecoder.next:Lsun/awt/image/ImageDecoder;
         9: .line 330
            goto 13
        10: .line 332
      StackMap locals:
      StackMap stack:
            aload 3 /* id */
            astore 2 /* idprev */
        11: .line 323
            aload 3 /* id */
            getfield sun.awt.image.ImageDecoder.next:Lsun/awt/image/ImageDecoder;
            astore 3 /* id */
      StackMap locals:
      StackMap stack:
        12: aload 3 /* id */
            ifnonnull 4
        end local 3 // sun.awt.image.ImageDecoder id
        13: .line 334
      StackMap locals:
      StackMap stack:
            return
        end local 2 // sun.awt.image.ImageDecoder idprev
        end local 1 // sun.awt.image.ImageDecoder mydecoder
        end local 0 // sun.awt.image.InputStreamImageSource this
      LocalVariableTable:
        Start  End  Slot       Name  Signature
            0   14     0       this  Lsun/awt/image/InputStreamImageSource;
            0   14     1  mydecoder  Lsun/awt/image/ImageDecoder;
            2   14     2     idprev  Lsun/awt/image/ImageDecoder;
            3   13     3         id  Lsun/awt/image/ImageDecoder;
    MethodParameters:
           Name  Flags
      mydecoder  

  synchronized void doneDecoding(sun.awt.image.ImageDecoder);
    descriptor: (Lsun/awt/image/ImageDecoder;)V
    flags: (0x0020) ACC_SYNCHRONIZED
    Code:
      stack=2, locals=2, args_size=2
        start local 0 // sun.awt.image.InputStreamImageSource this
        start local 1 // sun.awt.image.ImageDecoder mydecoder
         0: .line 337
            aload 0 /* this */
            getfield sun.awt.image.InputStreamImageSource.decoder:Lsun/awt/image/ImageDecoder;
            aload 1 /* mydecoder */
            if_acmpne 4
         1: .line 338
            aload 0 /* this */
            aconst_null
            putfield sun.awt.image.InputStreamImageSource.decoder:Lsun/awt/image/ImageDecoder;
         2: .line 339
            aload 0 /* this */
            getfield sun.awt.image.InputStreamImageSource.consumers:Lsun/awt/image/ImageConsumerQueue;
            ifnull 4
         3: .line 340
            aload 0 /* this */
            invokevirtual sun.awt.image.InputStreamImageSource.startProduction:()V
         4: .line 343
      StackMap locals:
      StackMap stack:
            return
        end local 1 // sun.awt.image.ImageDecoder mydecoder
        end local 0 // sun.awt.image.InputStreamImageSource this
      LocalVariableTable:
        Start  End  Slot       Name  Signature
            0    5     0       this  Lsun/awt/image/InputStreamImageSource;
            0    5     1  mydecoder  Lsun/awt/image/ImageDecoder;
    MethodParameters:
           Name  Flags
      mydecoder  

  void latchConsumers(sun.awt.image.ImageDecoder);
    descriptor: (Lsun/awt/image/ImageDecoder;)V
    flags: (0x0000) 
    Code:
      stack=2, locals=2, args_size=2
        start local 0 // sun.awt.image.InputStreamImageSource this
        start local 1 // sun.awt.image.ImageDecoder id
         0: .line 346
            aload 0 /* this */
            aload 1 /* id */
            invokevirtual sun.awt.image.InputStreamImageSource.doneDecoding:(Lsun/awt/image/ImageDecoder;)V
         1: .line 347
            return
        end local 1 // sun.awt.image.ImageDecoder id
        end local 0 // sun.awt.image.InputStreamImageSource this
      LocalVariableTable:
        Start  End  Slot  Name  Signature
            0    2     0  this  Lsun/awt/image/InputStreamImageSource;
            0    2     1    id  Lsun/awt/image/ImageDecoder;
    MethodParameters:
      Name  Flags
      id    

  synchronized void flush();
    descriptor: ()V
    flags: (0x0020) ACC_SYNCHRONIZED
    Code:
      stack=2, locals=1, args_size=1
        start local 0 // sun.awt.image.InputStreamImageSource this
         0: .line 350
            aload 0 /* this */
            aconst_null
            putfield sun.awt.image.InputStreamImageSource.decoder:Lsun/awt/image/ImageDecoder;
         1: .line 351
            return
        end local 0 // sun.awt.image.InputStreamImageSource this
      LocalVariableTable:
        Start  End  Slot  Name  Signature
            0    2     0  this  Lsun/awt/image/InputStreamImageSource;
}
SourceFile: "InputStreamImageSource.java"