class java.io.ObjectOutputStream$PutFieldImpl extends java.io.ObjectOutputStream$PutField
  minor version: 0
  major version: 59
  flags: flags: (0x0020) ACC_SUPER
  this_class: java.io.ObjectOutputStream$PutFieldImpl
  super_class: java.io.ObjectOutputStream$PutField
{
  private final java.io.ObjectStreamClass desc;
    descriptor: Ljava/io/ObjectStreamClass;
    flags: (0x0012) ACC_PRIVATE, ACC_FINAL

  private final byte[] primVals;
    descriptor: [B
    flags: (0x0012) ACC_PRIVATE, ACC_FINAL

  private final java.lang.Object[] objVals;
    descriptor: [Ljava/lang/Object;
    flags: (0x0012) ACC_PRIVATE, ACC_FINAL

  final java.io.ObjectOutputStream this$0;
    descriptor: Ljava/io/ObjectOutputStream;
    flags: (0x1010) ACC_FINAL, ACC_SYNTHETIC

  void <init>(java.io.ObjectOutputStream, java.io.ObjectStreamClass);
    descriptor: (Ljava/io/ObjectOutputStream;Ljava/io/ObjectStreamClass;)V
    flags: (0x0000) 
    Code:
      stack=2, locals=3, args_size=3
        start local 0 // java.io.ObjectOutputStream$PutFieldImpl this
        start local 2 // java.io.ObjectStreamClass desc
         0: .line 1616
            aload 0 /* this */
            aload 1
            putfield java.io.ObjectOutputStream$PutFieldImpl.this$0:Ljava/io/ObjectOutputStream;
            aload 0 /* this */
            invokespecial java.io.ObjectOutputStream$PutField.<init>:()V
         1: .line 1617
            aload 0 /* this */
            aload 2 /* desc */
            putfield java.io.ObjectOutputStream$PutFieldImpl.desc:Ljava/io/ObjectStreamClass;
         2: .line 1618
            aload 0 /* this */
            aload 2 /* desc */
            invokevirtual java.io.ObjectStreamClass.getPrimDataSize:()I
            newarray 8
            putfield java.io.ObjectOutputStream$PutFieldImpl.primVals:[B
         3: .line 1619
            aload 0 /* this */
            aload 2 /* desc */
            invokevirtual java.io.ObjectStreamClass.getNumObjFields:()I
            anewarray java.lang.Object
            putfield java.io.ObjectOutputStream$PutFieldImpl.objVals:[Ljava/lang/Object;
         4: .line 1620
            return
        end local 2 // java.io.ObjectStreamClass desc
        end local 0 // java.io.ObjectOutputStream$PutFieldImpl this
      LocalVariableTable:
        Start  End  Slot  Name  Signature
            0    5     0  this  Ljava/io/ObjectOutputStream$PutFieldImpl;
            0    5     2  desc  Ljava/io/ObjectStreamClass;
    MethodParameters:
        Name  Flags
      this$0  final
      desc    

  public void put(java.lang.String, boolean);
    descriptor: (Ljava/lang/String;Z)V
    flags: (0x0001) ACC_PUBLIC
    Code:
      stack=4, locals=3, args_size=3
        start local 0 // java.io.ObjectOutputStream$PutFieldImpl this
        start local 1 // java.lang.String name
        start local 2 // boolean val
         0: .line 1623
            aload 0 /* this */
            getfield java.io.ObjectOutputStream$PutFieldImpl.primVals:[B
            aload 0 /* this */
            aload 1 /* name */
            getstatic java.lang.Boolean.TYPE:Ljava/lang/Class;
            invokevirtual java.io.ObjectOutputStream$PutFieldImpl.getFieldOffset:(Ljava/lang/String;Ljava/lang/Class;)I
            iload 2 /* val */
            invokestatic java.io.Bits.putBoolean:([BIZ)V
         1: .line 1624
            return
        end local 2 // boolean val
        end local 1 // java.lang.String name
        end local 0 // java.io.ObjectOutputStream$PutFieldImpl this
      LocalVariableTable:
        Start  End  Slot  Name  Signature
            0    2     0  this  Ljava/io/ObjectOutputStream$PutFieldImpl;
            0    2     1  name  Ljava/lang/String;
            0    2     2   val  Z
    MethodParameters:
      Name  Flags
      name  
      val   

  public void put(java.lang.String, byte);
    descriptor: (Ljava/lang/String;B)V
    flags: (0x0001) ACC_PUBLIC
    Code:
      stack=4, locals=3, args_size=3
        start local 0 // java.io.ObjectOutputStream$PutFieldImpl this
        start local 1 // java.lang.String name
        start local 2 // byte val
         0: .line 1627
            aload 0 /* this */
            getfield java.io.ObjectOutputStream$PutFieldImpl.primVals:[B
            aload 0 /* this */
            aload 1 /* name */
            getstatic java.lang.Byte.TYPE:Ljava/lang/Class;
            invokevirtual java.io.ObjectOutputStream$PutFieldImpl.getFieldOffset:(Ljava/lang/String;Ljava/lang/Class;)I
            iload 2 /* val */
            bastore
         1: .line 1628
            return
        end local 2 // byte val
        end local 1 // java.lang.String name
        end local 0 // java.io.ObjectOutputStream$PutFieldImpl this
      LocalVariableTable:
        Start  End  Slot  Name  Signature
            0    2     0  this  Ljava/io/ObjectOutputStream$PutFieldImpl;
            0    2     1  name  Ljava/lang/String;
            0    2     2   val  B
    MethodParameters:
      Name  Flags
      name  
      val   

  public void put(java.lang.String, char);
    descriptor: (Ljava/lang/String;C)V
    flags: (0x0001) ACC_PUBLIC
    Code:
      stack=4, locals=3, args_size=3
        start local 0 // java.io.ObjectOutputStream$PutFieldImpl this
        start local 1 // java.lang.String name
        start local 2 // char val
         0: .line 1631
            aload 0 /* this */
            getfield java.io.ObjectOutputStream$PutFieldImpl.primVals:[B
            aload 0 /* this */
            aload 1 /* name */
            getstatic java.lang.Character.TYPE:Ljava/lang/Class;
            invokevirtual java.io.ObjectOutputStream$PutFieldImpl.getFieldOffset:(Ljava/lang/String;Ljava/lang/Class;)I
            iload 2 /* val */
            invokestatic java.io.Bits.putChar:([BIC)V
         1: .line 1632
            return
        end local 2 // char val
        end local 1 // java.lang.String name
        end local 0 // java.io.ObjectOutputStream$PutFieldImpl this
      LocalVariableTable:
        Start  End  Slot  Name  Signature
            0    2     0  this  Ljava/io/ObjectOutputStream$PutFieldImpl;
            0    2     1  name  Ljava/lang/String;
            0    2     2   val  C
    MethodParameters:
      Name  Flags
      name  
      val   

  public void put(java.lang.String, short);
    descriptor: (Ljava/lang/String;S)V
    flags: (0x0001) ACC_PUBLIC
    Code:
      stack=4, locals=3, args_size=3
        start local 0 // java.io.ObjectOutputStream$PutFieldImpl this
        start local 1 // java.lang.String name
        start local 2 // short val
         0: .line 1635
            aload 0 /* this */
            getfield java.io.ObjectOutputStream$PutFieldImpl.primVals:[B
            aload 0 /* this */
            aload 1 /* name */
            getstatic java.lang.Short.TYPE:Ljava/lang/Class;
            invokevirtual java.io.ObjectOutputStream$PutFieldImpl.getFieldOffset:(Ljava/lang/String;Ljava/lang/Class;)I
            iload 2 /* val */
            invokestatic java.io.Bits.putShort:([BIS)V
         1: .line 1636
            return
        end local 2 // short val
        end local 1 // java.lang.String name
        end local 0 // java.io.ObjectOutputStream$PutFieldImpl this
      LocalVariableTable:
        Start  End  Slot  Name  Signature
            0    2     0  this  Ljava/io/ObjectOutputStream$PutFieldImpl;
            0    2     1  name  Ljava/lang/String;
            0    2     2   val  S
    MethodParameters:
      Name  Flags
      name  
      val   

  public void put(java.lang.String, int);
    descriptor: (Ljava/lang/String;I)V
    flags: (0x0001) ACC_PUBLIC
    Code:
      stack=4, locals=3, args_size=3
        start local 0 // java.io.ObjectOutputStream$PutFieldImpl this
        start local 1 // java.lang.String name
        start local 2 // int val
         0: .line 1639
            aload 0 /* this */
            getfield java.io.ObjectOutputStream$PutFieldImpl.primVals:[B
            aload 0 /* this */
            aload 1 /* name */
            getstatic java.lang.Integer.TYPE:Ljava/lang/Class;
            invokevirtual java.io.ObjectOutputStream$PutFieldImpl.getFieldOffset:(Ljava/lang/String;Ljava/lang/Class;)I
            iload 2 /* val */
            invokestatic java.io.Bits.putInt:([BII)V
         1: .line 1640
            return
        end local 2 // int val
        end local 1 // java.lang.String name
        end local 0 // java.io.ObjectOutputStream$PutFieldImpl this
      LocalVariableTable:
        Start  End  Slot  Name  Signature
            0    2     0  this  Ljava/io/ObjectOutputStream$PutFieldImpl;
            0    2     1  name  Ljava/lang/String;
            0    2     2   val  I
    MethodParameters:
      Name  Flags
      name  
      val   

  public void put(java.lang.String, float);
    descriptor: (Ljava/lang/String;F)V
    flags: (0x0001) ACC_PUBLIC
    Code:
      stack=4, locals=3, args_size=3
        start local 0 // java.io.ObjectOutputStream$PutFieldImpl this
        start local 1 // java.lang.String name
        start local 2 // float val
         0: .line 1643
            aload 0 /* this */
            getfield java.io.ObjectOutputStream$PutFieldImpl.primVals:[B
            aload 0 /* this */
            aload 1 /* name */
            getstatic java.lang.Float.TYPE:Ljava/lang/Class;
            invokevirtual java.io.ObjectOutputStream$PutFieldImpl.getFieldOffset:(Ljava/lang/String;Ljava/lang/Class;)I
            fload 2 /* val */
            invokestatic java.io.Bits.putFloat:([BIF)V
         1: .line 1644
            return
        end local 2 // float val
        end local 1 // java.lang.String name
        end local 0 // java.io.ObjectOutputStream$PutFieldImpl this
      LocalVariableTable:
        Start  End  Slot  Name  Signature
            0    2     0  this  Ljava/io/ObjectOutputStream$PutFieldImpl;
            0    2     1  name  Ljava/lang/String;
            0    2     2   val  F
    MethodParameters:
      Name  Flags
      name  
      val   

  public void put(java.lang.String, long);
    descriptor: (Ljava/lang/String;J)V
    flags: (0x0001) ACC_PUBLIC
    Code:
      stack=4, locals=4, args_size=3
        start local 0 // java.io.ObjectOutputStream$PutFieldImpl this
        start local 1 // java.lang.String name
        start local 2 // long val
         0: .line 1647
            aload 0 /* this */
            getfield java.io.ObjectOutputStream$PutFieldImpl.primVals:[B
            aload 0 /* this */
            aload 1 /* name */
            getstatic java.lang.Long.TYPE:Ljava/lang/Class;
            invokevirtual java.io.ObjectOutputStream$PutFieldImpl.getFieldOffset:(Ljava/lang/String;Ljava/lang/Class;)I
            lload 2 /* val */
            invokestatic java.io.Bits.putLong:([BIJ)V
         1: .line 1648
            return
        end local 2 // long val
        end local 1 // java.lang.String name
        end local 0 // java.io.ObjectOutputStream$PutFieldImpl this
      LocalVariableTable:
        Start  End  Slot  Name  Signature
            0    2     0  this  Ljava/io/ObjectOutputStream$PutFieldImpl;
            0    2     1  name  Ljava/lang/String;
            0    2     2   val  J
    MethodParameters:
      Name  Flags
      name  
      val   

  public void put(java.lang.String, double);
    descriptor: (Ljava/lang/String;D)V
    flags: (0x0001) ACC_PUBLIC
    Code:
      stack=4, locals=4, args_size=3
        start local 0 // java.io.ObjectOutputStream$PutFieldImpl this
        start local 1 // java.lang.String name
        start local 2 // double val
         0: .line 1651
            aload 0 /* this */
            getfield java.io.ObjectOutputStream$PutFieldImpl.primVals:[B
            aload 0 /* this */
            aload 1 /* name */
            getstatic java.lang.Double.TYPE:Ljava/lang/Class;
            invokevirtual java.io.ObjectOutputStream$PutFieldImpl.getFieldOffset:(Ljava/lang/String;Ljava/lang/Class;)I
            dload 2 /* val */
            invokestatic java.io.Bits.putDouble:([BID)V
         1: .line 1652
            return
        end local 2 // double val
        end local 1 // java.lang.String name
        end local 0 // java.io.ObjectOutputStream$PutFieldImpl this
      LocalVariableTable:
        Start  End  Slot  Name  Signature
            0    2     0  this  Ljava/io/ObjectOutputStream$PutFieldImpl;
            0    2     1  name  Ljava/lang/String;
            0    2     2   val  D
    MethodParameters:
      Name  Flags
      name  
      val   

  public void put(java.lang.String, java.lang.Object);
    descriptor: (Ljava/lang/String;Ljava/lang/Object;)V
    flags: (0x0001) ACC_PUBLIC
    Code:
      stack=4, locals=3, args_size=3
        start local 0 // java.io.ObjectOutputStream$PutFieldImpl this
        start local 1 // java.lang.String name
        start local 2 // java.lang.Object val
         0: .line 1655
            aload 0 /* this */
            getfield java.io.ObjectOutputStream$PutFieldImpl.objVals:[Ljava/lang/Object;
            aload 0 /* this */
            aload 1 /* name */
            ldc Ljava/lang/Object;
            invokevirtual java.io.ObjectOutputStream$PutFieldImpl.getFieldOffset:(Ljava/lang/String;Ljava/lang/Class;)I
            aload 2 /* val */
            aastore
         1: .line 1656
            return
        end local 2 // java.lang.Object val
        end local 1 // java.lang.String name
        end local 0 // java.io.ObjectOutputStream$PutFieldImpl this
      LocalVariableTable:
        Start  End  Slot  Name  Signature
            0    2     0  this  Ljava/io/ObjectOutputStream$PutFieldImpl;
            0    2     1  name  Ljava/lang/String;
            0    2     2   val  Ljava/lang/Object;
    MethodParameters:
      Name  Flags
      name  
      val   

  public void write(java.io.ObjectOutput);
    descriptor: (Ljava/io/ObjectOutput;)V
    flags: (0x0001) ACC_PUBLIC
    Code:
      stack=4, locals=5, args_size=2
        start local 0 // java.io.ObjectOutputStream$PutFieldImpl this
        start local 1 // java.io.ObjectOutput out
         0: .line 1675
            aload 0 /* this */
            getfield java.io.ObjectOutputStream$PutFieldImpl.this$0:Ljava/io/ObjectOutputStream;
            aload 1 /* out */
            if_acmpeq 2
         1: .line 1676
            new java.lang.IllegalArgumentException
            dup
            ldc "wrong stream"
            invokespecial java.lang.IllegalArgumentException.<init>:(Ljava/lang/String;)V
            athrow
         2: .line 1678
      StackMap locals:
      StackMap stack:
            aload 1 /* out */
            aload 0 /* this */
            getfield java.io.ObjectOutputStream$PutFieldImpl.primVals:[B
            iconst_0
            aload 0 /* this */
            getfield java.io.ObjectOutputStream$PutFieldImpl.primVals:[B
            arraylength
            invokeinterface java.io.ObjectOutput.write:([BII)V
         3: .line 1680
            aload 0 /* this */
            getfield java.io.ObjectOutputStream$PutFieldImpl.desc:Ljava/io/ObjectStreamClass;
            iconst_0
            invokevirtual java.io.ObjectStreamClass.getFields:(Z)[Ljava/io/ObjectStreamField;
            astore 2 /* fields */
        start local 2 // java.io.ObjectStreamField[] fields
         4: .line 1681
            aload 2 /* fields */
            arraylength
            aload 0 /* this */
            getfield java.io.ObjectOutputStream$PutFieldImpl.objVals:[Ljava/lang/Object;
            arraylength
            isub
            istore 3 /* numPrimFields */
        start local 3 // int numPrimFields
         5: .line 1683
            iconst_0
            istore 4 /* i */
        start local 4 // int i
         6: goto 11
         7: .line 1684
      StackMap locals: java.io.ObjectStreamField[] int int
      StackMap stack:
            aload 2 /* fields */
            iload 3 /* numPrimFields */
            iload 4 /* i */
            iadd
            aaload
            invokevirtual java.io.ObjectStreamField.isUnshared:()Z
            ifeq 9
         8: .line 1685
            new java.io.IOException
            dup
            ldc "cannot write unshared object"
            invokespecial java.io.IOException.<init>:(Ljava/lang/String;)V
            athrow
         9: .line 1687
      StackMap locals:
      StackMap stack:
            aload 1 /* out */
            aload 0 /* this */
            getfield java.io.ObjectOutputStream$PutFieldImpl.objVals:[Ljava/lang/Object;
            iload 4 /* i */
            aaload
            invokeinterface java.io.ObjectOutput.writeObject:(Ljava/lang/Object;)V
        10: .line 1683
            iinc 4 /* i */ 1
      StackMap locals:
      StackMap stack:
        11: iload 4 /* i */
            aload 0 /* this */
            getfield java.io.ObjectOutputStream$PutFieldImpl.objVals:[Ljava/lang/Object;
            arraylength
            if_icmplt 7
        end local 4 // int i
        12: .line 1689
            return
        end local 3 // int numPrimFields
        end local 2 // java.io.ObjectStreamField[] fields
        end local 1 // java.io.ObjectOutput out
        end local 0 // java.io.ObjectOutputStream$PutFieldImpl this
      LocalVariableTable:
        Start  End  Slot           Name  Signature
            0   13     0           this  Ljava/io/ObjectOutputStream$PutFieldImpl;
            0   13     1            out  Ljava/io/ObjectOutput;
            4   13     2         fields  [Ljava/io/ObjectStreamField;
            5   13     3  numPrimFields  I
            6   12     4              i  I
    Exceptions:
      throws java.io.IOException
    MethodParameters:
      Name  Flags
      out   

  void writeFields();
    descriptor: ()V
    flags: (0x0000) 
    Code:
      stack=5, locals=5, args_size=1
        start local 0 // java.io.ObjectOutputStream$PutFieldImpl this
         0: .line 1695
            aload 0 /* this */
            getfield java.io.ObjectOutputStream$PutFieldImpl.this$0:Ljava/io/ObjectOutputStream;
            getfield java.io.ObjectOutputStream.bout:Ljava/io/ObjectOutputStream$BlockDataOutputStream;
            aload 0 /* this */
            getfield java.io.ObjectOutputStream$PutFieldImpl.primVals:[B
            iconst_0
            aload 0 /* this */
            getfield java.io.ObjectOutputStream$PutFieldImpl.primVals:[B
            arraylength
            iconst_0
            invokevirtual java.io.ObjectOutputStream$BlockDataOutputStream.write:([BIIZ)V
         1: .line 1697
            aload 0 /* this */
            getfield java.io.ObjectOutputStream$PutFieldImpl.desc:Ljava/io/ObjectStreamClass;
            iconst_0
            invokevirtual java.io.ObjectStreamClass.getFields:(Z)[Ljava/io/ObjectStreamField;
            astore 1 /* fields */
        start local 1 // java.io.ObjectStreamField[] fields
         2: .line 1698
            aload 1 /* fields */
            arraylength
            aload 0 /* this */
            getfield java.io.ObjectOutputStream$PutFieldImpl.objVals:[Ljava/lang/Object;
            arraylength
            isub
            istore 2 /* numPrimFields */
        start local 2 // int numPrimFields
         3: .line 1699
            iconst_0
            istore 3 /* i */
        start local 3 // int i
         4: goto 23
         5: .line 1700
      StackMap locals: java.io.ObjectStreamField[] int int
      StackMap stack:
            getstatic java.io.ObjectOutputStream.extendedDebugInfo:Z
            ifeq 12
         6: .line 1701
            aload 0 /* this */
            getfield java.io.ObjectOutputStream$PutFieldImpl.this$0:Ljava/io/ObjectOutputStream;
            getfield java.io.ObjectOutputStream.debugInfoStack:Ljava/io/ObjectOutputStream$DebugTraceInfoStack;
         7: .line 1702
            new java.lang.StringBuilder
            dup
            ldc "field (class \""
            invokespecial java.lang.StringBuilder.<init>:(Ljava/lang/String;)V
            aload 0 /* this */
            getfield java.io.ObjectOutputStream$PutFieldImpl.desc:Ljava/io/ObjectStreamClass;
            invokevirtual java.io.ObjectStreamClass.getName:()Ljava/lang/String;
            invokevirtual java.lang.StringBuilder.append:(Ljava/lang/String;)Ljava/lang/StringBuilder;
            ldc "\", name: \""
            invokevirtual java.lang.StringBuilder.append:(Ljava/lang/String;)Ljava/lang/StringBuilder;
         8: .line 1703
            aload 1 /* fields */
            iload 2 /* numPrimFields */
            iload 3 /* i */
            iadd
            aaload
            invokevirtual java.io.ObjectStreamField.getName:()Ljava/lang/String;
            invokevirtual java.lang.StringBuilder.append:(Ljava/lang/String;)Ljava/lang/StringBuilder;
            ldc "\", type: \""
            invokevirtual java.lang.StringBuilder.append:(Ljava/lang/String;)Ljava/lang/StringBuilder;
         9: .line 1704
            aload 1 /* fields */
            iload 2 /* numPrimFields */
            iload 3 /* i */
            iadd
            aaload
            invokevirtual java.io.ObjectStreamField.getType:()Ljava/lang/Class;
            invokevirtual java.lang.StringBuilder.append:(Ljava/lang/Object;)Ljava/lang/StringBuilder;
            ldc "\")"
            invokevirtual java.lang.StringBuilder.append:(Ljava/lang/String;)Ljava/lang/StringBuilder;
        10: .line 1702
            invokevirtual java.lang.StringBuilder.toString:()Ljava/lang/String;
        11: .line 1701
            invokevirtual java.io.ObjectOutputStream$DebugTraceInfoStack.push:(Ljava/lang/String;)V
        12: .line 1707
      StackMap locals:
      StackMap stack:
            aload 0 /* this */
            getfield java.io.ObjectOutputStream$PutFieldImpl.this$0:Ljava/io/ObjectOutputStream;
            aload 0 /* this */
            getfield java.io.ObjectOutputStream$PutFieldImpl.objVals:[Ljava/lang/Object;
            iload 3 /* i */
            aaload
        13: .line 1708
            aload 1 /* fields */
            iload 2 /* numPrimFields */
            iload 3 /* i */
            iadd
            aaload
            invokevirtual java.io.ObjectStreamField.isUnshared:()Z
        14: .line 1707
            invokevirtual java.io.ObjectOutputStream.writeObject0:(Ljava/lang/Object;Z)V
        15: .line 1709
            goto 20
      StackMap locals:
      StackMap stack: java.lang.Throwable
        16: astore 4
        17: .line 1710
            getstatic java.io.ObjectOutputStream.extendedDebugInfo:Z
            ifeq 19
        18: .line 1711
            aload 0 /* this */
            getfield java.io.ObjectOutputStream$PutFieldImpl.this$0:Ljava/io/ObjectOutputStream;
            getfield java.io.ObjectOutputStream.debugInfoStack:Ljava/io/ObjectOutputStream$DebugTraceInfoStack;
            invokevirtual java.io.ObjectOutputStream$DebugTraceInfoStack.pop:()V
        19: .line 1713
      StackMap locals: java.lang.Throwable
      StackMap stack:
            aload 4
            athrow
        20: .line 1710
      StackMap locals:
      StackMap stack:
            getstatic java.io.ObjectOutputStream.extendedDebugInfo:Z
            ifeq 22
        21: .line 1711
            aload 0 /* this */
            getfield java.io.ObjectOutputStream$PutFieldImpl.this$0:Ljava/io/ObjectOutputStream;
            getfield java.io.ObjectOutputStream.debugInfoStack:Ljava/io/ObjectOutputStream$DebugTraceInfoStack;
            invokevirtual java.io.ObjectOutputStream$DebugTraceInfoStack.pop:()V
        22: .line 1699
      StackMap locals:
      StackMap stack:
            iinc 3 /* i */ 1
      StackMap locals:
      StackMap stack:
        23: iload 3 /* i */
            aload 0 /* this */
            getfield java.io.ObjectOutputStream$PutFieldImpl.objVals:[Ljava/lang/Object;
            arraylength
            if_icmplt 5
        end local 3 // int i
        24: .line 1715
            return
        end local 2 // int numPrimFields
        end local 1 // java.io.ObjectStreamField[] fields
        end local 0 // java.io.ObjectOutputStream$PutFieldImpl this
      LocalVariableTable:
        Start  End  Slot           Name  Signature
            0   25     0           this  Ljava/io/ObjectOutputStream$PutFieldImpl;
            2   25     1         fields  [Ljava/io/ObjectStreamField;
            3   25     2  numPrimFields  I
            4   24     3              i  I
      Exception table:
        from    to  target  type
          12    16      16  any
    Exceptions:
      throws java.io.IOException

  private int getFieldOffset(java.lang.String, java.lang.Class<?>);
    descriptor: (Ljava/lang/String;Ljava/lang/Class;)I
    flags: (0x0002) ACC_PRIVATE
    Code:
      stack=5, locals=4, args_size=3
        start local 0 // java.io.ObjectOutputStream$PutFieldImpl this
        start local 1 // java.lang.String name
        start local 2 // java.lang.Class type
         0: .line 1724
            aload 0 /* this */
            getfield java.io.ObjectOutputStream$PutFieldImpl.desc:Ljava/io/ObjectStreamClass;
            aload 1 /* name */
            aload 2 /* type */
            invokevirtual java.io.ObjectStreamClass.getField:(Ljava/lang/String;Ljava/lang/Class;)Ljava/io/ObjectStreamField;
            astore 3 /* field */
        start local 3 // java.io.ObjectStreamField field
         1: .line 1725
            aload 3 /* field */
            ifnonnull 5
         2: .line 1726
            new java.lang.IllegalArgumentException
            dup
            new java.lang.StringBuilder
            dup
            ldc "no such field "
            invokespecial java.lang.StringBuilder.<init>:(Ljava/lang/String;)V
            aload 1 /* name */
            invokevirtual java.lang.StringBuilder.append:(Ljava/lang/String;)Ljava/lang/StringBuilder;
         3: .line 1727
            ldc " with type "
            invokevirtual java.lang.StringBuilder.append:(Ljava/lang/String;)Ljava/lang/StringBuilder;
            aload 2 /* type */
            invokevirtual java.lang.StringBuilder.append:(Ljava/lang/Object;)Ljava/lang/StringBuilder;
            invokevirtual java.lang.StringBuilder.toString:()Ljava/lang/String;
         4: .line 1726
            invokespecial java.lang.IllegalArgumentException.<init>:(Ljava/lang/String;)V
            athrow
         5: .line 1729
      StackMap locals: java.io.ObjectStreamField
      StackMap stack:
            aload 3 /* field */
            invokevirtual java.io.ObjectStreamField.getOffset:()I
            ireturn
        end local 3 // java.io.ObjectStreamField field
        end local 2 // java.lang.Class type
        end local 1 // java.lang.String name
        end local 0 // java.io.ObjectOutputStream$PutFieldImpl this
      LocalVariableTable:
        Start  End  Slot   Name  Signature
            0    6     0   this  Ljava/io/ObjectOutputStream$PutFieldImpl;
            0    6     1   name  Ljava/lang/String;
            0    6     2   type  Ljava/lang/Class<*>;
            1    6     3  field  Ljava/io/ObjectStreamField;
    Signature: (Ljava/lang/String;Ljava/lang/Class<*>;)I
    MethodParameters:
      Name  Flags
      name  
      type  
}
SourceFile: "ObjectOutputStream.java"
NestHost: java.io.ObjectOutputStream
InnerClasses:
  private BlockDataOutputStream = java.io.ObjectOutputStream$BlockDataOutputStream of java.io.ObjectOutputStream
  private DebugTraceInfoStack = java.io.ObjectOutputStream$DebugTraceInfoStack of java.io.ObjectOutputStream
  public abstract PutField = java.io.ObjectOutputStream$PutField of java.io.ObjectOutputStream
  private PutFieldImpl = java.io.ObjectOutputStream$PutFieldImpl of java.io.ObjectOutputStream