final class jdk.tools.jlink.internal.ImageResourcesTree$LocationsAdder
  minor version: 0
  major version: 59
  flags: flags: (0x0030) ACC_FINAL, ACC_SUPER
  this_class: jdk.tools.jlink.internal.ImageResourcesTree$LocationsAdder
  super_class: java.lang.Object
{
  private long offset;
    descriptor: J
    flags: (0x0002) ACC_PRIVATE

  private final java.util.List<byte[]> content;
    descriptor: Ljava/util/List;
    flags: (0x0012) ACC_PRIVATE, ACC_FINAL
    Signature: Ljava/util/List<[B>;

  private final jdk.tools.jlink.internal.BasicImageWriter writer;
    descriptor: Ljdk/tools/jlink/internal/BasicImageWriter;
    flags: (0x0012) ACC_PRIVATE, ACC_FINAL

  private final jdk.tools.jlink.internal.ImageResourcesTree$Tree tree;
    descriptor: Ljdk/tools/jlink/internal/ImageResourcesTree$Tree;
    flags: (0x0012) ACC_PRIVATE, ACC_FINAL

  void <init>(jdk.tools.jlink.internal.ImageResourcesTree$Tree, long, jdk.tools.jlink.internal.BasicImageWriter);
    descriptor: (Ljdk/tools/jlink/internal/ImageResourcesTree$Tree;JLjdk/tools/jlink/internal/BasicImageWriter;)V
    flags: (0x0000) 
    Code:
      stack=3, locals=5, args_size=4
        start local 0 // jdk.tools.jlink.internal.ImageResourcesTree$LocationsAdder this
        start local 1 // jdk.tools.jlink.internal.ImageResourcesTree$Tree tree
        start local 2 // long offset
        start local 4 // jdk.tools.jlink.internal.BasicImageWriter writer
         0: .line 333
            aload 0 /* this */
            invokespecial java.lang.Object.<init>:()V
         1: .line 329
            aload 0 /* this */
            new java.util.ArrayList
            dup
            invokespecial java.util.ArrayList.<init>:()V
            putfield jdk.tools.jlink.internal.ImageResourcesTree$LocationsAdder.content:Ljava/util/List;
         2: .line 334
            aload 0 /* this */
            aload 1 /* tree */
            putfield jdk.tools.jlink.internal.ImageResourcesTree$LocationsAdder.tree:Ljdk/tools/jlink/internal/ImageResourcesTree$Tree;
         3: .line 335
            aload 0 /* this */
            lload 2 /* offset */
            putfield jdk.tools.jlink.internal.ImageResourcesTree$LocationsAdder.offset:J
         4: .line 336
            aload 0 /* this */
            aload 4 /* writer */
            putfield jdk.tools.jlink.internal.ImageResourcesTree$LocationsAdder.writer:Ljdk/tools/jlink/internal/BasicImageWriter;
         5: .line 337
            aload 0 /* this */
            aload 1 /* tree */
            invokevirtual jdk.tools.jlink.internal.ImageResourcesTree$Tree.getRoot:()Ljdk/tools/jlink/internal/ImageResourcesTree$Node;
            invokevirtual jdk.tools.jlink.internal.ImageResourcesTree$LocationsAdder.addLocations:(Ljdk/tools/jlink/internal/ImageResourcesTree$Node;)I
            pop
         6: .line 338
            return
        end local 4 // jdk.tools.jlink.internal.BasicImageWriter writer
        end local 2 // long offset
        end local 1 // jdk.tools.jlink.internal.ImageResourcesTree$Tree tree
        end local 0 // jdk.tools.jlink.internal.ImageResourcesTree$LocationsAdder this
      LocalVariableTable:
        Start  End  Slot    Name  Signature
            0    7     0    this  Ljdk/tools/jlink/internal/ImageResourcesTree$LocationsAdder;
            0    7     1    tree  Ljdk/tools/jlink/internal/ImageResourcesTree$Tree;
            0    7     2  offset  J
            0    7     4  writer  Ljdk/tools/jlink/internal/BasicImageWriter;
    MethodParameters:
        Name  Flags
      tree    
      offset  
      writer  

  private int addLocations(jdk.tools.jlink.internal.ImageResourcesTree$Node);
    descriptor: (Ljdk/tools/jlink/internal/ImageResourcesTree$Node;)I
    flags: (0x0002) ACC_PRIVATE
    Code:
      stack=8, locals=6, args_size=2
        start local 0 // jdk.tools.jlink.internal.ImageResourcesTree$LocationsAdder this
        start local 1 // jdk.tools.jlink.internal.ImageResourcesTree$Node current
         0: .line 341
            aload 1 /* current */
            instanceof jdk.tools.jlink.internal.ImageResourcesTree$PackageNode
            ifeq 6
         1: .line 342
            aload 1 /* current */
            checkcast jdk.tools.jlink.internal.ImageResourcesTree$PackageNode
            astore 2 /* pkgNode */
        start local 2 // jdk.tools.jlink.internal.ImageResourcesTree$PackageNode pkgNode
         2: .line 343
            aload 2 /* pkgNode */
            getfield jdk.tools.jlink.internal.ImageResourcesTree$PackageNode.references:Ljava/util/Map;
            invokeinterface java.util.Map.size:()I
            bipush 8
            imul
            istore 3 /* size */
        start local 3 // int size
         3: .line 344
            aload 0 /* this */
            getfield jdk.tools.jlink.internal.ImageResourcesTree$LocationsAdder.writer:Ljdk/tools/jlink/internal/BasicImageWriter;
            aload 1 /* current */
            invokevirtual jdk.tools.jlink.internal.ImageResourcesTree$Node.getPath:()Ljava/lang/String;
            aload 0 /* this */
            getfield jdk.tools.jlink.internal.ImageResourcesTree$LocationsAdder.offset:J
            lconst_0
            iload 3 /* size */
            i2l
            invokevirtual jdk.tools.jlink.internal.BasicImageWriter.addLocation:(Ljava/lang/String;JJJ)V
         4: .line 345
            aload 0 /* this */
            dup
            getfield jdk.tools.jlink.internal.ImageResourcesTree$LocationsAdder.offset:J
            iload 3 /* size */
            i2l
            ladd
            putfield jdk.tools.jlink.internal.ImageResourcesTree$LocationsAdder.offset:J
        end local 3 // int size
        end local 2 // jdk.tools.jlink.internal.ImageResourcesTree$PackageNode pkgNode
         5: .line 346
            goto 17
         6: .line 347
      StackMap locals:
      StackMap stack:
            aload 1 /* current */
            getfield jdk.tools.jlink.internal.ImageResourcesTree$Node.children:Ljava/util/Map;
            invokeinterface java.util.Map.size:()I
            newarray 10
            astore 2 /* ret */
        start local 2 // int[] ret
         7: .line 348
            iconst_0
            istore 3 /* i */
        start local 3 // int i
         8: .line 349
            aload 1 /* current */
            getfield jdk.tools.jlink.internal.ImageResourcesTree$Node.children:Ljava/util/Map;
            invokeinterface java.util.Map.entrySet:()Ljava/util/Set;
            invokeinterface java.util.Set.iterator:()Ljava/util/Iterator;
            astore 5
            goto 12
      StackMap locals: jdk.tools.jlink.internal.ImageResourcesTree$LocationsAdder jdk.tools.jlink.internal.ImageResourcesTree$Node int[] int top java.util.Iterator
      StackMap stack:
         9: aload 5
            invokeinterface java.util.Iterator.next:()Ljava/lang/Object;
            checkcast java.util.Map$Entry
            astore 4 /* entry */
        start local 4 // java.util.Map$Entry entry
        10: .line 350
            aload 2 /* ret */
            iload 3 /* i */
            aload 0 /* this */
            aload 4 /* entry */
            invokeinterface java.util.Map$Entry.getValue:()Ljava/lang/Object;
            checkcast jdk.tools.jlink.internal.ImageResourcesTree$Node
            invokevirtual jdk.tools.jlink.internal.ImageResourcesTree$LocationsAdder.addLocations:(Ljdk/tools/jlink/internal/ImageResourcesTree$Node;)I
            iastore
        11: .line 351
            iinc 3 /* i */ 1
        end local 4 // java.util.Map$Entry entry
        12: .line 349
      StackMap locals:
      StackMap stack:
            aload 5
            invokeinterface java.util.Iterator.hasNext:()Z
            ifne 9
        13: .line 353
            aload 1 /* current */
            aload 0 /* this */
            getfield jdk.tools.jlink.internal.ImageResourcesTree$LocationsAdder.tree:Ljdk/tools/jlink/internal/ImageResourcesTree$Tree;
            invokevirtual jdk.tools.jlink.internal.ImageResourcesTree$Tree.getRoot:()Ljdk/tools/jlink/internal/ImageResourcesTree$Node;
            if_acmpeq 17
            aload 1 /* current */
            instanceof jdk.tools.jlink.internal.ImageResourcesTree$ResourceNode
            ifne 17
        14: .line 354
            aload 2 /* ret */
            arraylength
            iconst_4
            imul
            istore 4 /* size */
        start local 4 // int size
        15: .line 355
            aload 0 /* this */
            getfield jdk.tools.jlink.internal.ImageResourcesTree$LocationsAdder.writer:Ljdk/tools/jlink/internal/BasicImageWriter;
            aload 1 /* current */
            invokevirtual jdk.tools.jlink.internal.ImageResourcesTree$Node.getPath:()Ljava/lang/String;
            aload 0 /* this */
            getfield jdk.tools.jlink.internal.ImageResourcesTree$LocationsAdder.offset:J
            lconst_0
            iload 4 /* size */
            i2l
            invokevirtual jdk.tools.jlink.internal.BasicImageWriter.addLocation:(Ljava/lang/String;JJJ)V
        16: .line 356
            aload 0 /* this */
            dup
            getfield jdk.tools.jlink.internal.ImageResourcesTree$LocationsAdder.offset:J
            iload 4 /* size */
            i2l
            ladd
            putfield jdk.tools.jlink.internal.ImageResourcesTree$LocationsAdder.offset:J
        end local 4 // int size
        end local 3 // int i
        end local 2 // int[] ret
        17: .line 359
      StackMap locals: jdk.tools.jlink.internal.ImageResourcesTree$LocationsAdder jdk.tools.jlink.internal.ImageResourcesTree$Node
      StackMap stack:
            iconst_0
            ireturn
        end local 1 // jdk.tools.jlink.internal.ImageResourcesTree$Node current
        end local 0 // jdk.tools.jlink.internal.ImageResourcesTree$LocationsAdder this
      LocalVariableTable:
        Start  End  Slot     Name  Signature
            0   18     0     this  Ljdk/tools/jlink/internal/ImageResourcesTree$LocationsAdder;
            0   18     1  current  Ljdk/tools/jlink/internal/ImageResourcesTree$Node;
            2    5     2  pkgNode  Ljdk/tools/jlink/internal/ImageResourcesTree$PackageNode;
            3    5     3     size  I
            7   17     2      ret  [I
            8   17     3        i  I
           10   12     4    entry  Ljava/util/Map$Entry<Ljava/lang/String;Ljdk/tools/jlink/internal/ImageResourcesTree$Node;>;
           15   17     4     size  I
    MethodParameters:
         Name  Flags
      current  

  private java.util.List<byte[]> computeContent();
    descriptor: ()Ljava/util/List;
    flags: (0x0002) ACC_PRIVATE
    Code:
      stack=3, locals=6, args_size=1
        start local 0 // jdk.tools.jlink.internal.ImageResourcesTree$LocationsAdder this
         0: .line 364
            new java.util.HashMap
            dup
            invokespecial java.util.HashMap.<init>:()V
            astore 1 /* outLocations */
        start local 1 // java.util.Map outLocations
         1: .line 365
            aload 0 /* this */
            getfield jdk.tools.jlink.internal.ImageResourcesTree$LocationsAdder.writer:Ljdk/tools/jlink/internal/BasicImageWriter;
            invokevirtual jdk.tools.jlink.internal.BasicImageWriter.getLocations:()[Ljdk/tools/jlink/internal/ImageLocationWriter;
            dup
            astore 5
            arraylength
            istore 4
            iconst_0
            istore 3
            goto 5
      StackMap locals: jdk.tools.jlink.internal.ImageResourcesTree$LocationsAdder java.util.Map top int int jdk.tools.jlink.internal.ImageLocationWriter[]
      StackMap stack:
         2: aload 5
            iload 3
            aaload
            astore 2 /* wr */
        start local 2 // jdk.tools.jlink.internal.ImageLocationWriter wr
         3: .line 366
            aload 1 /* outLocations */
            aload 2 /* wr */
            invokevirtual jdk.tools.jlink.internal.ImageLocationWriter.getFullName:()Ljava/lang/String;
            aload 2 /* wr */
            invokeinterface java.util.Map.put:(Ljava/lang/Object;Ljava/lang/Object;)Ljava/lang/Object;
            pop
        end local 2 // jdk.tools.jlink.internal.ImageLocationWriter wr
         4: .line 365
            iinc 3 1
      StackMap locals:
      StackMap stack:
         5: iload 3
            iload 4
            if_icmplt 2
         6: .line 369
            aload 1 /* outLocations */
            invokeinterface java.util.Map.entrySet:()Ljava/util/Set;
            invokeinterface java.util.Set.iterator:()Ljava/util/Iterator;
            astore 3
            goto 11
      StackMap locals: jdk.tools.jlink.internal.ImageResourcesTree$LocationsAdder java.util.Map top java.util.Iterator
      StackMap stack:
         7: aload 3
            invokeinterface java.util.Iterator.next:()Ljava/lang/Object;
            checkcast java.util.Map$Entry
            astore 2 /* entry */
        start local 2 // java.util.Map$Entry entry
         8: .line 370
            aload 0 /* this */
            getfield jdk.tools.jlink.internal.ImageResourcesTree$LocationsAdder.tree:Ljdk/tools/jlink/internal/ImageResourcesTree$Tree;
            invokevirtual jdk.tools.jlink.internal.ImageResourcesTree$Tree.getMap:()Ljava/util/Map;
            aload 2 /* entry */
            invokeinterface java.util.Map$Entry.getKey:()Ljava/lang/Object;
            invokeinterface java.util.Map.get:(Ljava/lang/Object;)Ljava/lang/Object;
            checkcast jdk.tools.jlink.internal.ImageResourcesTree$Node
            astore 4 /* item */
        start local 4 // jdk.tools.jlink.internal.ImageResourcesTree$Node item
         9: .line 371
            aload 4 /* item */
            ifnull 11
        10: .line 372
            aload 4 /* item */
            aload 2 /* entry */
            invokeinterface java.util.Map$Entry.getValue:()Ljava/lang/Object;
            checkcast jdk.tools.jlink.internal.ImageLocationWriter
            putfield jdk.tools.jlink.internal.ImageResourcesTree$Node.loc:Ljdk/tools/jlink/internal/ImageLocationWriter;
        end local 4 // jdk.tools.jlink.internal.ImageResourcesTree$Node item
        end local 2 // java.util.Map$Entry entry
        11: .line 369
      StackMap locals:
      StackMap stack:
            aload 3
            invokeinterface java.util.Iterator.hasNext:()Z
            ifne 7
        12: .line 375
            aload 0 /* this */
            aload 0 /* this */
            getfield jdk.tools.jlink.internal.ImageResourcesTree$LocationsAdder.tree:Ljdk/tools/jlink/internal/ImageResourcesTree$Tree;
            invokevirtual jdk.tools.jlink.internal.ImageResourcesTree$Tree.getRoot:()Ljdk/tools/jlink/internal/ImageResourcesTree$Node;
            aload 1 /* outLocations */
            invokevirtual jdk.tools.jlink.internal.ImageResourcesTree$LocationsAdder.computeContent:(Ljdk/tools/jlink/internal/ImageResourcesTree$Node;Ljava/util/Map;)I
            pop
        13: .line 376
            aload 0 /* this */
            getfield jdk.tools.jlink.internal.ImageResourcesTree$LocationsAdder.content:Ljava/util/List;
            areturn
        end local 1 // java.util.Map outLocations
        end local 0 // jdk.tools.jlink.internal.ImageResourcesTree$LocationsAdder this
      LocalVariableTable:
        Start  End  Slot          Name  Signature
            0   14     0          this  Ljdk/tools/jlink/internal/ImageResourcesTree$LocationsAdder;
            1   14     1  outLocations  Ljava/util/Map<Ljava/lang/String;Ljdk/tools/jlink/internal/ImageLocationWriter;>;
            3    4     2            wr  Ljdk/tools/jlink/internal/ImageLocationWriter;
            8   11     2         entry  Ljava/util/Map$Entry<Ljava/lang/String;Ljdk/tools/jlink/internal/ImageLocationWriter;>;
            9   11     4          item  Ljdk/tools/jlink/internal/ImageResourcesTree$Node;
    Signature: ()Ljava/util/List<[B>;

  private int computeContent(jdk.tools.jlink.internal.ImageResourcesTree$Node, java.util.Map<java.lang.String, jdk.tools.jlink.internal.ImageLocationWriter>);
    descriptor: (Ljdk/tools/jlink/internal/ImageResourcesTree$Node;Ljava/util/Map;)I
    flags: (0x0002) ACC_PRIVATE
    Code:
      stack=5, locals=11, args_size=3
        start local 0 // jdk.tools.jlink.internal.ImageResourcesTree$LocationsAdder this
        start local 1 // jdk.tools.jlink.internal.ImageResourcesTree$Node current
        start local 2 // java.util.Map outLocations
         0: .line 380
            aload 1 /* current */
            instanceof jdk.tools.jlink.internal.ImageResourcesTree$PackageNode
            ifeq 16
         1: .line 382
            aload 1 /* current */
            checkcast jdk.tools.jlink.internal.ImageResourcesTree$PackageNode
            astore 3 /* pkgNode */
        start local 3 // jdk.tools.jlink.internal.ImageResourcesTree$PackageNode pkgNode
         2: .line 383
            aload 3 /* pkgNode */
            getfield jdk.tools.jlink.internal.ImageResourcesTree$PackageNode.references:Ljava/util/Map;
            invokeinterface java.util.Map.size:()I
            bipush 8
            imul
            istore 4 /* size */
        start local 4 // int size
         3: .line 384
            iload 4 /* size */
            invokestatic java.nio.ByteBuffer.allocate:(I)Ljava/nio/ByteBuffer;
            astore 5 /* buff */
        start local 5 // java.nio.ByteBuffer buff
         4: .line 385
            aload 5 /* buff */
            aload 0 /* this */
            getfield jdk.tools.jlink.internal.ImageResourcesTree$LocationsAdder.writer:Ljdk/tools/jlink/internal/BasicImageWriter;
            invokevirtual jdk.tools.jlink.internal.BasicImageWriter.getByteOrder:()Ljava/nio/ByteOrder;
            invokevirtual java.nio.ByteBuffer.order:(Ljava/nio/ByteOrder;)Ljava/nio/ByteBuffer;
            pop
         5: .line 386
            aload 3 /* pkgNode */
            getfield jdk.tools.jlink.internal.ImageResourcesTree$PackageNode.references:Ljava/util/Map;
            invokeinterface java.util.Map.values:()Ljava/util/Collection;
            invokeinterface java.util.Collection.iterator:()Ljava/util/Iterator;
            astore 7
            goto 11
      StackMap locals: jdk.tools.jlink.internal.ImageResourcesTree$LocationsAdder jdk.tools.jlink.internal.ImageResourcesTree$Node java.util.Map jdk.tools.jlink.internal.ImageResourcesTree$PackageNode int java.nio.ByteBuffer top java.util.Iterator
      StackMap stack:
         6: aload 7
            invokeinterface java.util.Iterator.next:()Ljava/lang/Object;
            checkcast jdk.tools.jlink.internal.ImageResourcesTree$PackageNode$PackageReference
            astore 6 /* mod */
        start local 6 // jdk.tools.jlink.internal.ImageResourcesTree$PackageNode$PackageReference mod
         7: .line 387
            aload 5 /* buff */
            aload 6 /* mod */
            getfield jdk.tools.jlink.internal.ImageResourcesTree$PackageNode$PackageReference.isEmpty:Z
            ifeq 8
            iconst_1
            goto 9
      StackMap locals: jdk.tools.jlink.internal.ImageResourcesTree$LocationsAdder jdk.tools.jlink.internal.ImageResourcesTree$Node java.util.Map jdk.tools.jlink.internal.ImageResourcesTree$PackageNode int java.nio.ByteBuffer jdk.tools.jlink.internal.ImageResourcesTree$PackageNode$PackageReference java.util.Iterator
      StackMap stack: java.nio.ByteBuffer
         8: iconst_0
      StackMap locals: jdk.tools.jlink.internal.ImageResourcesTree$LocationsAdder jdk.tools.jlink.internal.ImageResourcesTree$Node java.util.Map jdk.tools.jlink.internal.ImageResourcesTree$PackageNode int java.nio.ByteBuffer jdk.tools.jlink.internal.ImageResourcesTree$PackageNode$PackageReference java.util.Iterator
      StackMap stack: java.nio.ByteBuffer int
         9: invokevirtual java.nio.ByteBuffer.putInt:(I)Ljava/nio/ByteBuffer;
            pop
        10: .line 388
            aload 5 /* buff */
            aload 0 /* this */
            getfield jdk.tools.jlink.internal.ImageResourcesTree$LocationsAdder.writer:Ljdk/tools/jlink/internal/BasicImageWriter;
            aload 6 /* mod */
            getfield jdk.tools.jlink.internal.ImageResourcesTree$PackageNode$PackageReference.name:Ljava/lang/String;
            invokevirtual jdk.tools.jlink.internal.BasicImageWriter.addString:(Ljava/lang/String;)I
            invokevirtual java.nio.ByteBuffer.putInt:(I)Ljava/nio/ByteBuffer;
            pop
        end local 6 // jdk.tools.jlink.internal.ImageResourcesTree$PackageNode$PackageReference mod
        11: .line 386
      StackMap locals: jdk.tools.jlink.internal.ImageResourcesTree$LocationsAdder jdk.tools.jlink.internal.ImageResourcesTree$Node java.util.Map jdk.tools.jlink.internal.ImageResourcesTree$PackageNode int java.nio.ByteBuffer top java.util.Iterator
      StackMap stack:
            aload 7
            invokeinterface java.util.Iterator.hasNext:()Z
            ifne 6
        12: .line 390
            aload 5 /* buff */
            invokevirtual java.nio.ByteBuffer.array:()[B
            astore 6 /* arr */
        start local 6 // byte[] arr
        13: .line 391
            aload 0 /* this */
            getfield jdk.tools.jlink.internal.ImageResourcesTree$LocationsAdder.content:Ljava/util/List;
            aload 6 /* arr */
            invokeinterface java.util.List.add:(Ljava/lang/Object;)Z
            pop
        14: .line 392
            aload 1 /* current */
            aload 2 /* outLocations */
            aload 1 /* current */
            invokevirtual jdk.tools.jlink.internal.ImageResourcesTree$Node.getPath:()Ljava/lang/String;
            invokeinterface java.util.Map.get:(Ljava/lang/Object;)Ljava/lang/Object;
            checkcast jdk.tools.jlink.internal.ImageLocationWriter
            putfield jdk.tools.jlink.internal.ImageResourcesTree$Node.loc:Ljdk/tools/jlink/internal/ImageLocationWriter;
        end local 6 // byte[] arr
        end local 5 // java.nio.ByteBuffer buff
        end local 4 // int size
        end local 3 // jdk.tools.jlink.internal.ImageResourcesTree$PackageNode pkgNode
        15: .line 393
            goto 42
        16: .line 394
      StackMap locals: jdk.tools.jlink.internal.ImageResourcesTree$LocationsAdder jdk.tools.jlink.internal.ImageResourcesTree$Node java.util.Map
      StackMap stack:
            aload 1 /* current */
            getfield jdk.tools.jlink.internal.ImageResourcesTree$Node.children:Ljava/util/Map;
            invokeinterface java.util.Map.size:()I
            newarray 10
            astore 3 /* ret */
        start local 3 // int[] ret
        17: .line 395
            iconst_0
            istore 4 /* i */
        start local 4 // int i
        18: .line 396
            aload 1 /* current */
            getfield jdk.tools.jlink.internal.ImageResourcesTree$Node.children:Ljava/util/Map;
            invokeinterface java.util.Map.entrySet:()Ljava/util/Set;
            invokeinterface java.util.Set.iterator:()Ljava/util/Iterator;
            astore 6
            goto 22
      StackMap locals: jdk.tools.jlink.internal.ImageResourcesTree$LocationsAdder jdk.tools.jlink.internal.ImageResourcesTree$Node java.util.Map int[] int top java.util.Iterator
      StackMap stack:
        19: aload 6
            invokeinterface java.util.Iterator.next:()Ljava/lang/Object;
            checkcast java.util.Map$Entry
            astore 5 /* entry */
        start local 5 // java.util.Map$Entry entry
        20: .line 397
            aload 3 /* ret */
            iload 4 /* i */
            aload 0 /* this */
            aload 5 /* entry */
            invokeinterface java.util.Map$Entry.getValue:()Ljava/lang/Object;
            checkcast jdk.tools.jlink.internal.ImageResourcesTree$Node
            aload 2 /* outLocations */
            invokevirtual jdk.tools.jlink.internal.ImageResourcesTree$LocationsAdder.computeContent:(Ljdk/tools/jlink/internal/ImageResourcesTree$Node;Ljava/util/Map;)I
            iastore
        21: .line 398
            iinc 4 /* i */ 1
        end local 5 // java.util.Map$Entry entry
        22: .line 396
      StackMap locals:
      StackMap stack:
            aload 6
            invokeinterface java.util.Iterator.hasNext:()Z
            ifne 19
        23: .line 400
            aload 3 /* ret */
            arraylength
            ifle 35
        24: .line 401
            aload 3 /* ret */
            arraylength
            iconst_4
            imul
            istore 5 /* size */
        start local 5 // int size
        25: .line 402
            iload 5 /* size */
            invokestatic java.nio.ByteBuffer.allocate:(I)Ljava/nio/ByteBuffer;
            astore 6 /* buff */
        start local 6 // java.nio.ByteBuffer buff
        26: .line 403
            aload 6 /* buff */
            aload 0 /* this */
            getfield jdk.tools.jlink.internal.ImageResourcesTree$LocationsAdder.writer:Ljdk/tools/jlink/internal/BasicImageWriter;
            invokevirtual jdk.tools.jlink.internal.BasicImageWriter.getByteOrder:()Ljava/nio/ByteOrder;
            invokevirtual java.nio.ByteBuffer.order:(Ljava/nio/ByteOrder;)Ljava/nio/ByteBuffer;
            pop
        27: .line 404
            aload 3 /* ret */
            dup
            astore 10
            arraylength
            istore 9
            iconst_0
            istore 8
            goto 31
      StackMap locals: jdk.tools.jlink.internal.ImageResourcesTree$LocationsAdder jdk.tools.jlink.internal.ImageResourcesTree$Node java.util.Map int[] int int java.nio.ByteBuffer top int int int[]
      StackMap stack:
        28: aload 10
            iload 8
            iaload
            istore 7 /* val */
        start local 7 // int val
        29: .line 405
            aload 6 /* buff */
            iload 7 /* val */
            invokevirtual java.nio.ByteBuffer.putInt:(I)Ljava/nio/ByteBuffer;
            pop
        end local 7 // int val
        30: .line 404
            iinc 8 1
      StackMap locals:
      StackMap stack:
        31: iload 8
            iload 9
            if_icmplt 28
        32: .line 407
            aload 6 /* buff */
            invokevirtual java.nio.ByteBuffer.array:()[B
            astore 7 /* arr */
        start local 7 // byte[] arr
        33: .line 408
            aload 0 /* this */
            getfield jdk.tools.jlink.internal.ImageResourcesTree$LocationsAdder.content:Ljava/util/List;
            aload 7 /* arr */
            invokeinterface java.util.List.add:(Ljava/lang/Object;)Z
            pop
        end local 7 // byte[] arr
        end local 6 // java.nio.ByteBuffer buff
        end local 5 // int size
        34: .line 409
            goto 40
        35: .line 410
      StackMap locals: jdk.tools.jlink.internal.ImageResourcesTree$LocationsAdder jdk.tools.jlink.internal.ImageResourcesTree$Node java.util.Map int[] int
      StackMap stack:
            aload 1 /* current */
            instanceof jdk.tools.jlink.internal.ImageResourcesTree$ResourceNode
            ifeq 39
        36: .line 412
            aload 0 /* this */
            getfield jdk.tools.jlink.internal.ImageResourcesTree$LocationsAdder.tree:Ljdk/tools/jlink/internal/ImageResourcesTree$Tree;
            aload 1 /* current */
            invokevirtual jdk.tools.jlink.internal.ImageResourcesTree$Tree.toResourceName:(Ljdk/tools/jlink/internal/ImageResourcesTree$Node;)Ljava/lang/String;
            astore 5 /* s */
        start local 5 // java.lang.String s
        37: .line 413
            aload 1 /* current */
            aload 2 /* outLocations */
            aload 5 /* s */
            invokeinterface java.util.Map.get:(Ljava/lang/Object;)Ljava/lang/Object;
            checkcast jdk.tools.jlink.internal.ImageLocationWriter
            putfield jdk.tools.jlink.internal.ImageResourcesTree$Node.loc:Ljdk/tools/jlink/internal/ImageLocationWriter;
        end local 5 // java.lang.String s
        38: .line 414
            goto 40
        39: .line 416
      StackMap locals:
      StackMap stack:
            aload 1 /* current */
            aload 2 /* outLocations */
            aload 1 /* current */
            invokevirtual jdk.tools.jlink.internal.ImageResourcesTree$Node.getPath:()Ljava/lang/String;
            invokeinterface java.util.Map.get:(Ljava/lang/Object;)Ljava/lang/Object;
            checkcast jdk.tools.jlink.internal.ImageLocationWriter
            putfield jdk.tools.jlink.internal.ImageResourcesTree$Node.loc:Ljdk/tools/jlink/internal/ImageLocationWriter;
        40: .line 419
      StackMap locals:
      StackMap stack:
            aload 1 /* current */
            getfield jdk.tools.jlink.internal.ImageResourcesTree$Node.loc:Ljdk/tools/jlink/internal/ImageLocationWriter;
            ifnonnull 42
            aload 1 /* current */
            aload 0 /* this */
            getfield jdk.tools.jlink.internal.ImageResourcesTree$LocationsAdder.tree:Ljdk/tools/jlink/internal/ImageResourcesTree$Tree;
            invokevirtual jdk.tools.jlink.internal.ImageResourcesTree$Tree.getRoot:()Ljdk/tools/jlink/internal/ImageResourcesTree$Node;
            if_acmpeq 42
        41: .line 420
            getstatic java.lang.System.err:Ljava/io/PrintStream;
            new java.lang.StringBuilder
            dup
            ldc "Invalid path in metadata, skipping "
            invokespecial java.lang.StringBuilder.<init>:(Ljava/lang/String;)V
            aload 1 /* current */
            invokevirtual jdk.tools.jlink.internal.ImageResourcesTree$Node.getPath:()Ljava/lang/String;
            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
        end local 4 // int i
        end local 3 // int[] ret
        42: .line 423
      StackMap locals:
      StackMap stack:
            aload 1 /* current */
            getfield jdk.tools.jlink.internal.ImageResourcesTree$Node.loc:Ljdk/tools/jlink/internal/ImageLocationWriter;
            ifnonnull 43
            iconst_0
            goto 44
      StackMap locals:
      StackMap stack:
        43: aload 1 /* current */
            getfield jdk.tools.jlink.internal.ImageResourcesTree$Node.loc:Ljdk/tools/jlink/internal/ImageLocationWriter;
            invokevirtual jdk.tools.jlink.internal.ImageLocationWriter.getLocationOffset:()I
      StackMap locals:
      StackMap stack: int
        44: ireturn
        end local 2 // java.util.Map outLocations
        end local 1 // jdk.tools.jlink.internal.ImageResourcesTree$Node current
        end local 0 // jdk.tools.jlink.internal.ImageResourcesTree$LocationsAdder this
      LocalVariableTable:
        Start  End  Slot          Name  Signature
            0   45     0          this  Ljdk/tools/jlink/internal/ImageResourcesTree$LocationsAdder;
            0   45     1       current  Ljdk/tools/jlink/internal/ImageResourcesTree$Node;
            0   45     2  outLocations  Ljava/util/Map<Ljava/lang/String;Ljdk/tools/jlink/internal/ImageLocationWriter;>;
            2   15     3       pkgNode  Ljdk/tools/jlink/internal/ImageResourcesTree$PackageNode;
            3   15     4          size  I
            4   15     5          buff  Ljava/nio/ByteBuffer;
            7   11     6           mod  Ljdk/tools/jlink/internal/ImageResourcesTree$PackageNode$PackageReference;
           13   15     6           arr  [B
           17   42     3           ret  [I
           18   42     4             i  I
           20   22     5         entry  Ljava/util/Map$Entry<Ljava/lang/String;Ljdk/tools/jlink/internal/ImageResourcesTree$Node;>;
           25   34     5          size  I
           26   34     6          buff  Ljava/nio/ByteBuffer;
           29   30     7           val  I
           33   34     7           arr  [B
           37   38     5             s  Ljava/lang/String;
    Signature: (Ljdk/tools/jlink/internal/ImageResourcesTree$Node;Ljava/util/Map<Ljava/lang/String;Ljdk/tools/jlink/internal/ImageLocationWriter;>;)I
    MethodParameters:
              Name  Flags
      current       
      outLocations  
}
SourceFile: "ImageResourcesTree.java"
NestHost: jdk.tools.jlink.internal.ImageResourcesTree
InnerClasses:
  public abstract Entry = java.util.Map$Entry of java.util.Map
  private final LocationsAdder = jdk.tools.jlink.internal.ImageResourcesTree$LocationsAdder of jdk.tools.jlink.internal.ImageResourcesTree
  private Node = jdk.tools.jlink.internal.ImageResourcesTree$Node of jdk.tools.jlink.internal.ImageResourcesTree
  private PackageNode = jdk.tools.jlink.internal.ImageResourcesTree$PackageNode of jdk.tools.jlink.internal.ImageResourcesTree
  final PackageReference = jdk.tools.jlink.internal.ImageResourcesTree$PackageNode$PackageReference of jdk.tools.jlink.internal.ImageResourcesTree$PackageNode
  private final ResourceNode = jdk.tools.jlink.internal.ImageResourcesTree$ResourceNode of jdk.tools.jlink.internal.ImageResourcesTree
  private final Tree = jdk.tools.jlink.internal.ImageResourcesTree$Tree of jdk.tools.jlink.internal.ImageResourcesTree