public class org.jruby.util.io.OpenFile implements org.jruby.Finalizable
  minor version: 0
  major version: 59
  flags: flags: (0x0021) ACC_PUBLIC, ACC_SUPER
  this_class: org.jruby.util.io.OpenFile
  super_class: java.lang.Object
{
  public static final int READABLE;
    descriptor: I
    flags: (0x0019) ACC_PUBLIC, ACC_STATIC, ACC_FINAL
    ConstantValue: 1

  public static final int WRITABLE;
    descriptor: I
    flags: (0x0019) ACC_PUBLIC, ACC_STATIC, ACC_FINAL
    ConstantValue: 2

  public static final int READWRITE;
    descriptor: I
    flags: (0x0019) ACC_PUBLIC, ACC_STATIC, ACC_FINAL
    ConstantValue: 3

  public static final int BINMODE;
    descriptor: I
    flags: (0x0019) ACC_PUBLIC, ACC_STATIC, ACC_FINAL
    ConstantValue: 4

  public static final int SYNC;
    descriptor: I
    flags: (0x0019) ACC_PUBLIC, ACC_STATIC, ACC_FINAL
    ConstantValue: 8

  public static final int TTY;
    descriptor: I
    flags: (0x0019) ACC_PUBLIC, ACC_STATIC, ACC_FINAL
    ConstantValue: 16

  public static final int DUPLEX;
    descriptor: I
    flags: (0x0019) ACC_PUBLIC, ACC_STATIC, ACC_FINAL
    ConstantValue: 32

  public static final int APPEND;
    descriptor: I
    flags: (0x0019) ACC_PUBLIC, ACC_STATIC, ACC_FINAL
    ConstantValue: 64

  public static final int CREATE;
    descriptor: I
    flags: (0x0019) ACC_PUBLIC, ACC_STATIC, ACC_FINAL
    ConstantValue: 128

  public static final int WSPLIT;
    descriptor: I
    flags: (0x0019) ACC_PUBLIC, ACC_STATIC, ACC_FINAL
    ConstantValue: 512

  public static final int WSPLIT_INITIALIZED;
    descriptor: I
    flags: (0x0019) ACC_PUBLIC, ACC_STATIC, ACC_FINAL
    ConstantValue: 1024

  public static final int TRUNC;
    descriptor: I
    flags: (0x0019) ACC_PUBLIC, ACC_STATIC, ACC_FINAL
    ConstantValue: 2048

  public static final int TEXTMODE;
    descriptor: I
    flags: (0x0019) ACC_PUBLIC, ACC_STATIC, ACC_FINAL
    ConstantValue: 4096

  public static final int SETENC_BY_BOM;
    descriptor: I
    flags: (0x0019) ACC_PUBLIC, ACC_STATIC, ACC_FINAL
    ConstantValue: 1048576

  public static final int TMPFILE;
    descriptor: I
    flags: (0x0019) ACC_PUBLIC, ACC_STATIC, ACC_FINAL
    ConstantValue: 4259840

  public static final int PREP;
    descriptor: I
    flags: (0x0019) ACC_PUBLIC, ACC_STATIC, ACC_FINAL
    ConstantValue: 65536

  public static final int SYNCWRITE;
    descriptor: I
    flags: (0x0019) ACC_PUBLIC, ACC_STATIC, ACC_FINAL
    ConstantValue: 10

  public static final int PIPE_BUF;
    descriptor: I
    flags: (0x0019) ACC_PUBLIC, ACC_STATIC, ACC_FINAL
    ConstantValue: 512

  public static final int BUFSIZ;
    descriptor: I
    flags: (0x0019) ACC_PUBLIC, ACC_STATIC, ACC_FINAL
    ConstantValue: 1024

  private org.jruby.util.io.ChannelFD fd;
    descriptor: Lorg/jruby/util/io/ChannelFD;
    flags: (0x0002) ACC_PRIVATE

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

  private long pid;
    descriptor: J
    flags: (0x0002) ACC_PRIVATE

  private java.lang.Process process;
    descriptor: Ljava/lang/Process;
    flags: (0x0002) ACC_PRIVATE

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

  private java.lang.String pathv;
    descriptor: Ljava/lang/String;
    flags: (0x0002) ACC_PRIVATE

  private org.jruby.util.io.OpenFile$Finalizer finalizer;
    descriptor: Lorg/jruby/util/io/OpenFile$Finalizer;
    flags: (0x0002) ACC_PRIVATE

  public java.io.Closeable stdio_file;
    descriptor: Ljava/io/Closeable;
    flags: (0x0001) ACC_PUBLIC

  public volatile java.nio.channels.FileLock currentLock;
    descriptor: Ljava/nio/channels/FileLock;
    flags: (0x0041) ACC_PUBLIC, ACC_VOLATILE

  public org.jruby.util.io.IOEncodable$ConvConfig encs;
    descriptor: Lorg/jruby/util/io/IOEncodable$ConvConfig;
    flags: (0x0001) ACC_PUBLIC

  public org.jcodings.transcode.EConv readconv;
    descriptor: Lorg/jcodings/transcode/EConv;
    flags: (0x0001) ACC_PUBLIC

  public org.jcodings.transcode.EConv writeconv;
    descriptor: Lorg/jcodings/transcode/EConv;
    flags: (0x0001) ACC_PUBLIC

  public org.jruby.runtime.builtin.IRubyObject writeconvAsciicompat;
    descriptor: Lorg/jruby/runtime/builtin/IRubyObject;
    flags: (0x0001) ACC_PUBLIC

  public int writeconvPreEcflags;
    descriptor: I
    flags: (0x0001) ACC_PUBLIC

  public org.jruby.runtime.builtin.IRubyObject writeconvPreEcopts;
    descriptor: Lorg/jruby/runtime/builtin/IRubyObject;
    flags: (0x0001) ACC_PUBLIC

  public boolean writeconvInitialized;
    descriptor: Z
    flags: (0x0001) ACC_PUBLIC

  public volatile java.util.concurrent.locks.ReentrantReadWriteLock write_lock;
    descriptor: Ljava/util/concurrent/locks/ReentrantReadWriteLock;
    flags: (0x0041) ACC_PUBLIC, ACC_VOLATILE

  private final java.util.concurrent.locks.ReentrantLock lock;
    descriptor: Ljava/util/concurrent/locks/ReentrantLock;
    flags: (0x0012) ACC_PRIVATE, ACC_FINAL

  public final org.jruby.util.io.OpenFile$Buffer wbuf;
    descriptor: Lorg/jruby/util/io/OpenFile$Buffer;
    flags: (0x0011) ACC_PUBLIC, ACC_FINAL

  public final org.jruby.util.io.OpenFile$Buffer rbuf;
    descriptor: Lorg/jruby/util/io/OpenFile$Buffer;
    flags: (0x0011) ACC_PUBLIC, ACC_FINAL

  public final org.jruby.util.io.OpenFile$Buffer cbuf;
    descriptor: Lorg/jruby/util/io/OpenFile$Buffer;
    flags: (0x0011) ACC_PUBLIC, ACC_FINAL

  public org.jruby.RubyIO tiedIOForWriting;
    descriptor: Lorg/jruby/RubyIO;
    flags: (0x0001) ACC_PUBLIC

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

  public final org.jruby.util.io.PosixShim posix;
    descriptor: Lorg/jruby/util/io/PosixShim;
    flags: (0x0011) ACC_PUBLIC, ACC_FINAL

  private final org.jruby.Ruby runtime;
    descriptor: Lorg/jruby/Ruby;
    flags: (0x0012) ACC_PRIVATE, ACC_FINAL

  protected volatile java.util.Set<org.jruby.RubyThread> blockingThreads;
    descriptor: Ljava/util/Set;
    flags: (0x0044) ACC_PROTECTED, ACC_VOLATILE
    Signature: Ljava/util/Set<Lorg/jruby/RubyThread;>;

  public static final org.jruby.util.io.OpenFile$Finalizer PIPE_FINALIZE;
    descriptor: Lorg/jruby/util/io/OpenFile$Finalizer;
    flags: (0x0019) ACC_PUBLIC, ACC_STATIC, ACC_FINAL
    RuntimeVisibleAnnotations: 
      java.lang.Deprecated()

  public static final int MORE_CHAR_SUSPENDED;
    descriptor: I
    flags: (0x0019) ACC_PUBLIC, ACC_STATIC, ACC_FINAL
    ConstantValue: 0

  public static final int MORE_CHAR_FINISHED;
    descriptor: I
    flags: (0x0019) ACC_PUBLIC, ACC_STATIC, ACC_FINAL
    ConstantValue: 1

  public static final int EOF;
    descriptor: I
    flags: (0x0019) ACC_PUBLIC, ACC_STATIC, ACC_FINAL
    ConstantValue: -1

  public static final int IO_RBUF_CAPA_MIN;
    descriptor: I
    flags: (0x0019) ACC_PUBLIC, ACC_STATIC, ACC_FINAL
    ConstantValue: 8192

  public static final int IO_CBUF_CAPA_MIN;
    descriptor: I
    flags: (0x0019) ACC_PUBLIC, ACC_STATIC, ACC_FINAL
    ConstantValue: 131072

  public static final int IO_WBUF_CAPA_MIN;
    descriptor: I
    flags: (0x0019) ACC_PUBLIC, ACC_STATIC, ACC_FINAL
    ConstantValue: 8192

  private static final byte[] EMPTY_BYTE_ARRAY;
    descriptor: [B
    flags: (0x001a) ACC_PRIVATE, ACC_STATIC, ACC_FINAL

  static final org.jruby.RubyThread$Task<org.jruby.util.io.OpenFile$InternalReadStruct, java.lang.Integer> readTask;
    descriptor: Lorg/jruby/RubyThread$Task;
    flags: (0x0018) ACC_STATIC, ACC_FINAL
    Signature: Lorg/jruby/RubyThread$Task<Lorg/jruby/util/io/OpenFile$InternalReadStruct;Ljava/lang/Integer;>;

  static final org.jruby.RubyThread$Task<org.jruby.util.io.OpenFile$InternalWriteStruct, java.lang.Integer> writeTask;
    descriptor: Lorg/jruby/RubyThread$Task;
    flags: (0x0018) ACC_STATIC, ACC_FINAL
    Signature: Lorg/jruby/RubyThread$Task<Lorg/jruby/util/io/OpenFile$InternalWriteStruct;Ljava/lang/Integer;>;

  static final boolean $assertionsDisabled;
    descriptor: Z
    flags: (0x1018) ACC_STATIC, ACC_FINAL, ACC_SYNTHETIC

  private static volatile int[] $SWITCH_TABLE$jnr$constants$platform$OpenFlags;
    descriptor: [I
    flags: (0x104a) ACC_PRIVATE, ACC_STATIC, ACC_VOLATILE, ACC_SYNTHETIC

  private static volatile int[] $SWITCH_TABLE$jnr$constants$platform$Errno;
    descriptor: [I
    flags: (0x104a) ACC_PRIVATE, ACC_STATIC, ACC_VOLATILE, ACC_SYNTHETIC

  static void <clinit>();
    descriptor: ()V
    flags: (0x0008) ACC_STATIC
    Code:
      stack=2, locals=0, args_size=0
         0: .line 51
            ldc Lorg/jruby/util/io/OpenFile;
            invokevirtual java.lang.Class.desiredAssertionStatus:()Z
            ifne 1
            iconst_1
            goto 2
      StackMap locals:
      StackMap stack:
         1: iconst_0
      StackMap locals:
      StackMap stack: int
         2: putstatic org.jruby.util.io.OpenFile.$assertionsDisabled:Z
         3: .line 824
            new org.jruby.util.io.OpenFile$1
            dup
            invokespecial org.jruby.util.io.OpenFile$1.<init>:()V
            putstatic org.jruby.util.io.OpenFile.PIPE_FINALIZE:Lorg/jruby/util/io/OpenFile$Finalizer;
         4: .line 1040
            getstatic org.jruby.util.ByteList.NULL_ARRAY:[B
            putstatic org.jruby.util.io.OpenFile.EMPTY_BYTE_ARRAY:[B
         5: .line 1316
            new org.jruby.util.io.OpenFile$2
            dup
            invokespecial org.jruby.util.io.OpenFile$2.<init>:()V
            putstatic org.jruby.util.io.OpenFile.readTask:Lorg/jruby/RubyThread$Task;
         6: .line 1338
            new org.jruby.util.io.OpenFile$3
            dup
            invokespecial org.jruby.util.io.OpenFile$3.<init>:()V
            putstatic org.jruby.util.io.OpenFile.writeTask:Lorg/jruby/RubyThread$Task;
         7: .line 1358
            return
      LocalVariableTable:
        Start  End  Slot  Name  Signature

  public void <init>(org.jruby.runtime.builtin.IRubyObject);
    descriptor: (Lorg/jruby/runtime/builtin/IRubyObject;)V
    flags: (0x0001) ACC_PUBLIC
    Code:
      stack=4, locals=2, args_size=2
        start local 0 // org.jruby.util.io.OpenFile this
        start local 1 // org.jruby.runtime.builtin.IRubyObject nil
         0: .line 54
            aload 0 /* this */
            invokespecial java.lang.Object.<init>:()V
         1: .line 115
            aload 0 /* this */
            aconst_null
            putfield org.jruby.util.io.OpenFile.fd:Lorg/jruby/util/io/ChannelFD;
         2: .line 117
            aload 0 /* this */
            ldc -1
            putfield org.jruby.util.io.OpenFile.pid:J
         3: .line 133
            aload 0 /* this */
            new org.jruby.util.io.IOEncodable$ConvConfig
            dup
            invokespecial org.jruby.util.io.IOEncodable$ConvConfig.<init>:()V
            putfield org.jruby.util.io.OpenFile.encs:Lorg/jruby/util/io/IOEncodable$ConvConfig;
         4: .line 143
            aload 0 /* this */
            new java.util.concurrent.locks.ReentrantLock
            dup
            invokespecial java.util.concurrent.locks.ReentrantLock.<init>:()V
            putfield org.jruby.util.io.OpenFile.lock:Ljava/util/concurrent/locks/ReentrantLock;
         5: .line 145
            aload 0 /* this */
            new org.jruby.util.io.OpenFile$Buffer
            dup
            invokespecial org.jruby.util.io.OpenFile$Buffer.<init>:()V
            putfield org.jruby.util.io.OpenFile.wbuf:Lorg/jruby/util/io/OpenFile$Buffer;
            aload 0 /* this */
            new org.jruby.util.io.OpenFile$Buffer
            dup
            invokespecial org.jruby.util.io.OpenFile$Buffer.<init>:()V
            putfield org.jruby.util.io.OpenFile.rbuf:Lorg/jruby/util/io/OpenFile$Buffer;
            aload 0 /* this */
            new org.jruby.util.io.OpenFile$Buffer
            dup
            invokespecial org.jruby.util.io.OpenFile$Buffer.<init>:()V
            putfield org.jruby.util.io.OpenFile.cbuf:Lorg/jruby/util/io/OpenFile$Buffer;
         6: .line 149
            aload 0 /* this */
            iconst_0
            putfield org.jruby.util.io.OpenFile.nonblock:Z
         7: .line 55
            aload 0 /* this */
            aload 1 /* nil */
            invokeinterface org.jruby.runtime.builtin.IRubyObject.getRuntime:()Lorg/jruby/Ruby;
            putfield org.jruby.util.io.OpenFile.runtime:Lorg/jruby/Ruby;
         8: .line 56
            aload 0 /* this */
            aload 1 /* nil */
            putfield org.jruby.util.io.OpenFile.writeconvAsciicompat:Lorg/jruby/runtime/builtin/IRubyObject;
         9: .line 57
            aload 0 /* this */
            aload 1 /* nil */
            putfield org.jruby.util.io.OpenFile.writeconvPreEcopts:Lorg/jruby/runtime/builtin/IRubyObject;
        10: .line 58
            aload 0 /* this */
            getfield org.jruby.util.io.OpenFile.encs:Lorg/jruby/util/io/IOEncodable$ConvConfig;
            aload 1 /* nil */
            putfield org.jruby.util.io.IOEncodable$ConvConfig.ecopts:Lorg/jruby/runtime/builtin/IRubyObject;
        11: .line 59
            aload 0 /* this */
            new org.jruby.util.io.PosixShim
            dup
            aload 0 /* this */
            getfield org.jruby.util.io.OpenFile.runtime:Lorg/jruby/Ruby;
            invokespecial org.jruby.util.io.PosixShim.<init>:(Lorg/jruby/Ruby;)V
            putfield org.jruby.util.io.OpenFile.posix:Lorg/jruby/util/io/PosixShim;
        12: .line 60
            return
        end local 1 // org.jruby.runtime.builtin.IRubyObject nil
        end local 0 // org.jruby.util.io.OpenFile this
      LocalVariableTable:
        Start  End  Slot  Name  Signature
            0   13     0  this  Lorg/jruby/util/io/OpenFile;
            0   13     1   nil  Lorg/jruby/runtime/builtin/IRubyObject;
    MethodParameters:
      Name  Flags
      nil   

  public void ascii8bitBinmode(org.jruby.Ruby);
    descriptor: (Lorg/jruby/Ruby;)V
    flags: (0x0001) ACC_PUBLIC
    Code:
      stack=2, locals=2, args_size=2
        start local 0 // org.jruby.util.io.OpenFile this
        start local 1 // org.jruby.Ruby runtime
         0: .line 86
            aload 0 /* this */
            getfield org.jruby.util.io.OpenFile.readconv:Lorg/jcodings/transcode/EConv;
            ifnull 3
         1: .line 87
            aload 0 /* this */
            getfield org.jruby.util.io.OpenFile.readconv:Lorg/jcodings/transcode/EConv;
            invokevirtual org.jcodings.transcode.EConv.close:()V
         2: .line 88
            aload 0 /* this */
            aconst_null
            putfield org.jruby.util.io.OpenFile.readconv:Lorg/jcodings/transcode/EConv;
         3: .line 90
      StackMap locals:
      StackMap stack:
            aload 0 /* this */
            getfield org.jruby.util.io.OpenFile.writeconv:Lorg/jcodings/transcode/EConv;
            ifnull 6
         4: .line 91
            aload 0 /* this */
            getfield org.jruby.util.io.OpenFile.writeconv:Lorg/jcodings/transcode/EConv;
            invokevirtual org.jcodings.transcode.EConv.close:()V
         5: .line 92
            aload 0 /* this */
            aconst_null
            putfield org.jruby.util.io.OpenFile.writeconv:Lorg/jcodings/transcode/EConv;
         6: .line 94
      StackMap locals:
      StackMap stack:
            aload 0 /* this */
            invokevirtual org.jruby.util.io.OpenFile.setBinmode:()V
         7: .line 95
            aload 0 /* this */
            invokevirtual org.jruby.util.io.OpenFile.clearTextMode:()V
         8: .line 98
            aload 0 /* this */
            getfield org.jruby.util.io.OpenFile.encs:Lorg/jruby/util/io/IOEncodable$ConvConfig;
            aload 1 /* runtime */
            invokestatic org.jruby.util.io.EncodingUtils.ascii8bitEncoding:(Lorg/jruby/Ruby;)Lorg/jcodings/Encoding;
            putfield org.jruby.util.io.IOEncodable$ConvConfig.enc:Lorg/jcodings/Encoding;
         9: .line 99
            aload 0 /* this */
            getfield org.jruby.util.io.OpenFile.encs:Lorg/jruby/util/io/IOEncodable$ConvConfig;
            aconst_null
            putfield org.jruby.util.io.IOEncodable$ConvConfig.enc2:Lorg/jcodings/Encoding;
        10: .line 100
            aload 0 /* this */
            getfield org.jruby.util.io.OpenFile.encs:Lorg/jruby/util/io/IOEncodable$ConvConfig;
            iconst_0
            putfield org.jruby.util.io.IOEncodable$ConvConfig.ecflags:I
        11: .line 101
            aload 0 /* this */
            getfield org.jruby.util.io.OpenFile.encs:Lorg/jruby/util/io/IOEncodable$ConvConfig;
            aload 1 /* runtime */
            invokevirtual org.jruby.Ruby.getNil:()Lorg/jruby/runtime/builtin/IRubyObject;
            putfield org.jruby.util.io.IOEncodable$ConvConfig.ecopts:Lorg/jruby/runtime/builtin/IRubyObject;
        12: .line 102
            aload 0 /* this */
            invokevirtual org.jruby.util.io.OpenFile.clearCodeConversion:()V
        13: .line 103
            return
        end local 1 // org.jruby.Ruby runtime
        end local 0 // org.jruby.util.io.OpenFile this
      LocalVariableTable:
        Start  End  Slot     Name  Signature
            0   14     0     this  Lorg/jruby/util/io/OpenFile;
            0   14     1  runtime  Lorg/jruby/Ruby;
    MethodParameters:
         Name  Flags
      runtime  

  public void checkReopenSeek(org.jruby.runtime.ThreadContext, org.jruby.Ruby, long);
    descriptor: (Lorg/jruby/runtime/ThreadContext;Lorg/jruby/Ruby;J)V
    flags: (0x0001) ACC_PUBLIC
    Code:
      stack=5, locals=5, args_size=4
        start local 0 // org.jruby.util.io.OpenFile this
        start local 1 // org.jruby.runtime.ThreadContext context
        start local 2 // org.jruby.Ruby runtime
        start local 3 // long pos
         0: .line 106
            aload 0 /* this */
            aload 1 /* context */
            lload 3 /* pos */
            iconst_0
            invokevirtual org.jruby.util.io.OpenFile.seek:(Lorg/jruby/runtime/ThreadContext;JI)J
            ldc -1
            lcmp
            ifne 2
            aload 0 /* this */
            invokevirtual org.jruby.util.io.OpenFile.errno:()Ljnr/constants/platform/Errno;
            ifnull 2
         1: .line 107
            aload 2 /* runtime */
            aload 0 /* this */
            invokevirtual org.jruby.util.io.OpenFile.errno:()Ljnr/constants/platform/Errno;
            aload 0 /* this */
            invokevirtual org.jruby.util.io.OpenFile.getPath:()Ljava/lang/String;
            invokevirtual org.jruby.Ruby.newErrnoFromErrno:(Ljnr/constants/platform/Errno;Ljava/lang/String;)Lorg/jruby/exceptions/RaiseException;
            athrow
         2: .line 109
      StackMap locals:
      StackMap stack:
            return
        end local 3 // long pos
        end local 2 // org.jruby.Ruby runtime
        end local 1 // org.jruby.runtime.ThreadContext context
        end local 0 // org.jruby.util.io.OpenFile this
      LocalVariableTable:
        Start  End  Slot     Name  Signature
            0    3     0     this  Lorg/jruby/util/io/OpenFile;
            0    3     1  context  Lorg/jruby/runtime/ThreadContext;
            0    3     2  runtime  Lorg/jruby/Ruby;
            0    3     3      pos  J
    MethodParameters:
         Name  Flags
      context  
      runtime  
      pos      

  public void clearStdio();
    descriptor: ()V
    flags: (0x0001) ACC_PUBLIC
    Code:
      stack=2, locals=1, args_size=1
        start local 0 // org.jruby.util.io.OpenFile this
         0: .line 158
            aload 0 /* this */
            aconst_null
            putfield org.jruby.util.io.OpenFile.stdio_file:Ljava/io/Closeable;
         1: .line 159
            return
        end local 0 // org.jruby.util.io.OpenFile this
      LocalVariableTable:
        Start  End  Slot  Name  Signature
            0    2     0  this  Lorg/jruby/util/io/OpenFile;

  public java.lang.String PREP_STDIO_NAME();
    descriptor: ()Ljava/lang/String;
    flags: (0x0001) ACC_PUBLIC
    Code:
      stack=1, locals=1, args_size=1
        start local 0 // org.jruby.util.io.OpenFile this
         0: .line 162
            aload 0 /* this */
            getfield org.jruby.util.io.OpenFile.pathv:Ljava/lang/String;
            areturn
        end local 0 // org.jruby.util.io.OpenFile this
      LocalVariableTable:
        Start  End  Slot  Name  Signature
            0    1     0  this  Lorg/jruby/util/io/OpenFile;

  public boolean READ_DATA_PENDING();
    descriptor: ()Z
    flags: (0x0001) ACC_PUBLIC
    Code:
      stack=1, locals=1, args_size=1
        start local 0 // org.jruby.util.io.OpenFile this
         0: .line 165
            aload 0 /* this */
            getfield org.jruby.util.io.OpenFile.rbuf:Lorg/jruby/util/io/OpenFile$Buffer;
            getfield org.jruby.util.io.OpenFile$Buffer.len:I
            ifeq 1
            iconst_1
            ireturn
      StackMap locals:
      StackMap stack:
         1: iconst_0
            ireturn
        end local 0 // org.jruby.util.io.OpenFile this
      LocalVariableTable:
        Start  End  Slot  Name  Signature
            0    2     0  this  Lorg/jruby/util/io/OpenFile;

  public int READ_DATA_PENDING_COUNT();
    descriptor: ()I
    flags: (0x0001) ACC_PUBLIC
    Code:
      stack=1, locals=1, args_size=1
        start local 0 // org.jruby.util.io.OpenFile this
         0: .line 166
            aload 0 /* this */
            getfield org.jruby.util.io.OpenFile.rbuf:Lorg/jruby/util/io/OpenFile$Buffer;
            getfield org.jruby.util.io.OpenFile$Buffer.len:I
            ireturn
        end local 0 // org.jruby.util.io.OpenFile this
      LocalVariableTable:
        Start  End  Slot  Name  Signature
            0    1     0  this  Lorg/jruby/util/io/OpenFile;

  public byte[] READ_DATA_PENDING_PTR();
    descriptor: ()[B
    flags: (0x0001) ACC_PUBLIC
    Code:
      stack=1, locals=1, args_size=1
        start local 0 // org.jruby.util.io.OpenFile this
         0: .line 168
            aload 0 /* this */
            getfield org.jruby.util.io.OpenFile.rbuf:Lorg/jruby/util/io/OpenFile$Buffer;
            getfield org.jruby.util.io.OpenFile$Buffer.ptr:[B
            areturn
        end local 0 // org.jruby.util.io.OpenFile this
      LocalVariableTable:
        Start  End  Slot  Name  Signature
            0    1     0  this  Lorg/jruby/util/io/OpenFile;

  public int READ_DATA_PENDING_OFF();
    descriptor: ()I
    flags: (0x0001) ACC_PUBLIC
    Code:
      stack=1, locals=1, args_size=1
        start local 0 // org.jruby.util.io.OpenFile this
         0: .line 169
            aload 0 /* this */
            getfield org.jruby.util.io.OpenFile.rbuf:Lorg/jruby/util/io/OpenFile$Buffer;
            getfield org.jruby.util.io.OpenFile$Buffer.off:I
            ireturn
        end local 0 // org.jruby.util.io.OpenFile this
      LocalVariableTable:
        Start  End  Slot  Name  Signature
            0    1     0  this  Lorg/jruby/util/io/OpenFile;

  public int READ_DATA_PENDING_START();
    descriptor: ()I
    flags: (0x0001) ACC_PUBLIC
    Code:
      stack=1, locals=1, args_size=1
        start local 0 // org.jruby.util.io.OpenFile this
         0: .line 170
            aload 0 /* this */
            getfield org.jruby.util.io.OpenFile.rbuf:Lorg/jruby/util/io/OpenFile$Buffer;
            getfield org.jruby.util.io.OpenFile$Buffer.start:I
            ireturn
        end local 0 // org.jruby.util.io.OpenFile this
      LocalVariableTable:
        Start  End  Slot  Name  Signature
            0    1     0  this  Lorg/jruby/util/io/OpenFile;

  public boolean READ_DATA_BUFFERED();
    descriptor: ()Z
    flags: (0x0001) ACC_PUBLIC
    Code:
      stack=1, locals=1, args_size=1
        start local 0 // org.jruby.util.io.OpenFile this
         0: .line 171
            aload 0 /* this */
            invokevirtual org.jruby.util.io.OpenFile.READ_DATA_PENDING:()Z
            ireturn
        end local 0 // org.jruby.util.io.OpenFile this
      LocalVariableTable:
        Start  End  Slot  Name  Signature
            0    1     0  this  Lorg/jruby/util/io/OpenFile;

  public boolean READ_CHAR_PENDING();
    descriptor: ()Z
    flags: (0x0001) ACC_PUBLIC
    Code:
      stack=1, locals=1, args_size=1
        start local 0 // org.jruby.util.io.OpenFile this
         0: .line 173
            aload 0 /* this */
            getfield org.jruby.util.io.OpenFile.cbuf:Lorg/jruby/util/io/OpenFile$Buffer;
            getfield org.jruby.util.io.OpenFile$Buffer.len:I
            ifeq 1
            iconst_1
            ireturn
      StackMap locals:
      StackMap stack:
         1: iconst_0
            ireturn
        end local 0 // org.jruby.util.io.OpenFile this
      LocalVariableTable:
        Start  End  Slot  Name  Signature
            0    2     0  this  Lorg/jruby/util/io/OpenFile;

  public int READ_CHAR_PENDING_COUNT();
    descriptor: ()I
    flags: (0x0001) ACC_PUBLIC
    Code:
      stack=1, locals=1, args_size=1
        start local 0 // org.jruby.util.io.OpenFile this
         0: .line 174
            aload 0 /* this */
            getfield org.jruby.util.io.OpenFile.cbuf:Lorg/jruby/util/io/OpenFile$Buffer;
            getfield org.jruby.util.io.OpenFile$Buffer.len:I
            ireturn
        end local 0 // org.jruby.util.io.OpenFile this
      LocalVariableTable:
        Start  End  Slot  Name  Signature
            0    1     0  this  Lorg/jruby/util/io/OpenFile;

  public byte[] READ_CHAR_PENDING_PTR();
    descriptor: ()[B
    flags: (0x0001) ACC_PUBLIC
    Code:
      stack=1, locals=1, args_size=1
        start local 0 // org.jruby.util.io.OpenFile this
         0: .line 176
            aload 0 /* this */
            getfield org.jruby.util.io.OpenFile.cbuf:Lorg/jruby/util/io/OpenFile$Buffer;
            getfield org.jruby.util.io.OpenFile$Buffer.ptr:[B
            areturn
        end local 0 // org.jruby.util.io.OpenFile this
      LocalVariableTable:
        Start  End  Slot  Name  Signature
            0    1     0  this  Lorg/jruby/util/io/OpenFile;

  public int READ_CHAR_PENDING_OFF();
    descriptor: ()I
    flags: (0x0001) ACC_PUBLIC
    Code:
      stack=1, locals=1, args_size=1
        start local 0 // org.jruby.util.io.OpenFile this
         0: .line 177
            aload 0 /* this */
            getfield org.jruby.util.io.OpenFile.cbuf:Lorg/jruby/util/io/OpenFile$Buffer;
            getfield org.jruby.util.io.OpenFile$Buffer.off:I
            ireturn
        end local 0 // org.jruby.util.io.OpenFile this
      LocalVariableTable:
        Start  End  Slot  Name  Signature
            0    1     0  this  Lorg/jruby/util/io/OpenFile;

  public int READ_CHAR_PENDING_START();
    descriptor: ()I
    flags: (0x0001) ACC_PUBLIC
    Code:
      stack=1, locals=1, args_size=1
        start local 0 // org.jruby.util.io.OpenFile this
         0: .line 178
            aload 0 /* this */
            getfield org.jruby.util.io.OpenFile.cbuf:Lorg/jruby/util/io/OpenFile$Buffer;
            getfield org.jruby.util.io.OpenFile$Buffer.start:I
            ireturn
        end local 0 // org.jruby.util.io.OpenFile this
      LocalVariableTable:
        Start  End  Slot  Name  Signature
            0    1     0  this  Lorg/jruby/util/io/OpenFile;

  public void READ_CHECK(org.jruby.runtime.ThreadContext);
    descriptor: (Lorg/jruby/runtime/ThreadContext;)V
    flags: (0x0001) ACC_PUBLIC
    Code:
      stack=1, locals=2, args_size=2
        start local 0 // org.jruby.util.io.OpenFile this
        start local 1 // org.jruby.runtime.ThreadContext context
         0: .line 181
            aload 0 /* this */
            invokevirtual org.jruby.util.io.OpenFile.READ_DATA_PENDING:()Z
            ifne 2
         1: .line 182
            aload 0 /* this */
            invokevirtual org.jruby.util.io.OpenFile.checkClosed:()V
         2: .line 184
      StackMap locals:
      StackMap stack:
            return
        end local 1 // org.jruby.runtime.ThreadContext context
        end local 0 // org.jruby.util.io.OpenFile this
      LocalVariableTable:
        Start  End  Slot     Name  Signature
            0    3     0     this  Lorg/jruby/util/io/OpenFile;
            0    3     1  context  Lorg/jruby/runtime/ThreadContext;
    MethodParameters:
         Name  Flags
      context  

  public boolean IS_PREP_STDIO();
    descriptor: ()Z
    flags: (0x0001) ACC_PUBLIC
    Code:
      stack=2, locals=1, args_size=1
        start local 0 // org.jruby.util.io.OpenFile this
         0: .line 187
            aload 0 /* this */
            getfield org.jruby.util.io.OpenFile.mode:I
            ldc 65536
            iand
            ldc 65536
            if_icmpne 1
            iconst_1
            ireturn
      StackMap locals:
      StackMap stack:
         1: iconst_0
            ireturn
        end local 0 // org.jruby.util.io.OpenFile this
      LocalVariableTable:
        Start  End  Slot  Name  Signature
            0    2     0  this  Lorg/jruby/util/io/OpenFile;

  public void setFD(org.jruby.util.io.ChannelFD);
    descriptor: (Lorg/jruby/util/io/ChannelFD;)V
    flags: (0x0001) ACC_PUBLIC
    Code:
      stack=2, locals=2, args_size=2
        start local 0 // org.jruby.util.io.OpenFile this
        start local 1 // org.jruby.util.io.ChannelFD fd
         0: .line 191
            aload 0 /* this */
            aload 1 /* fd */
            putfield org.jruby.util.io.OpenFile.fd:Lorg/jruby/util/io/ChannelFD;
         1: .line 192
            return
        end local 1 // org.jruby.util.io.ChannelFD fd
        end local 0 // org.jruby.util.io.OpenFile this
      LocalVariableTable:
        Start  End  Slot  Name  Signature
            0    2     0  this  Lorg/jruby/util/io/OpenFile;
            0    2     1    fd  Lorg/jruby/util/io/ChannelFD;
    MethodParameters:
      Name  Flags
      fd    

  public void setChannel(java.nio.channels.Channel);
    descriptor: (Ljava/nio/channels/Channel;)V
    flags: (0x0001) ACC_PUBLIC
    Code:
      stack=6, locals=2, args_size=2
        start local 0 // org.jruby.util.io.OpenFile this
        start local 1 // java.nio.channels.Channel fd
         0: .line 195
            aload 0 /* this */
            new org.jruby.util.io.ChannelFD
            dup
            aload 1 /* fd */
            aload 0 /* this */
            getfield org.jruby.util.io.OpenFile.runtime:Lorg/jruby/Ruby;
            invokevirtual org.jruby.Ruby.getPosix:()Ljnr/posix/POSIX;
            aload 0 /* this */
            getfield org.jruby.util.io.OpenFile.runtime:Lorg/jruby/Ruby;
            invokevirtual org.jruby.Ruby.getFilenoUtil:()Lorg/jruby/util/io/FilenoUtil;
            invokespecial org.jruby.util.io.ChannelFD.<init>:(Ljava/nio/channels/Channel;Ljnr/posix/POSIX;Lorg/jruby/util/io/FilenoUtil;)V
            putfield org.jruby.util.io.OpenFile.fd:Lorg/jruby/util/io/ChannelFD;
         1: .line 196
            return
        end local 1 // java.nio.channels.Channel fd
        end local 0 // org.jruby.util.io.OpenFile this
      LocalVariableTable:
        Start  End  Slot  Name  Signature
            0    2     0  this  Lorg/jruby/util/io/OpenFile;
            0    2     1    fd  Ljava/nio/channels/Channel;
    MethodParameters:
      Name  Flags
      fd    

  public int getMode();
    descriptor: ()I
    flags: (0x0001) ACC_PUBLIC
    Code:
      stack=1, locals=1, args_size=1
        start local 0 // org.jruby.util.io.OpenFile this
         0: .line 199
            aload 0 /* this */
            getfield org.jruby.util.io.OpenFile.mode:I
            ireturn
        end local 0 // org.jruby.util.io.OpenFile this
      LocalVariableTable:
        Start  End  Slot  Name  Signature
            0    1     0  this  Lorg/jruby/util/io/OpenFile;

  public java.lang.String getModeAsString(org.jruby.Ruby);
    descriptor: (Lorg/jruby/Ruby;)Ljava/lang/String;
    flags: (0x0001) ACC_PUBLIC
    Code:
      stack=4, locals=3, args_size=2
        start local 0 // org.jruby.util.io.OpenFile this
        start local 1 // org.jruby.Ruby runtime
         0: .line 203
            aload 0 /* this */
            getfield org.jruby.util.io.OpenFile.mode:I
            invokestatic org.jruby.util.io.OpenFile.getStringFromMode:(I)Ljava/lang/String;
            astore 2 /* modeString */
        start local 2 // java.lang.String modeString
         1: .line 205
            aload 2 /* modeString */
            ifnonnull 3
         2: .line 206
            aload 1 /* runtime */
            new java.lang.StringBuilder
            dup
            ldc "Illegal access modenum "
            invokespecial java.lang.StringBuilder.<init>:(Ljava/lang/String;)V
            aload 0 /* this */
            getfield org.jruby.util.io.OpenFile.mode:I
            invokestatic java.lang.Integer.toOctalString:(I)Ljava/lang/String;
            invokevirtual java.lang.StringBuilder.append:(Ljava/lang/String;)Ljava/lang/StringBuilder;
            invokevirtual java.lang.StringBuilder.toString:()Ljava/lang/String;
            invokevirtual org.jruby.Ruby.newArgumentError:(Ljava/lang/String;)Lorg/jruby/exceptions/RaiseException;
            athrow
         3: .line 209
      StackMap locals: java.lang.String
      StackMap stack:
            aload 2 /* modeString */
            areturn
        end local 2 // java.lang.String modeString
        end local 1 // org.jruby.Ruby runtime
        end local 0 // org.jruby.util.io.OpenFile this
      LocalVariableTable:
        Start  End  Slot        Name  Signature
            0    4     0        this  Lorg/jruby/util/io/OpenFile;
            0    4     1     runtime  Lorg/jruby/Ruby;
            1    4     2  modeString  Ljava/lang/String;
    MethodParameters:
         Name  Flags
      runtime  

  public static int getModeFlagsAsIntFrom(int);
    descriptor: (I)I
    flags: (0x0009) ACC_PUBLIC, ACC_STATIC
    Code:
      stack=2, locals=2, args_size=1
        start local 0 // int fmode
         0: .line 213
            iconst_0
            istore 1 /* oflags */
        start local 1 // int oflags
         1: .line 215
            iload 0 /* fmode */
            iconst_1
            iand
            ifeq 7
         2: .line 216
            iload 0 /* fmode */
            iconst_2
            iand
            ifeq 5
         3: .line 217
            iload 1 /* oflags */
            getstatic org.jruby.util.io.ModeFlags.RDWR:I
            ior
            istore 1 /* oflags */
         4: .line 218
            goto 9
         5: .line 219
      StackMap locals: int
      StackMap stack:
            iload 1 /* oflags */
            getstatic org.jruby.util.io.ModeFlags.RDONLY:I
            ior
            istore 1 /* oflags */
         6: .line 221
            goto 9
      StackMap locals:
      StackMap stack:
         7: iload 0 /* fmode */
            iconst_2
            iand
            ifeq 9
         8: .line 222
            iload 1 /* oflags */
            getstatic org.jruby.util.io.ModeFlags.WRONLY:I
            ior
            istore 1 /* oflags */
         9: .line 225
      StackMap locals:
      StackMap stack:
            iload 0 /* fmode */
            bipush 64
            iand
            ifeq 10
            iload 1 /* oflags */
            getstatic org.jruby.util.io.ModeFlags.APPEND:I
            ior
            istore 1 /* oflags */
        10: .line 226
      StackMap locals:
      StackMap stack:
            iload 0 /* fmode */
            sipush 128
            iand
            ifeq 11
            iload 1 /* oflags */
            getstatic org.jruby.util.io.ModeFlags.CREAT:I
            ior
            istore 1 /* oflags */
        11: .line 227
      StackMap locals:
      StackMap stack:
            iload 0 /* fmode */
            iconst_4
            iand
            ifeq 12
            iload 1 /* oflags */
            getstatic org.jruby.util.io.ModeFlags.BINARY:I
            ior
            istore 1 /* oflags */
        12: .line 228
      StackMap locals:
      StackMap stack:
            iload 0 /* fmode */
            sipush 4096
            iand
            ifeq 13
            iload 1 /* oflags */
            ldc 268435456
            ior
            istore 1 /* oflags */
        13: .line 229
      StackMap locals:
      StackMap stack:
            iload 0 /* fmode */
            sipush 2048
            iand
            ifeq 14
            iload 1 /* oflags */
            getstatic org.jruby.util.io.ModeFlags.TRUNC:I
            ior
            istore 1 /* oflags */
        14: .line 231
      StackMap locals:
      StackMap stack:
            iload 1 /* oflags */
            ireturn
        end local 1 // int oflags
        end local 0 // int fmode
      LocalVariableTable:
        Start  End  Slot    Name  Signature
            0   15     0   fmode  I
            1   15     1  oflags  I
    MethodParameters:
       Name  Flags
      fmode  

  public static java.lang.String ioOflagsModestr(org.jruby.Ruby, int);
    descriptor: (Lorg/jruby/Ruby;I)Ljava/lang/String;
    flags: (0x0009) ACC_PUBLIC, ACC_STATIC
    Code:
      stack=4, locals=3, args_size=2
        start local 0 // org.jruby.Ruby runtime
        start local 1 // int oflags
         0: .line 236
            iload 1 /* oflags */
            getstatic jnr.constants.platform.OpenFlags.O_RDONLY:Ljnr/constants/platform/OpenFlags;
            invokevirtual jnr.constants.platform.OpenFlags.intValue:()I
            getstatic jnr.constants.platform.OpenFlags.O_WRONLY:Ljnr/constants/platform/OpenFlags;
            invokevirtual jnr.constants.platform.OpenFlags.intValue:()I
            ior
            getstatic jnr.constants.platform.OpenFlags.O_RDWR:Ljnr/constants/platform/OpenFlags;
            invokevirtual jnr.constants.platform.OpenFlags.intValue:()I
            ior
            iand
            istore 2 /* accmode */
        start local 2 // int accmode
         1: .line 237
            iload 1 /* oflags */
            getstatic jnr.constants.platform.OpenFlags.O_APPEND:Ljnr/constants/platform/OpenFlags;
            invokevirtual jnr.constants.platform.OpenFlags.intValue:()I
            iand
            ifeq 6
         2: .line 238
            iload 2 /* accmode */
            getstatic jnr.constants.platform.OpenFlags.O_WRONLY:Ljnr/constants/platform/OpenFlags;
            invokevirtual jnr.constants.platform.OpenFlags.intValue:()I
            if_icmpne 4
         3: .line 239
            iload 1 /* oflags */
            ldc "a"
            ldc "ab"
            invokestatic org.jruby.util.io.OpenFile.MODE_BINARY:(ILjava/lang/String;Ljava/lang/String;)Ljava/lang/String;
            areturn
         4: .line 241
      StackMap locals: int
      StackMap stack:
            iload 2 /* accmode */
            getstatic jnr.constants.platform.OpenFlags.O_RDWR:Ljnr/constants/platform/OpenFlags;
            invokevirtual jnr.constants.platform.OpenFlags.intValue:()I
            if_icmpne 6
         5: .line 242
            iload 1 /* oflags */
            ldc "a+"
            ldc "ab+"
            invokestatic org.jruby.util.io.OpenFile.MODE_BINARY:(ILjava/lang/String;Ljava/lang/String;)Ljava/lang/String;
            areturn
         6: .line 245
      StackMap locals:
      StackMap stack:
            invokestatic org.jruby.util.io.OpenFile.$SWITCH_TABLE$jnr$constants$platform$OpenFlags:()[I
            iload 1 /* oflags */
            getstatic jnr.constants.platform.OpenFlags.O_RDONLY:Ljnr/constants/platform/OpenFlags;
            invokevirtual jnr.constants.platform.OpenFlags.intValue:()I
            getstatic jnr.constants.platform.OpenFlags.O_WRONLY:Ljnr/constants/platform/OpenFlags;
            invokevirtual jnr.constants.platform.OpenFlags.intValue:()I
            ior
            getstatic jnr.constants.platform.OpenFlags.O_RDWR:Ljnr/constants/platform/OpenFlags;
            invokevirtual jnr.constants.platform.OpenFlags.intValue:()I
            ior
            iand
            i2l
            invokestatic jnr.constants.platform.OpenFlags.valueOf:(J)Ljnr/constants/platform/OpenFlags;
            invokevirtual jnr.constants.platform.OpenFlags.ordinal:()I
            iaload
            tableswitch { // 1 - 3
                    1: 8
                    2: 9
                    3: 10
              default: 7
          }
         7: .line 247
      StackMap locals:
      StackMap stack:
            aload 0 /* runtime */
            new java.lang.StringBuilder
            dup
            ldc "invalid access oflags 0x"
            invokespecial java.lang.StringBuilder.<init>:(Ljava/lang/String;)V
            iload 1 /* oflags */
            invokestatic java.lang.Integer.toHexString:(I)Ljava/lang/String;
            invokevirtual java.lang.StringBuilder.append:(Ljava/lang/String;)Ljava/lang/StringBuilder;
            invokevirtual java.lang.StringBuilder.toString:()Ljava/lang/String;
            invokevirtual org.jruby.Ruby.newArgumentError:(Ljava/lang/String;)Lorg/jruby/exceptions/RaiseException;
            athrow
         8: .line 249
      StackMap locals:
      StackMap stack:
            iload 1 /* oflags */
            ldc "r"
            ldc "rb"
            invokestatic org.jruby.util.io.OpenFile.MODE_BINARY:(ILjava/lang/String;Ljava/lang/String;)Ljava/lang/String;
            areturn
         9: .line 251
      StackMap locals:
      StackMap stack:
            iload 1 /* oflags */
            ldc "w"
            ldc "wb"
            invokestatic org.jruby.util.io.OpenFile.MODE_BINARY:(ILjava/lang/String;Ljava/lang/String;)Ljava/lang/String;
            areturn
        10: .line 253
      StackMap locals:
      StackMap stack:
            iload 1 /* oflags */
            ldc "r+"
            ldc "rb+"
            invokestatic org.jruby.util.io.OpenFile.MODE_BINARY:(ILjava/lang/String;Ljava/lang/String;)Ljava/lang/String;
            areturn
        end local 2 // int accmode
        end local 1 // int oflags
        end local 0 // org.jruby.Ruby runtime
      LocalVariableTable:
        Start  End  Slot     Name  Signature
            0   11     0  runtime  Lorg/jruby/Ruby;
            0   11     1   oflags  I
            1   11     2  accmode  I
    MethodParameters:
         Name  Flags
      runtime  
      oflags   

  public static int ioModestrOflags(org.jruby.Ruby, java.lang.String);
    descriptor: (Lorg/jruby/Ruby;Ljava/lang/String;)I
    flags: (0x0009) ACC_PUBLIC, ACC_STATIC
    Code:
      stack=2, locals=2, args_size=2
        start local 0 // org.jruby.Ruby runtime
        start local 1 // java.lang.String modestr
         0: .line 259
            aload 0 /* runtime */
            aload 1 /* modestr */
            invokestatic org.jruby.util.io.OpenFile.ioModestrFmode:(Lorg/jruby/Ruby;Ljava/lang/String;)I
            invokestatic org.jruby.util.io.OpenFile.ioFmodeOflags:(I)I
            ireturn
        end local 1 // java.lang.String modestr
        end local 0 // org.jruby.Ruby runtime
      LocalVariableTable:
        Start  End  Slot     Name  Signature
            0    1     0  runtime  Lorg/jruby/Ruby;
            0    1     1  modestr  Ljava/lang/String;
    MethodParameters:
         Name  Flags
      runtime  
      modestr  

  public static int ioFmodeOflags(int);
    descriptor: (I)I
    flags: (0x0009) ACC_PUBLIC, ACC_STATIC
    Code:
      stack=2, locals=2, args_size=1
        start local 0 // int fmode
         0: .line 264
            iconst_0
            istore 1 /* oflags */
        start local 1 // int oflags
         1: .line 266
            iload 0 /* fmode */
            iconst_3
            iand
            tableswitch { // 1 - 3
                    1: 2
                    2: 4
                    3: 6
              default: 7
          }
         2: .line 268
      StackMap locals: int
      StackMap stack:
            iload 1 /* oflags */
            getstatic jnr.constants.platform.OpenFlags.O_RDONLY:Ljnr/constants/platform/OpenFlags;
            invokevirtual jnr.constants.platform.OpenFlags.intValue:()I
            ior
            istore 1 /* oflags */
         3: .line 269
            goto 7
         4: .line 271
      StackMap locals:
      StackMap stack:
            iload 1 /* oflags */
            getstatic jnr.constants.platform.OpenFlags.O_WRONLY:Ljnr/constants/platform/OpenFlags;
            invokevirtual jnr.constants.platform.OpenFlags.intValue:()I
            ior
            istore 1 /* oflags */
         5: .line 272
            goto 7
         6: .line 274
      StackMap locals:
      StackMap stack:
            iload 1 /* oflags */
            getstatic jnr.constants.platform.OpenFlags.O_RDWR:Ljnr/constants/platform/OpenFlags;
            invokevirtual jnr.constants.platform.OpenFlags.intValue:()I
            ior
            istore 1 /* oflags */
         7: .line 278
      StackMap locals:
      StackMap stack:
            iload 0 /* fmode */
            bipush 64
            iand
            ifeq 9
         8: .line 279
            iload 1 /* oflags */
            getstatic jnr.constants.platform.OpenFlags.O_APPEND:Ljnr/constants/platform/OpenFlags;
            invokevirtual jnr.constants.platform.OpenFlags.intValue:()I
            ior
            istore 1 /* oflags */
         9: .line 281
      StackMap locals:
      StackMap stack:
            iload 0 /* fmode */
            sipush 2048
            iand
            ifeq 11
        10: .line 282
            iload 1 /* oflags */
            getstatic jnr.constants.platform.OpenFlags.O_TRUNC:Ljnr/constants/platform/OpenFlags;
            invokevirtual jnr.constants.platform.OpenFlags.intValue:()I
            ior
            istore 1 /* oflags */
        11: .line 284
      StackMap locals:
      StackMap stack:
            iload 0 /* fmode */
            sipush 128
            iand
            ifeq 13
        12: .line 285
            iload 1 /* oflags */
            getstatic jnr.constants.platform.OpenFlags.O_CREAT:Ljnr/constants/platform/OpenFlags;
            invokevirtual jnr.constants.platform.OpenFlags.intValue:()I
            ior
            istore 1 /* oflags */
        13: .line 287
      StackMap locals:
      StackMap stack:
            getstatic jnr.constants.platform.OpenFlags.O_BINARY:Ljnr/constants/platform/OpenFlags;
            invokevirtual jnr.constants.platform.OpenFlags.defined:()Z
            ifeq 16
        14: .line 288
            iload 0 /* fmode */
            iconst_4
            iand
            ifeq 16
        15: .line 289
            iload 1 /* oflags */
            getstatic jnr.constants.platform.OpenFlags.O_BINARY:Ljnr/constants/platform/OpenFlags;
            invokevirtual jnr.constants.platform.OpenFlags.intValue:()I
            ior
            istore 1 /* oflags */
        16: .line 293
      StackMap locals:
      StackMap stack:
            iload 1 /* oflags */
            ireturn
        end local 1 // int oflags
        end local 0 // int fmode
      LocalVariableTable:
        Start  End  Slot    Name  Signature
            0   17     0   fmode  I
            1   17     1  oflags  I
    MethodParameters:
       Name  Flags
      fmode  

  public static int ioModestrFmode(org.jruby.Ruby, java.lang.String);
    descriptor: (Lorg/jruby/Ruby;Ljava/lang/String;)I
    flags: (0x0009) ACC_PUBLIC, ACC_STATIC
    Code:
      stack=6, locals=7, args_size=2
        start local 0 // org.jruby.Ruby runtime
        start local 1 // java.lang.String modestr
         0: .line 297
            iconst_0
            istore 2 /* fmode */
        start local 2 // int fmode
         1: .line 298
            aload 1 /* modestr */
            invokevirtual java.lang.String.toCharArray:()[C
            astore 3 /* mChars */
        start local 3 // char[] mChars
         2: aconst_null
            astore 4 /* pChars */
        start local 4 // char[] pChars
         3: .line 299
            iconst_0
            istore 5 /* m */
        start local 5 // int m
         4: iconst_0
            istore 6 /* p */
        start local 6 // int p
         5: .line 301
            aload 3 /* mChars */
            arraylength
            ifne 6
            aload 0 /* runtime */
            new java.lang.StringBuilder
            dup
            ldc "invalid access mode "
            invokespecial java.lang.StringBuilder.<init>:(Ljava/lang/String;)V
            aload 1 /* modestr */
            invokevirtual java.lang.StringBuilder.append:(Ljava/lang/String;)Ljava/lang/StringBuilder;
            invokevirtual java.lang.StringBuilder.toString:()Ljava/lang/String;
            invokevirtual org.jruby.Ruby.newArgumentError:(Ljava/lang/String;)Lorg/jruby/exceptions/RaiseException;
            athrow
         6: .line 303
      StackMap locals: org.jruby.Ruby java.lang.String int char[] char[] int int
      StackMap stack:
            aload 3 /* mChars */
            iload 5 /* m */
            iinc 5 /* m */ 1
            caload
            lookupswitch { // 3
                   97: 11
                  114: 7
                  119: 9
              default: 13
          }
         7: .line 305
      StackMap locals:
      StackMap stack:
            iload 2 /* fmode */
            iconst_1
            ior
            istore 2 /* fmode */
         8: .line 306
            goto 26
         9: .line 308
      StackMap locals:
      StackMap stack:
            iload 2 /* fmode */
            sipush 2178
            ior
            istore 2 /* fmode */
        10: .line 309
            goto 26
        11: .line 311
      StackMap locals:
      StackMap stack:
            iload 2 /* fmode */
            sipush 194
            ior
            istore 2 /* fmode */
        12: .line 312
            goto 26
        13: .line 314
      StackMap locals:
      StackMap stack:
            aload 0 /* runtime */
            new java.lang.StringBuilder
            dup
            ldc "invalid access mode "
            invokespecial java.lang.StringBuilder.<init>:(Ljava/lang/String;)V
            aload 1 /* modestr */
            invokevirtual java.lang.StringBuilder.append:(Ljava/lang/String;)Ljava/lang/StringBuilder;
            invokevirtual java.lang.StringBuilder.toString:()Ljava/lang/String;
            invokevirtual org.jruby.Ruby.newArgumentError:(Ljava/lang/String;)Lorg/jruby/exceptions/RaiseException;
            athrow
        14: .line 318
      StackMap locals:
      StackMap stack:
            aload 3 /* mChars */
            iload 5 /* m */
            iinc 5 /* m */ 1
            caload
            lookupswitch { // 4
                   43: 19
                   58: 22
                   98: 15
                  116: 17
              default: 21
          }
        15: .line 320
      StackMap locals:
      StackMap stack:
            iload 2 /* fmode */
            iconst_4
            ior
            istore 2 /* fmode */
        16: .line 321
            goto 26
        17: .line 323
      StackMap locals:
      StackMap stack:
            iload 2 /* fmode */
            sipush 4096
            ior
            istore 2 /* fmode */
        18: .line 324
            goto 26
        19: .line 326
      StackMap locals:
      StackMap stack:
            iload 2 /* fmode */
            iconst_3
            ior
            istore 2 /* fmode */
        20: .line 327
            goto 26
        21: .line 329
      StackMap locals:
      StackMap stack:
            aload 0 /* runtime */
            new java.lang.StringBuilder
            dup
            ldc "invalid access mode "
            invokespecial java.lang.StringBuilder.<init>:(Ljava/lang/String;)V
            aload 1 /* modestr */
            invokevirtual java.lang.StringBuilder.append:(Ljava/lang/String;)Ljava/lang/StringBuilder;
            invokevirtual java.lang.StringBuilder.toString:()Ljava/lang/String;
            invokevirtual org.jruby.Ruby.newArgumentError:(Ljava/lang/String;)Lorg/jruby/exceptions/RaiseException;
            athrow
        22: .line 331
      StackMap locals:
      StackMap stack:
            aload 3 /* mChars */
            astore 4 /* pChars */
        23: .line 332
            iload 5 /* m */
            istore 6 /* p */
        24: .line 333
            iload 2 /* fmode */
            iconst_4
            iand
            ifeq 27
            iload 2 /* fmode */
            sipush 4096
            iand
            ifeq 27
        25: .line 334
            aload 0 /* runtime */
            new java.lang.StringBuilder
            dup
            ldc "invalid access mode "
            invokespecial java.lang.StringBuilder.<init>:(Ljava/lang/String;)V
            aload 1 /* modestr */
            invokevirtual java.lang.StringBuilder.append:(Ljava/lang/String;)Ljava/lang/StringBuilder;
            invokevirtual java.lang.StringBuilder.toString:()Ljava/lang/String;
            invokevirtual org.jruby.Ruby.newArgumentError:(Ljava/lang/String;)Lorg/jruby/exceptions/RaiseException;
            athrow
        26: .line 317
      StackMap locals:
      StackMap stack:
            iload 5 /* m */
            aload 3 /* mChars */
            arraylength
            if_icmplt 14
        27: .line 339
      StackMap locals:
      StackMap stack:
            iload 2 /* fmode */
            iconst_4
            iand
            ifeq 29
            iload 2 /* fmode */
            sipush 4096
            iand
            ifeq 29
        28: .line 340
            aload 0 /* runtime */
            new java.lang.StringBuilder
            dup
            ldc "invalid access mode "
            invokespecial java.lang.StringBuilder.<init>:(Ljava/lang/String;)V
            aload 1 /* modestr */
            invokevirtual java.lang.StringBuilder.append:(Ljava/lang/String;)Ljava/lang/StringBuilder;
            invokevirtual java.lang.StringBuilder.toString:()Ljava/lang/String;
            invokevirtual org.jruby.Ruby.newArgumentError:(Ljava/lang/String;)Lorg/jruby/exceptions/RaiseException;
            athrow
        29: .line 341
      StackMap locals:
      StackMap stack:
            iload 6 /* p */
            ifeq 31
            new java.lang.String
            dup
            aload 4 /* pChars */
            iload 6 /* p */
            aload 4 /* pChars */
            arraylength
            iload 6 /* p */
            isub
            invokespecial java.lang.String.<init>:([CII)V
            lconst_0
            invokestatic org.jruby.util.io.OpenFile.ioEncnameBomP:(Ljava/lang/String;J)Z
            ifeq 31
        30: .line 342
            iload 2 /* fmode */
            ldc 1048576
            ior
            istore 2 /* fmode */
        31: .line 344
      StackMap locals:
      StackMap stack:
            iload 2 /* fmode */
            ireturn
        end local 6 // int p
        end local 5 // int m
        end local 4 // char[] pChars
        end local 3 // char[] mChars
        end local 2 // int fmode
        end local 1 // java.lang.String modestr
        end local 0 // org.jruby.Ruby runtime
      LocalVariableTable:
        Start  End  Slot     Name  Signature
            0   32     0  runtime  Lorg/jruby/Ruby;
            0   32     1  modestr  Ljava/lang/String;
            1   32     2    fmode  I
            2   32     3   mChars  [C
            3   32     4   pChars  [C
            4   32     5        m  I
            5   32     6        p  I
    MethodParameters:
         Name  Flags
      runtime  
      modestr  

  static boolean ioEncnameBomP(java.lang.String, long);
    descriptor: (Ljava/lang/String;J)Z
    flags: (0x0008) ACC_STATIC
    Code:
      stack=4, locals=6, args_size=2
        start local 0 // java.lang.String name
        start local 1 // long len
         0: .line 348
            ldc "bom|utf-"
            astore 3 /* bom_prefix */
        start local 3 // java.lang.String bom_prefix
         1: .line 349
            aload 3 /* bom_prefix */
            invokevirtual java.lang.String.length:()I
            istore 4 /* bom_prefix_len */
        start local 4 // int bom_prefix_len
         2: .line 350
            lload 1 /* len */
            lconst_0
            lcmp
            ifne 7
         3: .line 351
            aload 0 /* name */
            bipush 58
            invokevirtual java.lang.String.indexOf:(I)I
            istore 5 /* p */
        start local 5 // int p
         4: .line 352
            iload 5 /* p */
            iconst_m1
            if_icmpeq 5
            iload 5 /* p */
            goto 6
      StackMap locals: java.lang.String int int
      StackMap stack:
         5: aload 0 /* name */
            invokevirtual java.lang.String.length:()I
      StackMap locals:
      StackMap stack: int
         6: i2l
            lstore 1 /* len */
        end local 5 // int p
         7: .line 354
      StackMap locals:
      StackMap stack:
            lload 1 /* len */
            iload 4 /* bom_prefix_len */
            i2l
            lcmp
            ifle 8
            aload 0 /* name */
            aload 3 /* bom_prefix */
            invokevirtual java.lang.String.compareToIgnoreCase:(Ljava/lang/String;)I
            ifne 8
            iconst_1
            ireturn
      StackMap locals:
      StackMap stack:
         8: iconst_0
            ireturn
        end local 4 // int bom_prefix_len
        end local 3 // java.lang.String bom_prefix
        end local 1 // long len
        end local 0 // java.lang.String name
      LocalVariableTable:
        Start  End  Slot            Name  Signature
            0    9     0            name  Ljava/lang/String;
            0    9     1             len  J
            1    9     3      bom_prefix  Ljava/lang/String;
            2    9     4  bom_prefix_len  I
            4    7     5               p  I
    MethodParameters:
      Name  Flags
      name  
      len   

  private static java.lang.String MODE_BINARY(int, java.lang.String, java.lang.String);
    descriptor: (ILjava/lang/String;Ljava/lang/String;)Ljava/lang/String;
    flags: (0x000a) ACC_PRIVATE, ACC_STATIC
    Code:
      stack=2, locals=3, args_size=3
        start local 0 // int oflags
        start local 1 // java.lang.String a
        start local 2 // java.lang.String b
         0: .line 358
            getstatic jnr.constants.platform.OpenFlags.O_BINARY:Ljnr/constants/platform/OpenFlags;
            invokevirtual jnr.constants.platform.OpenFlags.defined:()Z
            ifeq 2
            iload 0 /* oflags */
            getstatic jnr.constants.platform.OpenFlags.O_BINARY:Ljnr/constants/platform/OpenFlags;
            invokevirtual jnr.constants.platform.OpenFlags.intValue:()I
            iand
            ifeq 2
         1: .line 359
            aload 2 /* b */
            areturn
         2: .line 361
      StackMap locals:
      StackMap stack:
            aload 1 /* a */
            areturn
        end local 2 // java.lang.String b
        end local 1 // java.lang.String a
        end local 0 // int oflags
      LocalVariableTable:
        Start  End  Slot    Name  Signature
            0    3     0  oflags  I
            0    3     1       a  Ljava/lang/String;
            0    3     2       b  Ljava/lang/String;
    MethodParameters:
        Name  Flags
      oflags  
      a       
      b       

  public static java.lang.String getStringFromMode(int);
    descriptor: (I)Ljava/lang/String;
    flags: (0x0009) ACC_PUBLIC, ACC_STATIC
    Code:
      stack=2, locals=1, args_size=1
        start local 0 // int mode
         0: .line 365
            iload 0 /* mode */
            bipush 64
            iand
            ifeq 4
         1: .line 366
            iload 0 /* mode */
            iconst_3
            iand
            ifeq 3
         2: .line 367
            ldc "ab+"
            areturn
         3: .line 369
      StackMap locals:
      StackMap stack:
            ldc "ab"
            areturn
         4: .line 371
      StackMap locals:
      StackMap stack:
            iload 0 /* mode */
            iconst_3
            iand
            tableswitch { // 1 - 3
                    1: 5
                    2: 6
                    3: 7
              default: 10
          }
         5: .line 373
      StackMap locals:
      StackMap stack:
            ldc "rb"
            areturn
         6: .line 375
      StackMap locals:
      StackMap stack:
            ldc "wb"
            areturn
         7: .line 377
      StackMap locals:
      StackMap stack:
            iload 0 /* mode */
            sipush 128
            iand
            ifeq 9
         8: .line 378
            ldc "wb+"
            areturn
         9: .line 380
      StackMap locals:
      StackMap stack:
            ldc "rb+"
            areturn
        10: .line 382
      StackMap locals:
      StackMap stack:
            aconst_null
            areturn
        end local 0 // int mode
      LocalVariableTable:
        Start  End  Slot  Name  Signature
            0   11     0  mode  I
    MethodParameters:
      Name  Flags
      mode  

  public void checkCharReadable(org.jruby.runtime.ThreadContext);
    descriptor: (Lorg/jruby/runtime/ThreadContext;)V
    flags: (0x0001) ACC_PUBLIC
    Code:
      stack=3, locals=3, args_size=2
        start local 0 // org.jruby.util.io.OpenFile this
        start local 1 // org.jruby.runtime.ThreadContext context
         0: .line 387
            aload 0 /* this */
            invokevirtual org.jruby.util.io.OpenFile.checkClosed:()V
         1: .line 389
            aload 0 /* this */
            getfield org.jruby.util.io.OpenFile.mode:I
            iconst_1
            iand
            ifne 3
         2: .line 390
            aload 0 /* this */
            getfield org.jruby.util.io.OpenFile.runtime:Lorg/jruby/Ruby;
            ldc "not opened for reading"
            invokevirtual org.jruby.Ruby.newIOError:(Ljava/lang/String;)Lorg/jruby/exceptions/RaiseException;
            athrow
         3: .line 393
      StackMap locals:
      StackMap stack:
            aload 0 /* this */
            getfield org.jruby.util.io.OpenFile.wbuf:Lorg/jruby/util/io/OpenFile$Buffer;
            getfield org.jruby.util.io.OpenFile$Buffer.len:I
            ifeq 6
         4: .line 394
            aload 0 /* this */
            aload 1 /* context */
            invokevirtual org.jruby.util.io.OpenFile.io_fflush:(Lorg/jruby/runtime/ThreadContext;)I
            ifge 6
         5: .line 395
            aload 0 /* this */
            getfield org.jruby.util.io.OpenFile.runtime:Lorg/jruby/Ruby;
            aload 0 /* this */
            getfield org.jruby.util.io.OpenFile.posix:Lorg/jruby/util/io/PosixShim;
            invokevirtual org.jruby.util.io.PosixShim.getErrno:()Ljnr/constants/platform/Errno;
            ldc "error flushing"
            invokevirtual org.jruby.Ruby.newErrnoFromErrno:(Ljnr/constants/platform/Errno;Ljava/lang/String;)Lorg/jruby/exceptions/RaiseException;
            athrow
         6: .line 398
      StackMap locals:
      StackMap stack:
            aload 0 /* this */
            getfield org.jruby.util.io.OpenFile.tiedIOForWriting:Lorg/jruby/RubyIO;
            ifnull 10
         7: .line 400
            aload 0 /* this */
            getfield org.jruby.util.io.OpenFile.tiedIOForWriting:Lorg/jruby/RubyIO;
            invokevirtual org.jruby.RubyIO.getOpenFileChecked:()Lorg/jruby/util/io/OpenFile;
            astore 2 /* wfptr */
        start local 2 // org.jruby.util.io.OpenFile wfptr
         8: .line 401
            aload 2 /* wfptr */
            aload 1 /* context */
            invokevirtual org.jruby.util.io.OpenFile.io_fflush:(Lorg/jruby/runtime/ThreadContext;)I
            ifge 10
         9: .line 402
            aload 0 /* this */
            getfield org.jruby.util.io.OpenFile.runtime:Lorg/jruby/Ruby;
            aload 2 /* wfptr */
            getfield org.jruby.util.io.OpenFile.posix:Lorg/jruby/util/io/PosixShim;
            invokevirtual org.jruby.util.io.PosixShim.getErrno:()Ljnr/constants/platform/Errno;
            aload 2 /* wfptr */
            invokevirtual org.jruby.util.io.OpenFile.getPath:()Ljava/lang/String;
            invokevirtual org.jruby.Ruby.newErrnoFromErrno:(Ljnr/constants/platform/Errno;Ljava/lang/String;)Lorg/jruby/exceptions/RaiseException;
            athrow
        end local 2 // org.jruby.util.io.OpenFile wfptr
        10: .line 405
      StackMap locals:
      StackMap stack:
            return
        end local 1 // org.jruby.runtime.ThreadContext context
        end local 0 // org.jruby.util.io.OpenFile this
      LocalVariableTable:
        Start  End  Slot     Name  Signature
            0   11     0     this  Lorg/jruby/util/io/OpenFile;
            0   11     1  context  Lorg/jruby/runtime/ThreadContext;
            8   10     2    wfptr  Lorg/jruby/util/io/OpenFile;
    MethodParameters:
         Name  Flags
      context  

  public void checkByteReadable(org.jruby.runtime.ThreadContext);
    descriptor: (Lorg/jruby/runtime/ThreadContext;)V
    flags: (0x0001) ACC_PUBLIC
    Code:
      stack=2, locals=2, args_size=2
        start local 0 // org.jruby.util.io.OpenFile this
        start local 1 // org.jruby.runtime.ThreadContext context
         0: .line 409
            aload 0 /* this */
            aload 1 /* context */
            invokevirtual org.jruby.util.io.OpenFile.checkCharReadable:(Lorg/jruby/runtime/ThreadContext;)V
         1: .line 410
            aload 0 /* this */
            invokevirtual org.jruby.util.io.OpenFile.READ_CHAR_PENDING:()Z
            ifeq 3
         2: .line 411
            aload 0 /* this */
            getfield org.jruby.util.io.OpenFile.runtime:Lorg/jruby/Ruby;
            ldc "byte oriented read for character buffered IO"
            invokevirtual org.jruby.Ruby.newIOError:(Ljava/lang/String;)Lorg/jruby/exceptions/RaiseException;
            athrow
         3: .line 413
      StackMap locals:
      StackMap stack:
            return
        end local 1 // org.jruby.runtime.ThreadContext context
        end local 0 // org.jruby.util.io.OpenFile this
      LocalVariableTable:
        Start  End  Slot     Name  Signature
            0    4     0     this  Lorg/jruby/util/io/OpenFile;
            0    4     1  context  Lorg/jruby/runtime/ThreadContext;
    MethodParameters:
         Name  Flags
      context  

  public void checkReadable(org.jruby.runtime.ThreadContext);
    descriptor: (Lorg/jruby/runtime/ThreadContext;)V
    flags: (0x0001) ACC_PUBLIC
    Code:
      stack=2, locals=2, args_size=2
        start local 0 // org.jruby.util.io.OpenFile this
        start local 1 // org.jruby.runtime.ThreadContext context
         0: .line 417
            aload 0 /* this */
            aload 1 /* context */
            invokevirtual org.jruby.util.io.OpenFile.checkByteReadable:(Lorg/jruby/runtime/ThreadContext;)V
         1: .line 418
            return
        end local 1 // org.jruby.runtime.ThreadContext context
        end local 0 // org.jruby.util.io.OpenFile this
      LocalVariableTable:
        Start  End  Slot     Name  Signature
            0    2     0     this  Lorg/jruby/util/io/OpenFile;
            0    2     1  context  Lorg/jruby/runtime/ThreadContext;
    MethodParameters:
         Name  Flags
      context  

  public int io_fflush(org.jruby.runtime.ThreadContext);
    descriptor: (Lorg/jruby/runtime/ThreadContext;)I
    flags: (0x0001) ACC_PUBLIC
    Code:
      stack=2, locals=4, args_size=2
        start local 0 // org.jruby.util.io.OpenFile this
        start local 1 // org.jruby.runtime.ThreadContext context
         0: .line 422
            aload 0 /* this */
            invokevirtual org.jruby.util.io.OpenFile.lock:()Z
            istore 2 /* locked */
        start local 2 // boolean locked
         1: .line 424
            aload 0 /* this */
            invokevirtual org.jruby.util.io.OpenFile.checkClosed:()V
         2: .line 426
            aload 0 /* this */
            getfield org.jruby.util.io.OpenFile.wbuf:Lorg/jruby/util/io/OpenFile$Buffer;
            getfield org.jruby.util.io.OpenFile$Buffer.len:I
            ifne 5
         3: .line 435
            iload 2 /* locked */
            ifeq 4
            aload 0 /* this */
            invokevirtual org.jruby.util.io.OpenFile.unlock:()V
         4: .line 426
      StackMap locals: int
      StackMap stack:
            iconst_0
            ireturn
         5: .line 428
      StackMap locals:
      StackMap stack:
            aload 0 /* this */
            invokevirtual org.jruby.util.io.OpenFile.checkClosed:()V
         6: .line 430
            goto 11
         7: .line 431
      StackMap locals:
      StackMap stack:
            aload 0 /* this */
            aload 1 /* context */
            invokevirtual org.jruby.util.io.OpenFile.waitWritable:(Lorg/jruby/runtime/ThreadContext;)Z
            ifne 10
         8: .line 435
            iload 2 /* locked */
            ifeq 9
            aload 0 /* this */
            invokevirtual org.jruby.util.io.OpenFile.unlock:()V
         9: .line 431
      StackMap locals:
      StackMap stack:
            iconst_m1
            ireturn
        10: .line 432
      StackMap locals:
      StackMap stack:
            aload 0 /* this */
            invokevirtual org.jruby.util.io.OpenFile.checkClosed:()V
        11: .line 430
      StackMap locals:
      StackMap stack:
            aload 0 /* this */
            getfield org.jruby.util.io.OpenFile.wbuf:Lorg/jruby/util/io/OpenFile$Buffer;
            getfield org.jruby.util.io.OpenFile$Buffer.len:I
            ifle 16
            aload 0 /* this */
            invokevirtual org.jruby.util.io.OpenFile.flushBuffer:()I
            ifne 7
        12: .line 434
            goto 16
      StackMap locals:
      StackMap stack: java.lang.Throwable
        13: astore 3
        14: .line 435
            iload 2 /* locked */
            ifeq 15
            aload 0 /* this */
            invokevirtual org.jruby.util.io.OpenFile.unlock:()V
        15: .line 436
      StackMap locals: java.lang.Throwable
      StackMap stack:
            aload 3
            athrow
        16: .line 435
      StackMap locals:
      StackMap stack:
            iload 2 /* locked */
            ifeq 17
            aload 0 /* this */
            invokevirtual org.jruby.util.io.OpenFile.unlock:()V
        17: .line 438
      StackMap locals:
      StackMap stack:
            iconst_0
            ireturn
        end local 2 // boolean locked
        end local 1 // org.jruby.runtime.ThreadContext context
        end local 0 // org.jruby.util.io.OpenFile this
      LocalVariableTable:
        Start  End  Slot     Name  Signature
            0   18     0     this  Lorg/jruby/util/io/OpenFile;
            0   18     1  context  Lorg/jruby/runtime/ThreadContext;
            1   18     2   locked  Z
      Exception table:
        from    to  target  type
           1     3      13  any
           5     8      13  any
          10    13      13  any
    MethodParameters:
         Name  Flags
      context  

  public boolean waitWritable(org.jruby.runtime.ThreadContext, long);
    descriptor: (Lorg/jruby/runtime/ThreadContext;J)Z
    flags: (0x0001) ACC_PUBLIC
    Code:
      stack=6, locals=6, args_size=3
        start local 0 // org.jruby.util.io.OpenFile this
        start local 1 // org.jruby.runtime.ThreadContext context
        start local 2 // long timeout
         0: .line 443
            aload 0 /* this */
            invokevirtual org.jruby.util.io.OpenFile.lock:()Z
            istore 4 /* locked */
        start local 4 // boolean locked
         1: .line 445
            aload 0 /* this */
            getfield org.jruby.util.io.OpenFile.posix:Lorg/jruby/util/io/PosixShim;
            invokevirtual org.jruby.util.io.PosixShim.getErrno:()Ljnr/constants/platform/Errno;
            ifnonnull 4
         2: .line 462
            iload 4 /* locked */
            ifeq 3
            aload 0 /* this */
            invokevirtual org.jruby.util.io.OpenFile.unlock:()V
         3: .line 445
      StackMap locals: int
      StackMap stack:
            iconst_0
            ireturn
         4: .line 447
      StackMap locals:
      StackMap stack:
            aload 0 /* this */
            invokevirtual org.jruby.util.io.OpenFile.checkClosed:()V
         5: .line 449
            invokestatic org.jruby.util.io.OpenFile.$SWITCH_TABLE$jnr$constants$platform$Errno:()[I
            aload 0 /* this */
            getfield org.jruby.util.io.OpenFile.posix:Lorg/jruby/util/io/PosixShim;
            invokevirtual org.jruby.util.io.PosixShim.getErrno:()Ljnr/constants/platform/Errno;
            invokevirtual jnr.constants.platform.Errno.ordinal:()I
            iaload
            lookupswitch { // 3
                    4: 6
                   35: 9
                   36: 9
              default: 12
          }
         6: .line 452
      StackMap locals:
      StackMap stack:
            aload 0 /* this */
            getfield org.jruby.util.io.OpenFile.runtime:Lorg/jruby/Ruby;
            invokevirtual org.jruby.Ruby.getCurrentContext:()Lorg/jruby/runtime/ThreadContext;
            invokevirtual org.jruby.runtime.ThreadContext.pollThreadEvents:()V
         7: .line 462
            iload 4 /* locked */
            ifeq 8
            aload 0 /* this */
            invokevirtual org.jruby.util.io.OpenFile.unlock:()V
         8: .line 453
      StackMap locals:
      StackMap stack:
            iconst_1
            ireturn
         9: .line 456
      StackMap locals:
      StackMap stack:
            aload 0 /* this */
            aload 0 /* this */
            getfield org.jruby.util.io.OpenFile.runtime:Lorg/jruby/Ruby;
            aload 1 /* context */
            invokevirtual org.jruby.runtime.ThreadContext.getThread:()Lorg/jruby/RubyThread;
            bipush 12
            lload 2 /* timeout */
            invokevirtual org.jruby.util.io.OpenFile.ready:(Lorg/jruby/Ruby;Lorg/jruby/RubyThread;IJ)Z
            pop
        10: .line 462
            iload 4 /* locked */
            ifeq 11
            aload 0 /* this */
            invokevirtual org.jruby.util.io.OpenFile.unlock:()V
        11: .line 457
      StackMap locals:
      StackMap stack:
            iconst_1
            ireturn
        12: .line 462
      StackMap locals:
      StackMap stack:
            iload 4 /* locked */
            ifeq 13
            aload 0 /* this */
            invokevirtual org.jruby.util.io.OpenFile.unlock:()V
        13: .line 459
      StackMap locals:
      StackMap stack:
            iconst_0
            ireturn
        14: .line 461
      StackMap locals:
      StackMap stack: java.lang.Throwable
            astore 5
        15: .line 462
            iload 4 /* locked */
            ifeq 16
            aload 0 /* this */
            invokevirtual org.jruby.util.io.OpenFile.unlock:()V
        16: .line 463
      StackMap locals: java.lang.Throwable
      StackMap stack:
            aload 5
            athrow
        end local 4 // boolean locked
        end local 2 // long timeout
        end local 1 // org.jruby.runtime.ThreadContext context
        end local 0 // org.jruby.util.io.OpenFile this
      LocalVariableTable:
        Start  End  Slot     Name  Signature
            0   17     0     this  Lorg/jruby/util/io/OpenFile;
            0   17     1  context  Lorg/jruby/runtime/ThreadContext;
            0   17     2  timeout  J
            1   17     4   locked  Z
      Exception table:
        from    to  target  type
           1     2      14  any
           4     7      14  any
           9    10      14  any
    MethodParameters:
         Name  Flags
      context  
      timeout  

  public boolean waitWritable(org.jruby.runtime.ThreadContext);
    descriptor: (Lorg/jruby/runtime/ThreadContext;)Z
    flags: (0x0001) ACC_PUBLIC
    Code:
      stack=4, locals=2, args_size=2
        start local 0 // org.jruby.util.io.OpenFile this
        start local 1 // org.jruby.runtime.ThreadContext context
         0: .line 468
            aload 0 /* this */
            aload 1 /* context */
            lconst_0
            invokevirtual org.jruby.util.io.OpenFile.waitWritable:(Lorg/jruby/runtime/ThreadContext;J)Z
            ireturn
        end local 1 // org.jruby.runtime.ThreadContext context
        end local 0 // org.jruby.util.io.OpenFile this
      LocalVariableTable:
        Start  End  Slot     Name  Signature
            0    1     0     this  Lorg/jruby/util/io/OpenFile;
            0    1     1  context  Lorg/jruby/runtime/ThreadContext;
    MethodParameters:
         Name  Flags
      context  

  public boolean waitReadable(org.jruby.runtime.ThreadContext, long);
    descriptor: (Lorg/jruby/runtime/ThreadContext;J)Z
    flags: (0x0001) ACC_PUBLIC
    Code:
      stack=6, locals=6, args_size=3
        start local 0 // org.jruby.util.io.OpenFile this
        start local 1 // org.jruby.runtime.ThreadContext context
        start local 2 // long timeout
         0: .line 473
            aload 0 /* this */
            invokevirtual org.jruby.util.io.OpenFile.lock:()Z
            istore 4 /* locked */
        start local 4 // boolean locked
         1: .line 475
            aload 0 /* this */
            getfield org.jruby.util.io.OpenFile.posix:Lorg/jruby/util/io/PosixShim;
            invokevirtual org.jruby.util.io.PosixShim.getErrno:()Ljnr/constants/platform/Errno;
            ifnonnull 4
         2: .line 492
            iload 4 /* locked */
            ifeq 3
            aload 0 /* this */
            invokevirtual org.jruby.util.io.OpenFile.unlock:()V
         3: .line 475
      StackMap locals: int
      StackMap stack:
            iconst_0
            ireturn
         4: .line 477
      StackMap locals:
      StackMap stack:
            aload 0 /* this */
            invokevirtual org.jruby.util.io.OpenFile.checkClosed:()V
         5: .line 479
            invokestatic org.jruby.util.io.OpenFile.$SWITCH_TABLE$jnr$constants$platform$Errno:()[I
            aload 0 /* this */
            getfield org.jruby.util.io.OpenFile.posix:Lorg/jruby/util/io/PosixShim;
            invokevirtual org.jruby.util.io.PosixShim.getErrno:()Ljnr/constants/platform/Errno;
            invokevirtual jnr.constants.platform.Errno.ordinal:()I
            iaload
            lookupswitch { // 3
                    4: 6
                   35: 9
                   36: 9
              default: 12
          }
         6: .line 482
      StackMap locals:
      StackMap stack:
            aload 0 /* this */
            getfield org.jruby.util.io.OpenFile.runtime:Lorg/jruby/Ruby;
            invokevirtual org.jruby.Ruby.getCurrentContext:()Lorg/jruby/runtime/ThreadContext;
            invokevirtual org.jruby.runtime.ThreadContext.pollThreadEvents:()V
         7: .line 492
            iload 4 /* locked */
            ifeq 8
            aload 0 /* this */
            invokevirtual org.jruby.util.io.OpenFile.unlock:()V
         8: .line 483
      StackMap locals:
      StackMap stack:
            iconst_1
            ireturn
         9: .line 486
      StackMap locals:
      StackMap stack:
            aload 0 /* this */
            aload 0 /* this */
            getfield org.jruby.util.io.OpenFile.runtime:Lorg/jruby/Ruby;
            aload 1 /* context */
            invokevirtual org.jruby.runtime.ThreadContext.getThread:()Lorg/jruby/RubyThread;
            iconst_1
            lload 2 /* timeout */
            invokevirtual org.jruby.util.io.OpenFile.ready:(Lorg/jruby/Ruby;Lorg/jruby/RubyThread;IJ)Z
            pop
        10: .line 492
            iload 4 /* locked */
            ifeq 11
            aload 0 /* this */
            invokevirtual org.jruby.util.io.OpenFile.unlock:()V
        11: .line 487
      StackMap locals:
      StackMap stack:
            iconst_1
            ireturn
        12: .line 492
      StackMap locals:
      StackMap stack:
            iload 4 /* locked */
            ifeq 13
            aload 0 /* this */
            invokevirtual org.jruby.util.io.OpenFile.unlock:()V
        13: .line 489
      StackMap locals:
      StackMap stack:
            iconst_0
            ireturn
        14: .line 491
      StackMap locals:
      StackMap stack: java.lang.Throwable
            astore 5
        15: .line 492
            iload 4 /* locked */
            ifeq 16
            aload 0 /* this */
            invokevirtual org.jruby.util.io.OpenFile.unlock:()V
        16: .line 493
      StackMap locals: java.lang.Throwable
      StackMap stack:
            aload 5
            athrow
        end local 4 // boolean locked
        end local 2 // long timeout
        end local 1 // org.jruby.runtime.ThreadContext context
        end local 0 // org.jruby.util.io.OpenFile this
      LocalVariableTable:
        Start  End  Slot     Name  Signature
            0   17     0     this  Lorg/jruby/util/io/OpenFile;
            0   17     1  context  Lorg/jruby/runtime/ThreadContext;
            0   17     2  timeout  J
            1   17     4   locked  Z
      Exception table:
        from    to  target  type
           1     2      14  any
           4     7      14  any
           9    10      14  any
    MethodParameters:
         Name  Flags
      context  
      timeout  

  public boolean waitReadable(org.jruby.runtime.ThreadContext);
    descriptor: (Lorg/jruby/runtime/ThreadContext;)Z
    flags: (0x0001) ACC_PUBLIC
    Code:
      stack=4, locals=2, args_size=2
        start local 0 // org.jruby.util.io.OpenFile this
        start local 1 // org.jruby.runtime.ThreadContext context
         0: .line 498
            aload 0 /* this */
            aload 1 /* context */
            ldc -1
            invokevirtual org.jruby.util.io.OpenFile.waitReadable:(Lorg/jruby/runtime/ThreadContext;J)Z
            ireturn
        end local 1 // org.jruby.runtime.ThreadContext context
        end local 0 // org.jruby.util.io.OpenFile this
      LocalVariableTable:
        Start  End  Slot     Name  Signature
            0    1     0     this  Lorg/jruby/util/io/OpenFile;
            0    1     1  context  Lorg/jruby/runtime/ThreadContext;
    MethodParameters:
         Name  Flags
      context  

  public boolean ready(org.jruby.Ruby, org.jruby.RubyThread, int, long);
    descriptor: (Lorg/jruby/Ruby;Lorg/jruby/RubyThread;IJ)Z
    flags: (0x0001) ACC_PUBLIC
    Code:
      stack=6, locals=10, args_size=5
        start local 0 // org.jruby.util.io.OpenFile this
        start local 1 // org.jruby.Ruby runtime
        start local 2 // org.jruby.RubyThread thread
        start local 3 // int ops
        start local 4 // long timeout
         0: .line 512
            aload 0 /* this */
            invokevirtual org.jruby.util.io.OpenFile.lock:()Z
            istore 6 /* locked */
        start local 6 // boolean locked
         1: .line 514
            aload 0 /* this */
            getfield org.jruby.util.io.OpenFile.fd:Lorg/jruby/util/io/ChannelFD;
            getfield org.jruby.util.io.ChannelFD.chSelect:Ljava/nio/channels/SelectableChannel;
            ifnull 9
         2: .line 515
            iload 3 /* ops */
            aload 0 /* this */
            getfield org.jruby.util.io.OpenFile.fd:Lorg/jruby/util/io/ChannelFD;
            getfield org.jruby.util.io.ChannelFD.chSelect:Ljava/nio/channels/SelectableChannel;
            invokevirtual java.nio.channels.SelectableChannel.validOps:()I
            iand
            istore 7 /* realOps */
        start local 7 // int realOps
         3: .line 517
            iload 7 /* realOps */
            iconst_4
            iand
            iload 3 /* ops */
            iconst_4
            iand
            if_icmpeq 6
         4: .line 534
            iload 6 /* locked */
            ifeq 5
            aload 0 /* this */
            invokevirtual org.jruby.util.io.OpenFile.unlock:()V
         5: .line 519
      StackMap locals: int int
      StackMap stack:
            iconst_1
            ireturn
         6: .line 522
      StackMap locals:
      StackMap stack:
            aload 2 /* thread */
            aload 0 /* this */
            getfield org.jruby.util.io.OpenFile.fd:Lorg/jruby/util/io/ChannelFD;
            getfield org.jruby.util.io.ChannelFD.chSelect:Ljava/nio/channels/SelectableChannel;
            aload 0 /* this */
            iload 7 /* realOps */
            lload 4 /* timeout */
            invokevirtual org.jruby.RubyThread.select:(Ljava/nio/channels/Channel;Lorg/jruby/util/io/OpenFile;IJ)Z
            istore 9
         7: .line 534
            iload 6 /* locked */
            ifeq 8
            aload 0 /* this */
            invokevirtual org.jruby.util.io.OpenFile.unlock:()V
         8: .line 522
      StackMap locals: org.jruby.util.io.OpenFile org.jruby.Ruby org.jruby.RubyThread int long int int top int
      StackMap stack:
            iload 9
            ireturn
        end local 7 // int realOps
         9: .line 524
      StackMap locals: org.jruby.util.io.OpenFile org.jruby.Ruby org.jruby.RubyThread int long int
      StackMap stack:
            aload 0 /* this */
            getfield org.jruby.util.io.OpenFile.fd:Lorg/jruby/util/io/ChannelFD;
            getfield org.jruby.util.io.ChannelFD.chSeek:Ljava/nio/channels/SeekableByteChannel;
            ifnull 17
        10: .line 525
            aload 0 /* this */
            getfield org.jruby.util.io.OpenFile.fd:Lorg/jruby/util/io/ChannelFD;
            getfield org.jruby.util.io.ChannelFD.chSeek:Ljava/nio/channels/SeekableByteChannel;
            invokeinterface java.nio.channels.SeekableByteChannel.position:()J
            ldc -1
            lcmp
            ifeq 13
        11: .line 526
            aload 0 /* this */
            getfield org.jruby.util.io.OpenFile.fd:Lorg/jruby/util/io/ChannelFD;
            getfield org.jruby.util.io.ChannelFD.chSeek:Ljava/nio/channels/SeekableByteChannel;
            invokeinterface java.nio.channels.SeekableByteChannel.size:()J
            ldc -1
            lcmp
            ifeq 13
        12: .line 527
            aload 0 /* this */
            getfield org.jruby.util.io.OpenFile.fd:Lorg/jruby/util/io/ChannelFD;
            getfield org.jruby.util.io.ChannelFD.chSeek:Ljava/nio/channels/SeekableByteChannel;
            invokeinterface java.nio.channels.SeekableByteChannel.position:()J
            aload 0 /* this */
            getfield org.jruby.util.io.OpenFile.fd:Lorg/jruby/util/io/ChannelFD;
            getfield org.jruby.util.io.ChannelFD.chSeek:Ljava/nio/channels/SeekableByteChannel;
            invokeinterface java.nio.channels.SeekableByteChannel.size:()J
            lcmp
            ifge 13
            iconst_1
            goto 14
      StackMap locals:
      StackMap stack:
        13: iconst_0
      StackMap locals:
      StackMap stack: int
        14: istore 9
        15: .line 534
            iload 6 /* locked */
            ifeq 16
            aload 0 /* this */
            invokevirtual org.jruby.util.io.OpenFile.unlock:()V
        16: .line 525
      StackMap locals: org.jruby.util.io.OpenFile org.jruby.Ruby org.jruby.RubyThread int long int top top int
      StackMap stack:
            iload 9
            ireturn
        17: .line 534
      StackMap locals: org.jruby.util.io.OpenFile org.jruby.Ruby org.jruby.RubyThread int long int
      StackMap stack:
            iload 6 /* locked */
            ifeq 18
            aload 0 /* this */
            invokevirtual org.jruby.util.io.OpenFile.unlock:()V
        18: .line 530
      StackMap locals:
      StackMap stack:
            iconst_0
            ireturn
        19: .line 531
      StackMap locals:
      StackMap stack: java.io.IOException
            astore 7 /* ioe */
        start local 7 // java.io.IOException ioe
        20: .line 532
            aload 1 /* runtime */
            aload 7 /* ioe */
            invokevirtual org.jruby.Ruby.newIOErrorFromException:(Ljava/io/IOException;)Lorg/jruby/exceptions/RaiseException;
            athrow
        end local 7 // java.io.IOException ioe
        21: .line 533
      StackMap locals:
      StackMap stack: java.lang.Throwable
            astore 8
        22: .line 534
            iload 6 /* locked */
            ifeq 23
            aload 0 /* this */
            invokevirtual org.jruby.util.io.OpenFile.unlock:()V
        23: .line 535
      StackMap locals: org.jruby.util.io.OpenFile org.jruby.Ruby org.jruby.RubyThread int long int top java.lang.Throwable
      StackMap stack:
            aload 8
            athrow
        end local 6 // boolean locked
        end local 4 // long timeout
        end local 3 // int ops
        end local 2 // org.jruby.RubyThread thread
        end local 1 // org.jruby.Ruby runtime
        end local 0 // org.jruby.util.io.OpenFile this
      LocalVariableTable:
        Start  End  Slot     Name  Signature
            0   24     0     this  Lorg/jruby/util/io/OpenFile;
            0   24     1  runtime  Lorg/jruby/Ruby;
            0   24     2   thread  Lorg/jruby/RubyThread;
            0   24     3      ops  I
            0   24     4  timeout  J
            1   24     6   locked  Z
            3    9     7  realOps  I
           20   21     7      ioe  Ljava/io/IOException;
      Exception table:
        from    to  target  type
           1     4      19  Class java.io.IOException
           6     7      19  Class java.io.IOException
           9    15      19  Class java.io.IOException
           1     4      21  any
           6     7      21  any
           9    15      21  any
          19    21      21  any
    MethodParameters:
         Name  Flags
      runtime  
      thread   
      ops      
      timeout  

  public boolean readyNow(org.jruby.runtime.ThreadContext);
    descriptor: (Lorg/jruby/runtime/ThreadContext;)Z
    flags: (0x0001) ACC_PUBLIC
    Code:
      stack=6, locals=2, args_size=2
        start local 0 // org.jruby.util.io.OpenFile this
        start local 1 // org.jruby.runtime.ThreadContext context
         0: .line 546
            aload 0 /* this */
            aload 1 /* context */
            getfield org.jruby.runtime.ThreadContext.runtime:Lorg/jruby/Ruby;
            aload 1 /* context */
            invokevirtual org.jruby.runtime.ThreadContext.getThread:()Lorg/jruby/RubyThread;
            iconst_1
            lconst_0
            invokevirtual org.jruby.util.io.OpenFile.ready:(Lorg/jruby/Ruby;Lorg/jruby/RubyThread;IJ)Z
            ireturn
        end local 1 // org.jruby.runtime.ThreadContext context
        end local 0 // org.jruby.util.io.OpenFile this
      LocalVariableTable:
        Start  End  Slot     Name  Signature
            0    1     0     this  Lorg/jruby/util/io/OpenFile;
            0    1     1  context  Lorg/jruby/runtime/ThreadContext;
    MethodParameters:
         Name  Flags
      context  

  public int flushBuffer();
    descriptor: ()I
    flags: (0x0001) ACC_PUBLIC
    Code:
      stack=1, locals=3, args_size=1
        start local 0 // org.jruby.util.io.OpenFile this
         0: .line 551
            aload 0 /* this */
            getfield org.jruby.util.io.OpenFile.write_lock:Ljava/util/concurrent/locks/ReentrantReadWriteLock;
            ifnull 8
         1: .line 552
            aload 0 /* this */
            getfield org.jruby.util.io.OpenFile.write_lock:Ljava/util/concurrent/locks/ReentrantReadWriteLock;
            invokevirtual java.util.concurrent.locks.ReentrantReadWriteLock.writeLock:()Ljava/util/concurrent/locks/ReentrantReadWriteLock$WriteLock;
            invokevirtual java.util.concurrent.locks.ReentrantReadWriteLock$WriteLock.lock:()V
         2: .line 554
            aload 0 /* this */
            invokevirtual org.jruby.util.io.OpenFile.flushBufferAsync2:()I
            istore 2
         3: .line 556
            aload 0 /* this */
            getfield org.jruby.util.io.OpenFile.write_lock:Ljava/util/concurrent/locks/ReentrantReadWriteLock;
            invokevirtual java.util.concurrent.locks.ReentrantReadWriteLock.writeLock:()Ljava/util/concurrent/locks/ReentrantReadWriteLock$WriteLock;
            invokevirtual java.util.concurrent.locks.ReentrantReadWriteLock$WriteLock.unlock:()V
         4: .line 554
            iload 2
            ireturn
         5: .line 555
      StackMap locals:
      StackMap stack: java.lang.Throwable
            astore 1
         6: .line 556
            aload 0 /* this */
            getfield org.jruby.util.io.OpenFile.write_lock:Ljava/util/concurrent/locks/ReentrantReadWriteLock;
            invokevirtual java.util.concurrent.locks.ReentrantReadWriteLock.writeLock:()Ljava/util/concurrent/locks/ReentrantReadWriteLock$WriteLock;
            invokevirtual java.util.concurrent.locks.ReentrantReadWriteLock$WriteLock.unlock:()V
         7: .line 557
            aload 1
            athrow
         8: .line 559
      StackMap locals:
      StackMap stack:
            aload 0 /* this */
            invokevirtual org.jruby.util.io.OpenFile.flushBufferAsync2:()I
            ireturn
        end local 0 // org.jruby.util.io.OpenFile this
      LocalVariableTable:
        Start  End  Slot  Name  Signature
            0    9     0  this  Lorg/jruby/util/io/OpenFile;
      Exception table:
        from    to  target  type
           2     3       5  any

  public int flushBufferAsync2();
    descriptor: ()I
    flags: (0x0001) ACC_PUBLIC
    Code:
      stack=1, locals=1, args_size=1
        start local 0 // org.jruby.util.io.OpenFile this
         0: .line 566
            aload 0 /* this */
            invokevirtual org.jruby.util.io.OpenFile.flushBufferSync2:()I
            ireturn
        end local 0 // org.jruby.util.io.OpenFile this
      LocalVariableTable:
        Start  End  Slot  Name  Signature
            0    1     0  this  Lorg/jruby/util/io/OpenFile;

  private int flushBufferSync2();
    descriptor: ()I
    flags: (0x0002) ACC_PRIVATE
    Code:
      stack=1, locals=2, args_size=1
        start local 0 // org.jruby.util.io.OpenFile this
         0: .line 573
            aload 0 /* this */
            invokevirtual org.jruby.util.io.OpenFile.flushBufferSync:()I
            istore 1 /* result */
        start local 1 // int result
         1: .line 575
            iload 1 /* result */
            ireturn
        end local 1 // int result
        end local 0 // org.jruby.util.io.OpenFile this
      LocalVariableTable:
        Start  End  Slot    Name  Signature
            0    2     0    this  Lorg/jruby/util/io/OpenFile;
            1    2     1  result  I

  private int flushBufferSync();
    descriptor: ()I
    flags: (0x0002) ACC_PRIVATE
    Code:
      stack=6, locals=3, args_size=1
        start local 0 // org.jruby.util.io.OpenFile this
         0: .line 581
            aload 0 /* this */
            aload 0 /* this */
            getfield org.jruby.util.io.OpenFile.wbuf:Lorg/jruby/util/io/OpenFile$Buffer;
            getfield org.jruby.util.io.OpenFile$Buffer.len:I
            invokevirtual org.jruby.util.io.OpenFile.writableLength:(I)I
            istore 1 /* l */
        start local 1 // int l
         1: .line 582
            aload 0 /* this */
            getfield org.jruby.util.io.OpenFile.posix:Lorg/jruby/util/io/PosixShim;
            aload 0 /* this */
            getfield org.jruby.util.io.OpenFile.fd:Lorg/jruby/util/io/ChannelFD;
            aload 0 /* this */
            getfield org.jruby.util.io.OpenFile.wbuf:Lorg/jruby/util/io/OpenFile$Buffer;
            getfield org.jruby.util.io.OpenFile$Buffer.ptr:[B
            aload 0 /* this */
            getfield org.jruby.util.io.OpenFile.wbuf:Lorg/jruby/util/io/OpenFile$Buffer;
            getfield org.jruby.util.io.OpenFile$Buffer.off:I
            iload 1 /* l */
            aload 0 /* this */
            getfield org.jruby.util.io.OpenFile.nonblock:Z
            invokevirtual org.jruby.util.io.PosixShim.write:(Lorg/jruby/util/io/ChannelFD;[BIIZ)I
            istore 2 /* r */
        start local 2 // int r
         2: .line 584
            aload 0 /* this */
            getfield org.jruby.util.io.OpenFile.wbuf:Lorg/jruby/util/io/OpenFile$Buffer;
            getfield org.jruby.util.io.OpenFile$Buffer.len:I
            iload 2 /* r */
            if_icmpgt 6
         3: .line 585
            aload 0 /* this */
            getfield org.jruby.util.io.OpenFile.wbuf:Lorg/jruby/util/io/OpenFile$Buffer;
            iconst_0
            putfield org.jruby.util.io.OpenFile$Buffer.off:I
         4: .line 586
            aload 0 /* this */
            getfield org.jruby.util.io.OpenFile.wbuf:Lorg/jruby/util/io/OpenFile$Buffer;
            iconst_0
            putfield org.jruby.util.io.OpenFile$Buffer.len:I
         5: .line 587
            iconst_0
            ireturn
         6: .line 589
      StackMap locals: int int
      StackMap stack:
            iload 2 /* r */
            iflt 10
         7: .line 590
            aload 0 /* this */
            getfield org.jruby.util.io.OpenFile.wbuf:Lorg/jruby/util/io/OpenFile$Buffer;
            dup
            getfield org.jruby.util.io.OpenFile$Buffer.off:I
            iload 2 /* r */
            iadd
            putfield org.jruby.util.io.OpenFile$Buffer.off:I
         8: .line 591
            aload 0 /* this */
            getfield org.jruby.util.io.OpenFile.wbuf:Lorg/jruby/util/io/OpenFile$Buffer;
            dup
            getfield org.jruby.util.io.OpenFile$Buffer.len:I
            iload 2 /* r */
            isub
            putfield org.jruby.util.io.OpenFile$Buffer.len:I
         9: .line 592
            aload 0 /* this */
            getfield org.jruby.util.io.OpenFile.posix:Lorg/jruby/util/io/PosixShim;
            getstatic jnr.constants.platform.Errno.EAGAIN:Ljnr/constants/platform/Errno;
            invokevirtual org.jruby.util.io.PosixShim.setErrno:(Ljnr/constants/platform/Errno;)V
        10: .line 594
      StackMap locals:
      StackMap stack:
            iconst_m1
            ireturn
        end local 2 // int r
        end local 1 // int l
        end local 0 // org.jruby.util.io.OpenFile this
      LocalVariableTable:
        Start  End  Slot  Name  Signature
            0   11     0  this  Lorg/jruby/util/io/OpenFile;
            1   11     1     l  I
            2   11     2     r  I

  private int writableLength(int);
    descriptor: (I)I
    flags: (0x0002) ACC_PRIVATE
    Code:
      stack=1, locals=2, args_size=2
        start local 0 // org.jruby.util.io.OpenFile this
        start local 1 // int l
         0: .line 606
            iload 1 /* l */
            ireturn
        end local 1 // int l
        end local 0 // org.jruby.util.io.OpenFile this
      LocalVariableTable:
        Start  End  Slot  Name  Signature
            0    1     0  this  Lorg/jruby/util/io/OpenFile;
            0    1     1     l  I
    MethodParameters:
      Name  Flags
      l     

  private boolean wsplit();
    descriptor: ()Z
    flags: (0x0002) ACC_PRIVATE
    Code:
      stack=2, locals=1, args_size=1
        start local 0 // org.jruby.util.io.OpenFile this
         0: .line 639
            aload 0 /* this */
            getfield org.jruby.util.io.OpenFile.mode:I
            sipush 512
            iand
            ifeq 1
            iconst_1
            ireturn
      StackMap locals:
      StackMap stack:
         1: iconst_0
            ireturn
        end local 0 // org.jruby.util.io.OpenFile this
      LocalVariableTable:
        Start  End  Slot  Name  Signature
            0    2     0  this  Lorg/jruby/util/io/OpenFile;

  public long seek(org.jruby.runtime.ThreadContext, long, int);
    descriptor: (Lorg/jruby/runtime/ThreadContext;JI)J
    flags: (0x0001) ACC_PUBLIC
    Code:
      stack=5, locals=9, args_size=4
        start local 0 // org.jruby.util.io.OpenFile this
        start local 1 // org.jruby.runtime.ThreadContext context
        start local 2 // long offset
        start local 4 // int whence
         0: .line 644
            aload 0 /* this */
            invokevirtual org.jruby.util.io.OpenFile.lock:()Z
            istore 5 /* locked */
        start local 5 // boolean locked
         1: .line 646
            aload 0 /* this */
            aload 1 /* context */
            invokevirtual org.jruby.util.io.OpenFile.flushBeforeSeek:(Lorg/jruby/runtime/ThreadContext;)V
         2: .line 647
            aload 0 /* this */
            getfield org.jruby.util.io.OpenFile.posix:Lorg/jruby/util/io/PosixShim;
            aload 0 /* this */
            getfield org.jruby.util.io.OpenFile.fd:Lorg/jruby/util/io/ChannelFD;
            lload 2 /* offset */
            iload 4 /* whence */
            invokevirtual org.jruby.util.io.PosixShim.lseek:(Lorg/jruby/util/io/ChannelFD;JI)J
            lstore 7
         3: .line 649
            iload 5 /* locked */
            ifeq 4
            aload 0 /* this */
            invokevirtual org.jruby.util.io.OpenFile.unlock:()V
         4: .line 647
      StackMap locals: org.jruby.util.io.OpenFile org.jruby.runtime.ThreadContext long int int top long
      StackMap stack:
            lload 7
            lreturn
         5: .line 648
      StackMap locals: org.jruby.util.io.OpenFile org.jruby.runtime.ThreadContext long int int
      StackMap stack: java.lang.Throwable
            astore 6
         6: .line 649
            iload 5 /* locked */
            ifeq 7
            aload 0 /* this */
            invokevirtual org.jruby.util.io.OpenFile.unlock:()V
         7: .line 650
      StackMap locals: java.lang.Throwable
      StackMap stack:
            aload 6
            athrow
        end local 5 // boolean locked
        end local 4 // int whence
        end local 2 // long offset
        end local 1 // org.jruby.runtime.ThreadContext context
        end local 0 // org.jruby.util.io.OpenFile this
      LocalVariableTable:
        Start  End  Slot     Name  Signature
            0    8     0     this  Lorg/jruby/util/io/OpenFile;
            0    8     1  context  Lorg/jruby/runtime/ThreadContext;
            0    8     2   offset  J
            0    8     4   whence  I
            1    8     5   locked  Z
      Exception table:
        from    to  target  type
           1     3       5  any
    MethodParameters:
         Name  Flags
      context  
      offset   
      whence   

  private void flushBeforeSeek(org.jruby.runtime.ThreadContext);
    descriptor: (Lorg/jruby/runtime/ThreadContext;)V
    flags: (0x0002) ACC_PRIVATE
    Code:
      stack=3, locals=4, args_size=2
        start local 0 // org.jruby.util.io.OpenFile this
        start local 1 // org.jruby.runtime.ThreadContext context
         0: .line 655
            aload 0 /* this */
            invokevirtual org.jruby.util.io.OpenFile.lock:()Z
            istore 2 /* locked */
        start local 2 // boolean locked
         1: .line 657
            aload 0 /* this */
            aload 1 /* context */
            invokevirtual org.jruby.util.io.OpenFile.io_fflush:(Lorg/jruby/runtime/ThreadContext;)I
            ifge 3
         2: .line 658
            aload 1 /* context */
            getfield org.jruby.runtime.ThreadContext.runtime:Lorg/jruby/Ruby;
            aload 0 /* this */
            getfield org.jruby.util.io.OpenFile.posix:Lorg/jruby/util/io/PosixShim;
            invokevirtual org.jruby.util.io.PosixShim.getErrno:()Ljnr/constants/platform/Errno;
            ldc ""
            invokevirtual org.jruby.Ruby.newErrnoFromErrno:(Ljnr/constants/platform/Errno;Ljava/lang/String;)Lorg/jruby/exceptions/RaiseException;
            athrow
         3: .line 659
      StackMap locals: int
      StackMap stack:
            aload 0 /* this */
            aload 1 /* context */
            invokevirtual org.jruby.util.io.OpenFile.unread:(Lorg/jruby/runtime/ThreadContext;)V
         4: .line 660
            aload 0 /* this */
            getfield org.jruby.util.io.OpenFile.posix:Lorg/jruby/util/io/PosixShim;
            aconst_null
            invokevirtual org.jruby.util.io.PosixShim.setErrno:(Ljnr/constants/platform/Errno;)V
         5: .line 661
            goto 9
      StackMap locals:
      StackMap stack: java.lang.Throwable
         6: astore 3
         7: .line 662
            iload 2 /* locked */
            ifeq 8
            aload 0 /* this */
            invokevirtual org.jruby.util.io.OpenFile.unlock:()V
         8: .line 663
      StackMap locals: java.lang.Throwable
      StackMap stack:
            aload 3
            athrow
         9: .line 662
      StackMap locals:
      StackMap stack:
            iload 2 /* locked */
            ifeq 10
            aload 0 /* this */
            invokevirtual org.jruby.util.io.OpenFile.unlock:()V
        10: .line 664
      StackMap locals:
      StackMap stack:
            return
        end local 2 // boolean locked
        end local 1 // org.jruby.runtime.ThreadContext context
        end local 0 // org.jruby.util.io.OpenFile this
      LocalVariableTable:
        Start  End  Slot     Name  Signature
            0   11     0     this  Lorg/jruby/util/io/OpenFile;
            0   11     1  context  Lorg/jruby/runtime/ThreadContext;
            1   11     2   locked  Z
      Exception table:
        from    to  target  type
           1     6       6  any
    MethodParameters:
         Name  Flags
      context  

  public void checkWritable(org.jruby.runtime.ThreadContext);
    descriptor: (Lorg/jruby/runtime/ThreadContext;)V
    flags: (0x0001) ACC_PUBLIC
    Code:
      stack=2, locals=4, args_size=2
        start local 0 // org.jruby.util.io.OpenFile this
        start local 1 // org.jruby.runtime.ThreadContext context
         0: .line 667
            aload 0 /* this */
            invokevirtual org.jruby.util.io.OpenFile.lock:()Z
            istore 2 /* locked */
        start local 2 // boolean locked
         1: .line 669
            aload 0 /* this */
            invokevirtual org.jruby.util.io.OpenFile.checkClosed:()V
         2: .line 670
            aload 0 /* this */
            getfield org.jruby.util.io.OpenFile.mode:I
            iconst_2
            iand
            ifne 4
         3: .line 671
            aload 1 /* context */
            getfield org.jruby.runtime.ThreadContext.runtime:Lorg/jruby/Ruby;
            ldc "not opened for writing"
            invokevirtual org.jruby.Ruby.newIOError:(Ljava/lang/String;)Lorg/jruby/exceptions/RaiseException;
            athrow
         4: .line 673
      StackMap locals: int
      StackMap stack:
            aload 0 /* this */
            getfield org.jruby.util.io.OpenFile.rbuf:Lorg/jruby/util/io/OpenFile$Buffer;
            getfield org.jruby.util.io.OpenFile$Buffer.len:I
            ifeq 10
         5: .line 674
            aload 0 /* this */
            aload 1 /* context */
            invokevirtual org.jruby.util.io.OpenFile.unread:(Lorg/jruby/runtime/ThreadContext;)V
         6: .line 676
            goto 10
      StackMap locals:
      StackMap stack: java.lang.Throwable
         7: astore 3
         8: .line 677
            iload 2 /* locked */
            ifeq 9
            aload 0 /* this */
            invokevirtual org.jruby.util.io.OpenFile.unlock:()V
         9: .line 678
      StackMap locals: java.lang.Throwable
      StackMap stack:
            aload 3
            athrow
        10: .line 677
      StackMap locals:
      StackMap stack:
            iload 2 /* locked */
            ifeq 11
            aload 0 /* this */
            invokevirtual org.jruby.util.io.OpenFile.unlock:()V
        11: .line 679
      StackMap locals:
      StackMap stack:
            return
        end local 2 // boolean locked
        end local 1 // org.jruby.runtime.ThreadContext context
        end local 0 // org.jruby.util.io.OpenFile this
      LocalVariableTable:
        Start  End  Slot     Name  Signature
            0   12     0     this  Lorg/jruby/util/io/OpenFile;
            0   12     1  context  Lorg/jruby/runtime/ThreadContext;
            1   12     2   locked  Z
      Exception table:
        from    to  target  type
           1     7       7  any
    MethodParameters:
         Name  Flags
      context  

  public void checkClosed();
    descriptor: ()V
    flags: (0x0001) ACC_PUBLIC
    Code:
      stack=2, locals=1, args_size=1
        start local 0 // org.jruby.util.io.OpenFile this
         0: .line 682
            aload 0 /* this */
            getfield org.jruby.util.io.OpenFile.fd:Lorg/jruby/util/io/ChannelFD;
            ifnonnull 2
         1: .line 683
            aload 0 /* this */
            getfield org.jruby.util.io.OpenFile.runtime:Lorg/jruby/Ruby;
            ldc "closed stream"
            invokevirtual org.jruby.Ruby.newIOError:(Ljava/lang/String;)Lorg/jruby/exceptions/RaiseException;
            athrow
         2: .line 685
      StackMap locals:
      StackMap stack:
            return
        end local 0 // org.jruby.util.io.OpenFile this
      LocalVariableTable:
        Start  End  Slot  Name  Signature
            0    3     0  this  Lorg/jruby/util/io/OpenFile;

  public boolean isBinmode();
    descriptor: ()Z
    flags: (0x0001) ACC_PUBLIC
    Code:
      stack=2, locals=1, args_size=1
        start local 0 // org.jruby.util.io.OpenFile this
         0: .line 688
            aload 0 /* this */
            getfield org.jruby.util.io.OpenFile.mode:I
            iconst_4
            iand
            ifeq 1
            iconst_1
            ireturn
      StackMap locals:
      StackMap stack:
         1: iconst_0
            ireturn
        end local 0 // org.jruby.util.io.OpenFile this
      LocalVariableTable:
        Start  End  Slot  Name  Signature
            0    2     0  this  Lorg/jruby/util/io/OpenFile;

  public boolean isTextMode();
    descriptor: ()Z
    flags: (0x0001) ACC_PUBLIC
    Code:
      stack=2, locals=1, args_size=1
        start local 0 // org.jruby.util.io.OpenFile this
         0: .line 692
            aload 0 /* this */
            getfield org.jruby.util.io.OpenFile.mode:I
            sipush 4096
            iand
            ifeq 1
            iconst_1
            ireturn
      StackMap locals:
      StackMap stack:
         1: iconst_0
            ireturn
        end local 0 // org.jruby.util.io.OpenFile this
      LocalVariableTable:
        Start  End  Slot  Name  Signature
            0    2     0  this  Lorg/jruby/util/io/OpenFile;

  public void setTextMode();
    descriptor: ()V
    flags: (0x0001) ACC_PUBLIC
    Code:
      stack=3, locals=1, args_size=1
        start local 0 // org.jruby.util.io.OpenFile this
         0: .line 696
            aload 0 /* this */
            dup
            getfield org.jruby.util.io.OpenFile.mode:I
            sipush 4096
            ior
            putfield org.jruby.util.io.OpenFile.mode:I
         1: .line 697
            return
        end local 0 // org.jruby.util.io.OpenFile this
      LocalVariableTable:
        Start  End  Slot  Name  Signature
            0    2     0  this  Lorg/jruby/util/io/OpenFile;

  public void clearTextMode();
    descriptor: ()V
    flags: (0x0001) ACC_PUBLIC
    Code:
      stack=3, locals=1, args_size=1
        start local 0 // org.jruby.util.io.OpenFile this
         0: .line 700
            aload 0 /* this */
            dup
            getfield org.jruby.util.io.OpenFile.mode:I
            sipush -4097
            iand
            putfield org.jruby.util.io.OpenFile.mode:I
         1: .line 701
            return
        end local 0 // org.jruby.util.io.OpenFile this
      LocalVariableTable:
        Start  End  Slot  Name  Signature
            0    2     0  this  Lorg/jruby/util/io/OpenFile;

  public void setBinmode();
    descriptor: ()V
    flags: (0x0001) ACC_PUBLIC
    Code:
      stack=3, locals=1, args_size=1
        start local 0 // org.jruby.util.io.OpenFile this
         0: .line 704
            aload 0 /* this */
            dup
            getfield org.jruby.util.io.OpenFile.mode:I
            iconst_4
            ior
            putfield org.jruby.util.io.OpenFile.mode:I
         1: .line 705
            return
        end local 0 // org.jruby.util.io.OpenFile this
      LocalVariableTable:
        Start  End  Slot  Name  Signature
            0    2     0  this  Lorg/jruby/util/io/OpenFile;

  public boolean isOpen();
    descriptor: ()Z
    flags: (0x0001) ACC_PUBLIC
    Code:
      stack=1, locals=1, args_size=1
        start local 0 // org.jruby.util.io.OpenFile this
         0: .line 708
            aload 0 /* this */
            getfield org.jruby.util.io.OpenFile.fd:Lorg/jruby/util/io/ChannelFD;
            ifnull 1
            iconst_1
            ireturn
      StackMap locals:
      StackMap stack:
         1: iconst_0
            ireturn
        end local 0 // org.jruby.util.io.OpenFile this
      LocalVariableTable:
        Start  End  Slot  Name  Signature
            0    2     0  this  Lorg/jruby/util/io/OpenFile;

  public boolean isReadable();
    descriptor: ()Z
    flags: (0x0001) ACC_PUBLIC
    Code:
      stack=2, locals=1, args_size=1
        start local 0 // org.jruby.util.io.OpenFile this
         0: .line 712
            aload 0 /* this */
            getfield org.jruby.util.io.OpenFile.mode:I
            iconst_1
            iand
            ifeq 1
            iconst_1
            ireturn
      StackMap locals:
      StackMap stack:
         1: iconst_0
            ireturn
        end local 0 // org.jruby.util.io.OpenFile this
      LocalVariableTable:
        Start  End  Slot  Name  Signature
            0    2     0  this  Lorg/jruby/util/io/OpenFile;

  public boolean isWritable();
    descriptor: ()Z
    flags: (0x0001) ACC_PUBLIC
    Code:
      stack=2, locals=1, args_size=1
        start local 0 // org.jruby.util.io.OpenFile this
         0: .line 716
            aload 0 /* this */
            getfield org.jruby.util.io.OpenFile.mode:I
            iconst_2
            iand
            ifeq 1
            iconst_1
            ireturn
      StackMap locals:
      StackMap stack:
         1: iconst_0
            ireturn
        end local 0 // org.jruby.util.io.OpenFile this
      LocalVariableTable:
        Start  End  Slot  Name  Signature
            0    2     0  this  Lorg/jruby/util/io/OpenFile;

  public boolean isDuplex();
    descriptor: ()Z
    flags: (0x0001) ACC_PUBLIC
    Code:
      stack=2, locals=1, args_size=1
        start local 0 // org.jruby.util.io.OpenFile this
         0: .line 720
            aload 0 /* this */
            getfield org.jruby.util.io.OpenFile.mode:I
            bipush 32
            iand
            ifeq 1
            iconst_1
            ireturn
      StackMap locals:
      StackMap stack:
         1: iconst_0
            ireturn
        end local 0 // org.jruby.util.io.OpenFile this
      LocalVariableTable:
        Start  End  Slot  Name  Signature
            0    2     0  this  Lorg/jruby/util/io/OpenFile;

  public boolean isReadBuffered();
    descriptor: ()Z
    flags: (0x0001) ACC_PUBLIC
    Code:
      stack=1, locals=1, args_size=1
        start local 0 // org.jruby.util.io.OpenFile this
         0: .line 724
            aload 0 /* this */
            invokevirtual org.jruby.util.io.OpenFile.READ_DATA_BUFFERED:()Z
            ireturn
        end local 0 // org.jruby.util.io.OpenFile this
      LocalVariableTable:
        Start  End  Slot  Name  Signature
            0    1     0  this  Lorg/jruby/util/io/OpenFile;

  public boolean isWriteBuffered();
    descriptor: ()Z
    flags: (0x0001) ACC_PUBLIC
    Code:
      stack=1, locals=1, args_size=1
        start local 0 // org.jruby.util.io.OpenFile this
         0: .line 728
            iconst_0
            ireturn
        end local 0 // org.jruby.util.io.OpenFile this
      LocalVariableTable:
        Start  End  Slot  Name  Signature
            0    1     0  this  Lorg/jruby/util/io/OpenFile;

  public void setSync(boolean);
    descriptor: (Z)V
    flags: (0x0001) ACC_PUBLIC
    Code:
      stack=3, locals=4, args_size=2
        start local 0 // org.jruby.util.io.OpenFile this
        start local 1 // boolean sync
         0: .line 732
            aload 0 /* this */
            invokevirtual org.jruby.util.io.OpenFile.lock:()Z
            istore 2 /* locked */
        start local 2 // boolean locked
         1: .line 734
            iload 1 /* sync */
            ifeq 4
         2: .line 735
            aload 0 /* this */
            dup
            getfield org.jruby.util.io.OpenFile.mode:I
            bipush 8
            ior
            putfield org.jruby.util.io.OpenFile.mode:I
         3: .line 736
            goto 9
         4: .line 737
      StackMap locals: int
      StackMap stack:
            aload 0 /* this */
            dup
            getfield org.jruby.util.io.OpenFile.mode:I
            bipush -9
            iand
            putfield org.jruby.util.io.OpenFile.mode:I
         5: .line 739
            goto 9
      StackMap locals:
      StackMap stack: java.lang.Throwable
         6: astore 3
         7: .line 740
            iload 2 /* locked */
            ifeq 8
            aload 0 /* this */
            invokevirtual org.jruby.util.io.OpenFile.unlock:()V
         8: .line 741
      StackMap locals: java.lang.Throwable
      StackMap stack:
            aload 3
            athrow
         9: .line 740
      StackMap locals:
      StackMap stack:
            iload 2 /* locked */
            ifeq 10
            aload 0 /* this */
            invokevirtual org.jruby.util.io.OpenFile.unlock:()V
        10: .line 742
      StackMap locals:
      StackMap stack:
            return
        end local 2 // boolean locked
        end local 1 // boolean sync
        end local 0 // org.jruby.util.io.OpenFile this
      LocalVariableTable:
        Start  End  Slot    Name  Signature
            0   11     0    this  Lorg/jruby/util/io/OpenFile;
            0   11     1    sync  Z
            1   11     2  locked  Z
      Exception table:
        from    to  target  type
           1     6       6  any
    MethodParameters:
      Name  Flags
      sync  

  public boolean isSync();
    descriptor: ()Z
    flags: (0x0001) ACC_PUBLIC
    Code:
      stack=2, locals=1, args_size=1
        start local 0 // org.jruby.util.io.OpenFile this
         0: .line 745
            aload 0 /* this */
            getfield org.jruby.util.io.OpenFile.mode:I
            bipush 24
            iand
            ifeq 1
            iconst_1
            ireturn
      StackMap locals:
      StackMap stack:
         1: iconst_0
            ireturn
        end local 0 // org.jruby.util.io.OpenFile this
      LocalVariableTable:
        Start  End  Slot  Name  Signature
            0    2     0  this  Lorg/jruby/util/io/OpenFile;

  public void setMode(int);
    descriptor: (I)V
    flags: (0x0001) ACC_PUBLIC
    Code:
      stack=2, locals=2, args_size=2
        start local 0 // org.jruby.util.io.OpenFile this
        start local 1 // int modes
         0: .line 749
            aload 0 /* this */
            iload 1 /* modes */
            putfield org.jruby.util.io.OpenFile.mode:I
         1: .line 750
            return
        end local 1 // int modes
        end local 0 // org.jruby.util.io.OpenFile this
      LocalVariableTable:
        Start  End  Slot   Name  Signature
            0    2     0   this  Lorg/jruby/util/io/OpenFile;
            0    2     1  modes  I
    MethodParameters:
       Name  Flags
      modes  

  public java.lang.Process getProcess();
    descriptor: ()Ljava/lang/Process;
    flags: (0x0001) ACC_PUBLIC
    Code:
      stack=1, locals=1, args_size=1
        start local 0 // org.jruby.util.io.OpenFile this
         0: .line 753
            aload 0 /* this */
            getfield org.jruby.util.io.OpenFile.process:Ljava/lang/Process;
            areturn
        end local 0 // org.jruby.util.io.OpenFile this
      LocalVariableTable:
        Start  End  Slot  Name  Signature
            0    1     0  this  Lorg/jruby/util/io/OpenFile;

  public void setProcess(java.lang.Process);
    descriptor: (Ljava/lang/Process;)V
    flags: (0x0001) ACC_PUBLIC
    Code:
      stack=2, locals=2, args_size=2
        start local 0 // org.jruby.util.io.OpenFile this
        start local 1 // java.lang.Process process
         0: .line 757
            aload 0 /* this */
            aload 1 /* process */
            putfield org.jruby.util.io.OpenFile.process:Ljava/lang/Process;
         1: .line 758
            return
        end local 1 // java.lang.Process process
        end local 0 // org.jruby.util.io.OpenFile this
      LocalVariableTable:
        Start  End  Slot     Name  Signature
            0    2     0     this  Lorg/jruby/util/io/OpenFile;
            0    2     1  process  Ljava/lang/Process;
    MethodParameters:
         Name  Flags
      process  

  public long getPid();
    descriptor: ()J
    flags: (0x0001) ACC_PUBLIC
    Code:
      stack=4, locals=1, args_size=1
        start local 0 // org.jruby.util.io.OpenFile this
         0: .line 761
            aload 0 /* this */
            getfield org.jruby.util.io.OpenFile.pid:J
            ldc -1
            lcmp
            ifeq 1
            aload 0 /* this */
            getfield org.jruby.util.io.OpenFile.pid:J
            lreturn
         1: .line 763
      StackMap locals:
      StackMap stack:
            aload 0 /* this */
            getfield org.jruby.util.io.OpenFile.process:Ljava/lang/Process;
            invokestatic org.jruby.util.ShellLauncher.getPidFromProcess:(Ljava/lang/Process;)J
            lreturn
        end local 0 // org.jruby.util.io.OpenFile this
      LocalVariableTable:
        Start  End  Slot  Name  Signature
            0    2     0  this  Lorg/jruby/util/io/OpenFile;

  public void setPid(long);
    descriptor: (J)V
    flags: (0x0001) ACC_PUBLIC
    Code:
      stack=3, locals=3, args_size=2
        start local 0 // org.jruby.util.io.OpenFile this
        start local 1 // long pid
         0: .line 767
            aload 0 /* this */
            lload 1 /* pid */
            putfield org.jruby.util.io.OpenFile.pid:J
         1: .line 768
            return
        end local 1 // long pid
        end local 0 // org.jruby.util.io.OpenFile this
      LocalVariableTable:
        Start  End  Slot  Name  Signature
            0    2     0  this  Lorg/jruby/util/io/OpenFile;
            0    2     1   pid  J
    MethodParameters:
      Name  Flags
      pid   

  public int getLineNumber();
    descriptor: ()I
    flags: (0x0001) ACC_PUBLIC
    Code:
      stack=1, locals=1, args_size=1
        start local 0 // org.jruby.util.io.OpenFile this
         0: .line 771
            aload 0 /* this */
            getfield org.jruby.util.io.OpenFile.lineno:I
            ireturn
        end local 0 // org.jruby.util.io.OpenFile this
      LocalVariableTable:
        Start  End  Slot  Name  Signature
            0    1     0  this  Lorg/jruby/util/io/OpenFile;

  public void setLineNumber(int);
    descriptor: (I)V
    flags: (0x0001) ACC_PUBLIC
    Code:
      stack=2, locals=2, args_size=2
        start local 0 // org.jruby.util.io.OpenFile this
        start local 1 // int lineNumber
         0: .line 775
            aload 0 /* this */
            iload 1 /* lineNumber */
            putfield org.jruby.util.io.OpenFile.lineno:I
         1: .line 776
            return
        end local 1 // int lineNumber
        end local 0 // org.jruby.util.io.OpenFile this
      LocalVariableTable:
        Start  End  Slot        Name  Signature
            0    2     0        this  Lorg/jruby/util/io/OpenFile;
            0    2     1  lineNumber  I
    MethodParameters:
            Name  Flags
      lineNumber  

  public java.lang.String getPath();
    descriptor: ()Ljava/lang/String;
    flags: (0x0001) ACC_PUBLIC
    Code:
      stack=1, locals=1, args_size=1
        start local 0 // org.jruby.util.io.OpenFile this
         0: .line 779
            aload 0 /* this */
            getfield org.jruby.util.io.OpenFile.pathv:Ljava/lang/String;
            areturn
        end local 0 // org.jruby.util.io.OpenFile this
      LocalVariableTable:
        Start  End  Slot  Name  Signature
            0    1     0  this  Lorg/jruby/util/io/OpenFile;

  public void setPath(java.lang.String);
    descriptor: (Ljava/lang/String;)V
    flags: (0x0001) ACC_PUBLIC
    Code:
      stack=2, locals=2, args_size=2
        start local 0 // org.jruby.util.io.OpenFile this
        start local 1 // java.lang.String path
         0: .line 783
            aload 0 /* this */
            aload 1 /* path */
            putfield org.jruby.util.io.OpenFile.pathv:Ljava/lang/String;
         1: .line 784
            return
        end local 1 // java.lang.String path
        end local 0 // org.jruby.util.io.OpenFile this
      LocalVariableTable:
        Start  End  Slot  Name  Signature
            0    2     0  this  Lorg/jruby/util/io/OpenFile;
            0    2     1  path  Ljava/lang/String;
    MethodParameters:
      Name  Flags
      path  

  public boolean isAutoclose();
    descriptor: ()Z
    flags: (0x0001) ACC_PUBLIC
    Code:
      stack=2, locals=1, args_size=1
        start local 0 // org.jruby.util.io.OpenFile this
         0: .line 787
            aload 0 /* this */
            getfield org.jruby.util.io.OpenFile.mode:I
            ldc 65536
            iand
            ifne 1
            iconst_1
            ireturn
      StackMap locals:
      StackMap stack:
         1: iconst_0
            ireturn
        end local 0 // org.jruby.util.io.OpenFile this
      LocalVariableTable:
        Start  End  Slot  Name  Signature
            0    2     0  this  Lorg/jruby/util/io/OpenFile;

  public void setAutoclose(boolean);
    descriptor: (Z)V
    flags: (0x0001) ACC_PUBLIC
    Code:
      stack=3, locals=4, args_size=2
        start local 0 // org.jruby.util.io.OpenFile this
        start local 1 // boolean autoclose
         0: .line 791
            aload 0 /* this */
            invokevirtual org.jruby.util.io.OpenFile.lock:()Z
            istore 2 /* locked */
        start local 2 // boolean locked
         1: .line 793
            iload 1 /* autoclose */
            ifne 3
         2: .line 794
            aload 0 /* this */
            dup
            getfield org.jruby.util.io.OpenFile.mode:I
            ldc 65536
            ior
            putfield org.jruby.util.io.OpenFile.mode:I
            goto 8
         3: .line 796
      StackMap locals: int
      StackMap stack:
            aload 0 /* this */
            dup
            getfield org.jruby.util.io.OpenFile.mode:I
            ldc -65537
            iand
            putfield org.jruby.util.io.OpenFile.mode:I
         4: .line 797
            goto 8
      StackMap locals:
      StackMap stack: java.lang.Throwable
         5: astore 3
         6: .line 798
            iload 2 /* locked */
            ifeq 7
            aload 0 /* this */
            invokevirtual org.jruby.util.io.OpenFile.unlock:()V
         7: .line 799
      StackMap locals: java.lang.Throwable
      StackMap stack:
            aload 3
            athrow
         8: .line 798
      StackMap locals:
      StackMap stack:
            iload 2 /* locked */
            ifeq 9
            aload 0 /* this */
            invokevirtual org.jruby.util.io.OpenFile.unlock:()V
         9: .line 800
      StackMap locals:
      StackMap stack:
            return
        end local 2 // boolean locked
        end local 1 // boolean autoclose
        end local 0 // org.jruby.util.io.OpenFile this
      LocalVariableTable:
        Start  End  Slot       Name  Signature
            0   10     0       this  Lorg/jruby/util/io/OpenFile;
            0   10     1  autoclose  Z
            1   10     2     locked  Z
      Exception table:
        from    to  target  type
           1     5       5  any
    MethodParameters:
           Name  Flags
      autoclose  

  public org.jruby.util.io.OpenFile$Finalizer getFinalizer();
    descriptor: ()Lorg/jruby/util/io/OpenFile$Finalizer;
    flags: (0x0001) ACC_PUBLIC
    Code:
      stack=1, locals=1, args_size=1
        start local 0 // org.jruby.util.io.OpenFile this
         0: .line 803
            aload 0 /* this */
            getfield org.jruby.util.io.OpenFile.finalizer:Lorg/jruby/util/io/OpenFile$Finalizer;
            areturn
        end local 0 // org.jruby.util.io.OpenFile this
      LocalVariableTable:
        Start  End  Slot  Name  Signature
            0    1     0  this  Lorg/jruby/util/io/OpenFile;

  public void setFinalizer(org.jruby.util.io.OpenFile$Finalizer);
    descriptor: (Lorg/jruby/util/io/OpenFile$Finalizer;)V
    flags: (0x0001) ACC_PUBLIC
    Code:
      stack=2, locals=2, args_size=2
        start local 0 // org.jruby.util.io.OpenFile this
        start local 1 // org.jruby.util.io.OpenFile$Finalizer finalizer
         0: .line 807
            aload 0 /* this */
            aload 1 /* finalizer */
            putfield org.jruby.util.io.OpenFile.finalizer:Lorg/jruby/util/io/OpenFile$Finalizer;
         1: .line 808
            return
        end local 1 // org.jruby.util.io.OpenFile$Finalizer finalizer
        end local 0 // org.jruby.util.io.OpenFile this
      LocalVariableTable:
        Start  End  Slot       Name  Signature
            0    2     0       this  Lorg/jruby/util/io/OpenFile;
            0    2     1  finalizer  Lorg/jruby/util/io/OpenFile$Finalizer;
    MethodParameters:
           Name  Flags
      finalizer  

  public void cleanup(org.jruby.Ruby, boolean);
    descriptor: (Lorg/jruby/Ruby;Z)V
    flags: (0x0001) ACC_PUBLIC
    Code:
      stack=4, locals=5, args_size=3
        start local 0 // org.jruby.util.io.OpenFile this
        start local 1 // org.jruby.Ruby runtime
        start local 2 // boolean noraise
         0: .line 811
            aload 0 /* this */
            invokevirtual org.jruby.util.io.OpenFile.lock:()Z
            istore 3 /* locked */
        start local 3 // boolean locked
         1: .line 813
            aload 0 /* this */
            getfield org.jruby.util.io.OpenFile.finalizer:Lorg/jruby/util/io/OpenFile$Finalizer;
            ifnull 4
         2: .line 814
            aload 0 /* this */
            getfield org.jruby.util.io.OpenFile.finalizer:Lorg/jruby/util/io/OpenFile$Finalizer;
            aload 1 /* runtime */
            aload 0 /* this */
            iload 2 /* noraise */
            invokeinterface org.jruby.util.io.OpenFile$Finalizer.finalize:(Lorg/jruby/Ruby;Lorg/jruby/util/io/OpenFile;Z)V
         3: .line 815
            goto 9
         4: .line 816
      StackMap locals: int
      StackMap stack:
            aload 0 /* this */
            aload 1 /* runtime */
            invokevirtual org.jruby.Ruby.getCurrentContext:()Lorg/jruby/runtime/ThreadContext;
            iload 2 /* noraise */
            invokevirtual org.jruby.util.io.OpenFile.finalize:(Lorg/jruby/runtime/ThreadContext;Z)V
         5: .line 818
            goto 9
      StackMap locals:
      StackMap stack: java.lang.Throwable
         6: astore 4
         7: .line 819
            iload 3 /* locked */
            ifeq 8
            aload 0 /* this */
            invokevirtual org.jruby.util.io.OpenFile.unlock:()V
         8: .line 820
      StackMap locals: java.lang.Throwable
      StackMap stack:
            aload 4
            athrow
         9: .line 819
      StackMap locals:
      StackMap stack:
            iload 3 /* locked */
            ifeq 10
            aload 0 /* this */
            invokevirtual org.jruby.util.io.OpenFile.unlock:()V
        10: .line 821
      StackMap locals:
      StackMap stack:
            return
        end local 3 // boolean locked
        end local 2 // boolean noraise
        end local 1 // org.jruby.Ruby runtime
        end local 0 // org.jruby.util.io.OpenFile this
      LocalVariableTable:
        Start  End  Slot     Name  Signature
            0   11     0     this  Lorg/jruby/util/io/OpenFile;
            0   11     1  runtime  Lorg/jruby/Ruby;
            0   11     2  noraise  Z
            1   11     3   locked  Z
      Exception table:
        from    to  target  type
           1     6       6  any
    MethodParameters:
         Name  Flags
      runtime  
      noraise  

  public void finalize();
    descriptor: ()V
    flags: (0x0001) ACC_PUBLIC
    Code:
      stack=3, locals=1, args_size=1
        start local 0 // org.jruby.util.io.OpenFile this
         0: .line 846
            aload 0 /* this */
            getfield org.jruby.util.io.OpenFile.fd:Lorg/jruby/util/io/ChannelFD;
            ifnull 1
            aload 0 /* this */
            invokevirtual org.jruby.util.io.OpenFile.isAutoclose:()Z
            ifeq 1
            aload 0 /* this */
            aload 0 /* this */
            getfield org.jruby.util.io.OpenFile.runtime:Lorg/jruby/Ruby;
            invokevirtual org.jruby.Ruby.getCurrentContext:()Lorg/jruby/runtime/ThreadContext;
            iconst_1
            invokevirtual org.jruby.util.io.OpenFile.finalize:(Lorg/jruby/runtime/ThreadContext;Z)V
         1: .line 847
      StackMap locals:
      StackMap stack:
            return
        end local 0 // org.jruby.util.io.OpenFile this
      LocalVariableTable:
        Start  End  Slot  Name  Signature
            0    2     0  this  Lorg/jruby/util/io/OpenFile;

  public void finalize(org.jruby.runtime.ThreadContext, boolean);
    descriptor: (Lorg/jruby/runtime/ThreadContext;Z)V
    flags: (0x0001) ACC_PUBLIC
    Code:
      stack=3, locals=3, args_size=3
        start local 0 // org.jruby.util.io.OpenFile this
        start local 1 // org.jruby.runtime.ThreadContext context
        start local 2 // boolean noraise
         0: .line 850
            aload 0 /* this */
            aload 1 /* context */
            iload 2 /* noraise */
            invokevirtual org.jruby.util.io.OpenFile.finalizeFlush:(Lorg/jruby/runtime/ThreadContext;Z)V
         1: .line 851
            return
        end local 2 // boolean noraise
        end local 1 // org.jruby.runtime.ThreadContext context
        end local 0 // org.jruby.util.io.OpenFile this
      LocalVariableTable:
        Start  End  Slot     Name  Signature
            0    2     0     this  Lorg/jruby/util/io/OpenFile;
            0    2     1  context  Lorg/jruby/runtime/ThreadContext;
            0    2     2  noraise  Z
    MethodParameters:
         Name  Flags
      context  
      noraise  

  public void finalizeFlush(org.jruby.runtime.ThreadContext, boolean);
    descriptor: (Lorg/jruby/runtime/ThreadContext;Z)V
    flags: (0x0001) ACC_PUBLIC
    Code:
      stack=3, locals=7, args_size=3
        start local 0 // org.jruby.util.io.OpenFile this
        start local 1 // org.jruby.runtime.ThreadContext context
        start local 2 // boolean noraise
         0: .line 854
            aload 1 /* context */
            getfield org.jruby.runtime.ThreadContext.nil:Lorg/jruby/runtime/builtin/IRubyObject;
            astore 3 /* err */
        start local 3 // org.jruby.runtime.builtin.IRubyObject err
         1: .line 855
            aload 0 /* this */
            invokevirtual org.jruby.util.io.OpenFile.fd:()Lorg/jruby/util/io/ChannelFD;
            astore 4 /* fd */
        start local 4 // org.jruby.util.io.ChannelFD fd
         2: .line 856
            aload 0 /* this */
            getfield org.jruby.util.io.OpenFile.stdio_file:Ljava/io/Closeable;
            astore 5 /* stdio_file */
        start local 5 // java.io.Closeable stdio_file
         3: .line 858
            aload 0 /* this */
            getfield org.jruby.util.io.OpenFile.writeconv:Lorg/jcodings/transcode/EConv;
            ifnull 14
         4: .line 859
            aload 0 /* this */
            getfield org.jruby.util.io.OpenFile.write_lock:Ljava/util/concurrent/locks/ReentrantReadWriteLock;
            ifnull 13
            iload 2 /* noraise */
            ifne 13
         5: .line 861
            aload 0 /* this */
            getfield org.jruby.util.io.OpenFile.write_lock:Ljava/util/concurrent/locks/ReentrantReadWriteLock;
            invokevirtual java.util.concurrent.locks.ReentrantReadWriteLock.writeLock:()Ljava/util/concurrent/locks/ReentrantReadWriteLock$WriteLock;
            invokevirtual java.util.concurrent.locks.ReentrantReadWriteLock$WriteLock.lock:()V
         6: .line 863
            aload 0 /* this */
            aload 1 /* context */
            iload 2 /* noraise */
            invokevirtual org.jruby.util.io.OpenFile.finishWriteconv:(Lorg/jruby/runtime/ThreadContext;Z)Lorg/jruby/runtime/builtin/IRubyObject;
            pop
         7: .line 864
            goto 11
      StackMap locals: org.jruby.util.io.OpenFile org.jruby.runtime.ThreadContext int org.jruby.runtime.builtin.IRubyObject org.jruby.util.io.ChannelFD java.io.Closeable
      StackMap stack: java.lang.Throwable
         8: astore 6
         9: .line 865
            aload 0 /* this */
            getfield org.jruby.util.io.OpenFile.write_lock:Ljava/util/concurrent/locks/ReentrantReadWriteLock;
            invokevirtual java.util.concurrent.locks.ReentrantReadWriteLock.writeLock:()Ljava/util/concurrent/locks/ReentrantReadWriteLock$WriteLock;
            invokevirtual java.util.concurrent.locks.ReentrantReadWriteLock$WriteLock.unlock:()V
        10: .line 866
            aload 6
            athrow
        11: .line 865
      StackMap locals:
      StackMap stack:
            aload 0 /* this */
            getfield org.jruby.util.io.OpenFile.write_lock:Ljava/util/concurrent/locks/ReentrantReadWriteLock;
            invokevirtual java.util.concurrent.locks.ReentrantReadWriteLock.writeLock:()Ljava/util/concurrent/locks/ReentrantReadWriteLock$WriteLock;
            invokevirtual java.util.concurrent.locks.ReentrantReadWriteLock$WriteLock.unlock:()V
        12: .line 867
            goto 14
        13: .line 869
      StackMap locals:
      StackMap stack:
            aload 0 /* this */
            aload 1 /* context */
            iload 2 /* noraise */
            invokevirtual org.jruby.util.io.OpenFile.finishWriteconv:(Lorg/jruby/runtime/ThreadContext;Z)Lorg/jruby/runtime/builtin/IRubyObject;
            astore 3 /* err */
        14: .line 872
      StackMap locals:
      StackMap stack:
            aload 0 /* this */
            getfield org.jruby.util.io.OpenFile.wbuf:Lorg/jruby/util/io/OpenFile$Buffer;
            getfield org.jruby.util.io.OpenFile$Buffer.len:I
            ifeq 23
        15: .line 873
            iload 2 /* noraise */
            ifeq 19
        16: .line 874
            aload 0 /* this */
            invokevirtual org.jruby.util.io.OpenFile.flushBufferSync:()I
            ifge 23
            aload 3 /* err */
            aload 1 /* context */
            getfield org.jruby.runtime.ThreadContext.nil:Lorg/jruby/runtime/builtin/IRubyObject;
            if_acmpne 23
        17: .line 875
            aload 1 /* context */
            getfield org.jruby.runtime.ThreadContext.tru:Lorg/jruby/RubyBoolean;
            astore 3 /* err */
        18: .line 876
            goto 23
        19: .line 878
      StackMap locals:
      StackMap stack:
            aload 0 /* this */
            aload 1 /* context */
            invokevirtual org.jruby.util.io.OpenFile.io_fflush:(Lorg/jruby/runtime/ThreadContext;)I
            ifge 23
            aload 3 /* err */
            aload 1 /* context */
            getfield org.jruby.runtime.ThreadContext.nil:Lorg/jruby/runtime/builtin/IRubyObject;
            if_acmpne 23
        20: .line 879
            aload 0 /* this */
            getfield org.jruby.util.io.OpenFile.runtime:Lorg/jruby/Ruby;
            aload 0 /* this */
            getfield org.jruby.util.io.OpenFile.posix:Lorg/jruby/util/io/PosixShim;
            invokevirtual org.jruby.util.io.PosixShim.getErrno:()Ljnr/constants/platform/Errno;
            ifnonnull 21
            lconst_0
            goto 22
      StackMap locals:
      StackMap stack: org.jruby.Ruby
        21: aload 0 /* this */
            getfield org.jruby.util.io.OpenFile.posix:Lorg/jruby/util/io/PosixShim;
            invokevirtual org.jruby.util.io.PosixShim.getErrno:()Ljnr/constants/platform/Errno;
            invokevirtual jnr.constants.platform.Errno.longValue:()J
      StackMap locals: org.jruby.util.io.OpenFile org.jruby.runtime.ThreadContext int org.jruby.runtime.builtin.IRubyObject org.jruby.util.io.ChannelFD java.io.Closeable
      StackMap stack: org.jruby.Ruby long
        22: invokestatic org.jruby.RubyFixnum.newFixnum:(Lorg/jruby/Ruby;J)Lorg/jruby/RubyFixnum;
            astore 3 /* err */
        23: .line 884
      StackMap locals:
      StackMap stack:
            aload 0 /* this */
            aconst_null
            putfield org.jruby.util.io.OpenFile.fd:Lorg/jruby/util/io/ChannelFD;
        24: .line 885
            aload 0 /* this */
            invokevirtual org.jruby.util.io.OpenFile.clearStdio:()V
        25: .line 886
            aload 0 /* this */
            dup
            getfield org.jruby.util.io.OpenFile.mode:I
            bipush -4
            iand
            putfield org.jruby.util.io.OpenFile.mode:I
        26: .line 888
            aload 0 /* this */
            invokevirtual org.jruby.util.io.OpenFile.IS_PREP_STDIO:()Z
            ifne 38
            aload 0 /* this */
            invokevirtual org.jruby.util.io.OpenFile.isStdio:()Z
            ifne 38
        27: .line 890
            aload 5 /* stdio_file */
            ifnull 33
        28: .line 893
            aload 0 /* this */
            getfield org.jruby.util.io.OpenFile.posix:Lorg/jruby/util/io/PosixShim;
            aload 5 /* stdio_file */
            invokevirtual org.jruby.util.io.PosixShim.close:(Ljava/io/Closeable;)I
            ifge 38
            aload 3 /* err */
            invokeinterface org.jruby.runtime.builtin.IRubyObject.isNil:()Z
            ifeq 38
        29: .line 894
            iload 2 /* noraise */
            ifeq 30
            aload 1 /* context */
            getfield org.jruby.runtime.ThreadContext.tru:Lorg/jruby/RubyBoolean;
            goto 31
      StackMap locals:
      StackMap stack:
        30: aload 0 /* this */
            getfield org.jruby.util.io.OpenFile.runtime:Lorg/jruby/Ruby;
            aload 0 /* this */
            getfield org.jruby.util.io.OpenFile.posix:Lorg/jruby/util/io/PosixShim;
            invokevirtual org.jruby.util.io.PosixShim.getErrno:()Ljnr/constants/platform/Errno;
            invokevirtual jnr.constants.platform.Errno.intValue:()I
            i2l
            invokestatic org.jruby.RubyNumeric.int2fix:(Lorg/jruby/Ruby;J)Lorg/jruby/RubyNumeric;
      StackMap locals:
      StackMap stack: org.jruby.RubyObject
        31: astore 3 /* err */
        32: .line 895
            goto 38
      StackMap locals:
      StackMap stack:
        33: aload 4 /* fd */
            ifnull 38
        34: .line 899
            aload 0 /* this */
            getfield org.jruby.util.io.OpenFile.posix:Lorg/jruby/util/io/PosixShim;
            aload 4 /* fd */
            invokevirtual org.jruby.util.io.PosixShim.close:(Lorg/jruby/util/io/ChannelFD;)I
            ifge 38
            aload 3 /* err */
            invokeinterface org.jruby.runtime.builtin.IRubyObject.isNil:()Z
            ifeq 38
        35: .line 900
            iload 2 /* noraise */
            ifeq 36
            aload 1 /* context */
            getfield org.jruby.runtime.ThreadContext.tru:Lorg/jruby/RubyBoolean;
            goto 37
      StackMap locals:
      StackMap stack:
        36: aload 0 /* this */
            getfield org.jruby.util.io.OpenFile.runtime:Lorg/jruby/Ruby;
            aload 0 /* this */
            getfield org.jruby.util.io.OpenFile.posix:Lorg/jruby/util/io/PosixShim;
            invokevirtual org.jruby.util.io.PosixShim.getErrno:()Ljnr/constants/platform/Errno;
            invokevirtual jnr.constants.platform.Errno.intValue:()I
            invokevirtual org.jruby.Ruby.newFixnum:(I)Lorg/jruby/RubyFixnum;
      StackMap locals:
      StackMap stack: org.jruby.RubyObject
        37: astore 3 /* err */
        38: .line 903
      StackMap locals:
      StackMap stack:
            aload 3 /* err */
            invokeinterface org.jruby.runtime.builtin.IRubyObject.isNil:()Z
            ifne 43
            iload 2 /* noraise */
            ifne 43
        39: .line 904
            aload 3 /* err */
            instanceof org.jruby.RubyFixnum
            ifne 40
            aload 3 /* err */
            instanceof org.jruby.RubyBignum
            ifeq 42
        40: .line 905
      StackMap locals:
      StackMap stack:
            aload 0 /* this */
            getfield org.jruby.util.io.OpenFile.posix:Lorg/jruby/util/io/PosixShim;
            aload 3 /* err */
            invokestatic org.jruby.RubyNumeric.num2int:(Lorg/jruby/runtime/builtin/IRubyObject;)I
            i2l
            invokestatic jnr.constants.platform.Errno.valueOf:(J)Ljnr/constants/platform/Errno;
            invokevirtual org.jruby.util.io.PosixShim.setErrno:(Ljnr/constants/platform/Errno;)V
        41: .line 906
            aload 0 /* this */
            getfield org.jruby.util.io.OpenFile.runtime:Lorg/jruby/Ruby;
            aload 0 /* this */
            getfield org.jruby.util.io.OpenFile.posix:Lorg/jruby/util/io/PosixShim;
            invokevirtual org.jruby.util.io.PosixShim.getErrno:()Ljnr/constants/platform/Errno;
            aload 0 /* this */
            getfield org.jruby.util.io.OpenFile.pathv:Ljava/lang/String;
            invokevirtual org.jruby.Ruby.newErrnoFromErrno:(Ljnr/constants/platform/Errno;Ljava/lang/String;)Lorg/jruby/exceptions/RaiseException;
            athrow
        42: .line 908
      StackMap locals:
      StackMap stack:
            aload 3 /* err */
            checkcast org.jruby.RubyException
            invokevirtual org.jruby.RubyException.toThrowable:()Lorg/jruby/exceptions/RaiseException;
            athrow
        43: .line 911
      StackMap locals:
      StackMap stack:
            return
        end local 5 // java.io.Closeable stdio_file
        end local 4 // org.jruby.util.io.ChannelFD fd
        end local 3 // org.jruby.runtime.builtin.IRubyObject err
        end local 2 // boolean noraise
        end local 1 // org.jruby.runtime.ThreadContext context
        end local 0 // org.jruby.util.io.OpenFile this
      LocalVariableTable:
        Start  End  Slot        Name  Signature
            0   44     0        this  Lorg/jruby/util/io/OpenFile;
            0   44     1     context  Lorg/jruby/runtime/ThreadContext;
            0   44     2     noraise  Z
            1   44     3         err  Lorg/jruby/runtime/builtin/IRubyObject;
            2   44     4          fd  Lorg/jruby/util/io/ChannelFD;
            3   44     5  stdio_file  Ljava/io/Closeable;
      Exception table:
        from    to  target  type
           6     8       8  any
    MethodParameters:
         Name  Flags
      context  
      noraise  

  public boolean needsReadConversion();
    descriptor: ()Z
    flags: (0x0001) ACC_PUBLIC
    Code:
      stack=2, locals=1, args_size=1
        start local 0 // org.jruby.util.io.OpenFile this
         0: .line 915
            getstatic org.jruby.platform.Platform.IS_WINDOWS:Z
            ifeq 3
         1: .line 916
            aload 0 /* this */
            getfield org.jruby.util.io.OpenFile.encs:Lorg/jruby/util/io/IOEncodable$ConvConfig;
            getfield org.jruby.util.io.IOEncodable$ConvConfig.enc2:Lorg/jcodings/Encoding;
            ifnonnull 2
            aload 0 /* this */
            getfield org.jruby.util.io.OpenFile.encs:Lorg/jruby/util/io/IOEncodable$ConvConfig;
            getfield org.jruby.util.io.IOEncodable$ConvConfig.ecflags:I
            sipush -4097
            iand
            ifne 2
            aload 0 /* this */
            invokevirtual org.jruby.util.io.OpenFile.isTextMode:()Z
            ifne 2
            iconst_0
            goto 6
      StackMap locals:
      StackMap stack:
         2: iconst_1
            goto 6
         3: .line 918
      StackMap locals:
      StackMap stack:
            aload 0 /* this */
            getfield org.jruby.util.io.OpenFile.encs:Lorg/jruby/util/io/IOEncodable$ConvConfig;
            getfield org.jruby.util.io.IOEncodable$ConvConfig.enc2:Lorg/jcodings/Encoding;
            ifnonnull 5
            aload 0 /* this */
            invokevirtual org.jruby.util.io.OpenFile.NEED_NEWLINE_DECORATOR_ON_READ:()Z
            ifne 5
         4: .line 915
            iconst_0
            goto 6
      StackMap locals:
      StackMap stack:
         5: iconst_1
      StackMap locals:
      StackMap stack: int
         6: ireturn
        end local 0 // org.jruby.util.io.OpenFile this
      LocalVariableTable:
        Start  End  Slot  Name  Signature
            0    7     0  this  Lorg/jruby/util/io/OpenFile;

  public boolean needsWriteConversion(org.jruby.runtime.ThreadContext);
    descriptor: (Lorg/jruby/runtime/ThreadContext;)Z
    flags: (0x0001) ACC_PUBLIC
    Code:
      stack=2, locals=3, args_size=2
        start local 0 // org.jruby.util.io.OpenFile this
        start local 1 // org.jruby.runtime.ThreadContext context
         0: .line 923
            aload 1 /* context */
            getfield org.jruby.runtime.ThreadContext.runtime:Lorg/jruby/Ruby;
            invokevirtual org.jruby.Ruby.getEncodingService:()Lorg/jruby/runtime/encoding/EncodingService;
            invokevirtual org.jruby.runtime.encoding.EncodingService.getAscii8bitEncoding:()Lorg/jcodings/Encoding;
            astore 2 /* ascii8bit */
        start local 2 // org.jcodings.Encoding ascii8bit
         1: .line 925
            getstatic org.jruby.platform.Platform.IS_WINDOWS:Z
            ifeq 5
         2: .line 926
            aload 0 /* this */
            getfield org.jruby.util.io.OpenFile.encs:Lorg/jruby/util/io/IOEncodable$ConvConfig;
            getfield org.jruby.util.io.IOEncodable$ConvConfig.enc:Lorg/jcodings/Encoding;
            ifnull 3
            aload 0 /* this */
            getfield org.jruby.util.io.OpenFile.encs:Lorg/jruby/util/io/IOEncodable$ConvConfig;
            getfield org.jruby.util.io.IOEncodable$ConvConfig.enc:Lorg/jcodings/Encoding;
            aload 2 /* ascii8bit */
            if_acmpne 4
      StackMap locals: org.jcodings.Encoding
      StackMap stack:
         3: aload 0 /* this */
            getfield org.jruby.util.io.OpenFile.encs:Lorg/jruby/util/io/IOEncodable$ConvConfig;
            getfield org.jruby.util.io.IOEncodable$ConvConfig.ecflags:I
            ldc 15789824
            iand
            ifne 4
            iconst_0
            goto 9
      StackMap locals:
      StackMap stack:
         4: iconst_1
            goto 9
         5: .line 928
      StackMap locals:
      StackMap stack:
            aload 0 /* this */
            getfield org.jruby.util.io.OpenFile.encs:Lorg/jruby/util/io/IOEncodable$ConvConfig;
            getfield org.jruby.util.io.IOEncodable$ConvConfig.enc:Lorg/jcodings/Encoding;
            ifnull 6
            aload 0 /* this */
            getfield org.jruby.util.io.OpenFile.encs:Lorg/jruby/util/io/IOEncodable$ConvConfig;
            getfield org.jruby.util.io.IOEncodable$ConvConfig.enc:Lorg/jcodings/Encoding;
            aload 2 /* ascii8bit */
            if_acmpne 8
      StackMap locals:
      StackMap stack:
         6: aload 0 /* this */
            invokevirtual org.jruby.util.io.OpenFile.NEED_NEWLINE_DECORATOR_ON_WRITE:()Z
            ifne 8
            aload 0 /* this */
            getfield org.jruby.util.io.OpenFile.encs:Lorg/jruby/util/io/IOEncodable$ConvConfig;
            getfield org.jruby.util.io.IOEncodable$ConvConfig.ecflags:I
            ldc 15793920
            iand
            ifne 8
         7: .line 925
            iconst_0
            goto 9
      StackMap locals:
      StackMap stack:
         8: iconst_1
      StackMap locals:
      StackMap stack: int
         9: ireturn
        end local 2 // org.jcodings.Encoding ascii8bit
        end local 1 // org.jruby.runtime.ThreadContext context
        end local 0 // org.jruby.util.io.OpenFile this
      LocalVariableTable:
        Start  End  Slot       Name  Signature
            0   10     0       this  Lorg/jruby/util/io/OpenFile;
            0   10     1    context  Lorg/jruby/runtime/ThreadContext;
            1   10     2  ascii8bit  Lorg/jcodings/Encoding;
    MethodParameters:
         Name  Flags
      context  

  public void makeReadConversion(org.jruby.runtime.ThreadContext, int);
    descriptor: (Lorg/jruby/runtime/ThreadContext;I)V
    flags: (0x0001) ACC_PUBLIC
    Code:
      stack=6, locals=7, args_size=3
        start local 0 // org.jruby.util.io.OpenFile this
        start local 1 // org.jruby.runtime.ThreadContext context
        start local 2 // int size
         0: .line 933
            aload 0 /* this */
            getfield org.jruby.util.io.OpenFile.readconv:Lorg/jcodings/transcode/EConv;
            ifnonnull 17
         1: .line 937
            aload 0 /* this */
            getfield org.jruby.util.io.OpenFile.encs:Lorg/jruby/util/io/IOEncodable$ConvConfig;
            getfield org.jruby.util.io.IOEncodable$ConvConfig.ecflags:I
            sipush -12289
            iand
            istore 3 /* ecflags */
        start local 3 // int ecflags
         2: .line 938
            aload 0 /* this */
            getfield org.jruby.util.io.OpenFile.encs:Lorg/jruby/util/io/IOEncodable$ConvConfig;
            getfield org.jruby.util.io.IOEncodable$ConvConfig.ecopts:Lorg/jruby/runtime/builtin/IRubyObject;
            astore 4 /* ecopts */
        start local 4 // org.jruby.runtime.builtin.IRubyObject ecopts
         3: .line 939
            aload 0 /* this */
            getfield org.jruby.util.io.OpenFile.encs:Lorg/jruby/util/io/IOEncodable$ConvConfig;
            getfield org.jruby.util.io.IOEncodable$ConvConfig.enc2:Lorg/jcodings/Encoding;
            ifnull 7
         4: .line 940
            aload 0 /* this */
            getfield org.jruby.util.io.OpenFile.encs:Lorg/jruby/util/io/IOEncodable$ConvConfig;
            getfield org.jruby.util.io.IOEncodable$ConvConfig.enc2:Lorg/jcodings/Encoding;
            invokevirtual org.jcodings.Encoding.getName:()[B
            astore 5 /* sname */
        start local 5 // byte[] sname
         5: .line 941
            aload 0 /* this */
            getfield org.jruby.util.io.OpenFile.encs:Lorg/jruby/util/io/IOEncodable$ConvConfig;
            getfield org.jruby.util.io.IOEncodable$ConvConfig.enc:Lorg/jcodings/Encoding;
            invokevirtual org.jcodings.Encoding.getName:()[B
            astore 6 /* dname */
        start local 6 // byte[] dname
         6: .line 942
            goto 9
        end local 6 // byte[] dname
        end local 5 // byte[] sname
         7: .line 944
      StackMap locals: int org.jruby.runtime.builtin.IRubyObject
      StackMap stack:
            getstatic org.jruby.util.io.OpenFile.EMPTY_BYTE_ARRAY:[B
            dup
            astore 6 /* dname */
        start local 6 // byte[] dname
         8: astore 5 /* sname */
        start local 5 // byte[] sname
         9: .line 946
      StackMap locals: byte[] byte[]
      StackMap stack:
            aload 0 /* this */
            aload 1 /* context */
            aload 5 /* sname */
            aload 6 /* dname */
            iload 3 /* ecflags */
            aload 4 /* ecopts */
            invokestatic org.jruby.util.io.EncodingUtils.econvOpenOpts:(Lorg/jruby/runtime/ThreadContext;[B[BILorg/jruby/runtime/builtin/IRubyObject;)Lorg/jcodings/transcode/EConv;
            putfield org.jruby.util.io.OpenFile.readconv:Lorg/jcodings/transcode/EConv;
        10: .line 947
            aload 0 /* this */
            getfield org.jruby.util.io.OpenFile.readconv:Lorg/jcodings/transcode/EConv;
            ifnonnull 12
        11: .line 948
            aload 1 /* context */
            aload 5 /* sname */
            aload 6 /* dname */
            iload 3 /* ecflags */
            invokestatic org.jruby.util.io.EncodingUtils.econvOpenExc:(Lorg/jruby/runtime/ThreadContext;[B[BI)Lorg/jruby/exceptions/RaiseException;
            athrow
        12: .line 949
      StackMap locals:
      StackMap stack:
            aload 0 /* this */
            getfield org.jruby.util.io.OpenFile.cbuf:Lorg/jruby/util/io/OpenFile$Buffer;
            iconst_0
            putfield org.jruby.util.io.OpenFile$Buffer.off:I
        13: .line 950
            aload 0 /* this */
            getfield org.jruby.util.io.OpenFile.cbuf:Lorg/jruby/util/io/OpenFile$Buffer;
            iconst_0
            putfield org.jruby.util.io.OpenFile$Buffer.len:I
        14: .line 951
            iload 2 /* size */
            ldc 131072
            if_icmpge 15
            ldc 131072
            istore 2 /* size */
        15: .line 952
      StackMap locals:
      StackMap stack:
            aload 0 /* this */
            getfield org.jruby.util.io.OpenFile.cbuf:Lorg/jruby/util/io/OpenFile$Buffer;
            iload 2 /* size */
            putfield org.jruby.util.io.OpenFile$Buffer.capa:I
        16: .line 953
            aload 0 /* this */
            getfield org.jruby.util.io.OpenFile.cbuf:Lorg/jruby/util/io/OpenFile$Buffer;
            aload 0 /* this */
            getfield org.jruby.util.io.OpenFile.cbuf:Lorg/jruby/util/io/OpenFile$Buffer;
            getfield org.jruby.util.io.OpenFile$Buffer.capa:I
            newarray 8
            putfield org.jruby.util.io.OpenFile$Buffer.ptr:[B
        end local 6 // byte[] dname
        end local 5 // byte[] sname
        end local 4 // org.jruby.runtime.builtin.IRubyObject ecopts
        end local 3 // int ecflags
        17: .line 955
      StackMap locals: org.jruby.util.io.OpenFile org.jruby.runtime.ThreadContext int
      StackMap stack:
            return
        end local 2 // int size
        end local 1 // org.jruby.runtime.ThreadContext context
        end local 0 // org.jruby.util.io.OpenFile this
      LocalVariableTable:
        Start  End  Slot     Name  Signature
            0   18     0     this  Lorg/jruby/util/io/OpenFile;
            0   18     1  context  Lorg/jruby/runtime/ThreadContext;
            0   18     2     size  I
            2   17     3  ecflags  I
            3   17     4   ecopts  Lorg/jruby/runtime/builtin/IRubyObject;
            5    7     5    sname  [B
            9   17     5    sname  [B
            6    7     6    dname  [B
            8   17     6    dname  [B
    MethodParameters:
         Name  Flags
      context  
      size     

  public void makeReadConversion(org.jruby.runtime.ThreadContext);
    descriptor: (Lorg/jruby/runtime/ThreadContext;)V
    flags: (0x0001) ACC_PUBLIC
    Code:
      stack=3, locals=2, args_size=2
        start local 0 // org.jruby.util.io.OpenFile this
        start local 1 // org.jruby.runtime.ThreadContext context
         0: .line 958
            aload 0 /* this */
            aload 1 /* context */
            ldc 131072
            invokevirtual org.jruby.util.io.OpenFile.makeReadConversion:(Lorg/jruby/runtime/ThreadContext;I)V
         1: .line 959
            return
        end local 1 // org.jruby.runtime.ThreadContext context
        end local 0 // org.jruby.util.io.OpenFile this
      LocalVariableTable:
        Start  End  Slot     Name  Signature
            0    2     0     this  Lorg/jruby/util/io/OpenFile;
            0    2     1  context  Lorg/jruby/runtime/ThreadContext;
    MethodParameters:
         Name  Flags
      context  

  public void makeWriteConversion(org.jruby.runtime.ThreadContext);
    descriptor: (Lorg/jruby/runtime/ThreadContext;)V
    flags: (0x0001) ACC_PUBLIC
    Code:
      stack=6, locals=9, args_size=2
        start local 0 // org.jruby.util.io.OpenFile this
        start local 1 // org.jruby.runtime.ThreadContext context
         0: .line 963
            aload 0 /* this */
            getfield org.jruby.util.io.OpenFile.writeconvInitialized:Z
            ifeq 1
            return
         1: .line 971
      StackMap locals:
      StackMap stack:
            aload 0 /* this */
            iconst_1
            putfield org.jruby.util.io.OpenFile.writeconvInitialized:Z
         2: .line 973
            aload 0 /* this */
            getfield org.jruby.util.io.OpenFile.encs:Lorg/jruby/util/io/IOEncodable$ConvConfig;
            getfield org.jruby.util.io.IOEncodable$ConvConfig.ecflags:I
            sipush -3841
            iand
            istore 5 /* ecflags */
        start local 5 // int ecflags
         3: .line 974
            aload 0 /* this */
            getfield org.jruby.util.io.OpenFile.encs:Lorg/jruby/util/io/IOEncodable$ConvConfig;
            getfield org.jruby.util.io.IOEncodable$ConvConfig.ecopts:Lorg/jruby/runtime/builtin/IRubyObject;
            astore 6 /* ecopts */
        start local 6 // org.jruby.runtime.builtin.IRubyObject ecopts
         4: .line 976
            aload 1 /* context */
            getfield org.jruby.runtime.ThreadContext.runtime:Lorg/jruby/Ruby;
            invokevirtual org.jruby.Ruby.getEncodingService:()Lorg/jruby/runtime/encoding/EncodingService;
            invokevirtual org.jruby.runtime.encoding.EncodingService.getAscii8bitEncoding:()Lorg/jcodings/Encoding;
            astore 7 /* ascii8bit */
        start local 7 // org.jcodings.Encoding ascii8bit
         5: .line 977
            aload 0 /* this */
            getfield org.jruby.util.io.OpenFile.encs:Lorg/jruby/util/io/IOEncodable$ConvConfig;
            getfield org.jruby.util.io.IOEncodable$ConvConfig.enc:Lorg/jcodings/Encoding;
            ifnull 6
            aload 0 /* this */
            getfield org.jruby.util.io.OpenFile.encs:Lorg/jruby/util/io/IOEncodable$ConvConfig;
            getfield org.jruby.util.io.IOEncodable$ConvConfig.enc:Lorg/jcodings/Encoding;
            aload 7 /* ascii8bit */
            if_acmpne 13
            aload 0 /* this */
            getfield org.jruby.util.io.OpenFile.encs:Lorg/jruby/util/io/IOEncodable$ConvConfig;
            getfield org.jruby.util.io.IOEncodable$ConvConfig.enc2:Lorg/jcodings/Encoding;
            ifnonnull 13
         6: .line 979
      StackMap locals: org.jruby.util.io.OpenFile org.jruby.runtime.ThreadContext top top top int org.jruby.runtime.builtin.IRubyObject org.jcodings.Encoding
      StackMap stack:
            aload 0 /* this */
            iconst_0
            putfield org.jruby.util.io.OpenFile.writeconvPreEcflags:I
         7: .line 980
            aload 0 /* this */
            aload 1 /* context */
            getfield org.jruby.runtime.ThreadContext.nil:Lorg/jruby/runtime/builtin/IRubyObject;
            putfield org.jruby.util.io.OpenFile.writeconvPreEcopts:Lorg/jruby/runtime/builtin/IRubyObject;
         8: .line 981
            aload 0 /* this */
            aload 1 /* context */
            getstatic org.jruby.util.io.OpenFile.EMPTY_BYTE_ARRAY:[B
            getstatic org.jruby.util.io.OpenFile.EMPTY_BYTE_ARRAY:[B
            iload 5 /* ecflags */
            aload 6 /* ecopts */
            invokestatic org.jruby.util.io.EncodingUtils.econvOpenOpts:(Lorg/jruby/runtime/ThreadContext;[B[BILorg/jruby/runtime/builtin/IRubyObject;)Lorg/jcodings/transcode/EConv;
            putfield org.jruby.util.io.OpenFile.writeconv:Lorg/jcodings/transcode/EConv;
         9: .line 982
            aload 0 /* this */
            getfield org.jruby.util.io.OpenFile.writeconv:Lorg/jcodings/transcode/EConv;
            ifnonnull 11
        10: .line 983
            aload 1 /* context */
            getstatic org.jruby.util.io.OpenFile.EMPTY_BYTE_ARRAY:[B
            getstatic org.jruby.util.io.OpenFile.EMPTY_BYTE_ARRAY:[B
            iload 5 /* ecflags */
            invokestatic org.jruby.util.io.EncodingUtils.econvOpenExc:(Lorg/jruby/runtime/ThreadContext;[B[BI)Lorg/jruby/exceptions/RaiseException;
            athrow
        11: .line 985
      StackMap locals:
      StackMap stack:
            aload 0 /* this */
            aload 1 /* context */
            getfield org.jruby.runtime.ThreadContext.nil:Lorg/jruby/runtime/builtin/IRubyObject;
            putfield org.jruby.util.io.OpenFile.writeconvAsciicompat:Lorg/jruby/runtime/builtin/IRubyObject;
        12: .line 986
            goto 40
        13: .line 988
      StackMap locals:
      StackMap stack:
            aload 0 /* this */
            getfield org.jruby.util.io.OpenFile.encs:Lorg/jruby/util/io/IOEncodable$ConvConfig;
            getfield org.jruby.util.io.IOEncodable$ConvConfig.enc2:Lorg/jcodings/Encoding;
            ifnull 14
            aload 0 /* this */
            getfield org.jruby.util.io.OpenFile.encs:Lorg/jruby/util/io/IOEncodable$ConvConfig;
            getfield org.jruby.util.io.IOEncodable$ConvConfig.enc2:Lorg/jcodings/Encoding;
            goto 15
      StackMap locals:
      StackMap stack:
        14: aload 0 /* this */
            getfield org.jruby.util.io.OpenFile.encs:Lorg/jruby/util/io/IOEncodable$ConvConfig;
            getfield org.jruby.util.io.IOEncodable$ConvConfig.enc:Lorg/jcodings/Encoding;
      StackMap locals:
      StackMap stack: org.jcodings.Encoding
        15: astore 4 /* enc */
        start local 4 // org.jcodings.Encoding enc
        16: .line 989
            aload 4 /* enc */
            invokestatic org.jruby.util.io.EncodingUtils.econvAsciicompatEncoding:(Lorg/jcodings/Encoding;)Lorg/jcodings/Encoding;
            astore 8 /* tmpEnc */
        start local 8 // org.jcodings.Encoding tmpEnc
        17: .line 990
            aload 8 /* tmpEnc */
            ifnonnull 18
            aconst_null
            goto 19
      StackMap locals: org.jruby.util.io.OpenFile org.jruby.runtime.ThreadContext top top org.jcodings.Encoding int org.jruby.runtime.builtin.IRubyObject org.jcodings.Encoding org.jcodings.Encoding
      StackMap stack:
        18: aload 8 /* tmpEnc */
            invokevirtual org.jcodings.Encoding.getName:()[B
      StackMap locals:
      StackMap stack: byte[]
        19: astore 2 /* senc */
        start local 2 // byte[] senc
        20: .line 991
            aload 2 /* senc */
            ifnonnull 26
            aload 0 /* this */
            getfield org.jruby.util.io.OpenFile.encs:Lorg/jruby/util/io/IOEncodable$ConvConfig;
            getfield org.jruby.util.io.IOEncodable$ConvConfig.ecflags:I
            ldc 15728640
            iand
            ifne 26
        21: .line 993
            aload 0 /* this */
            iload 5 /* ecflags */
            putfield org.jruby.util.io.OpenFile.writeconvPreEcflags:I
        22: .line 994
            aload 0 /* this */
            aload 6 /* ecopts */
            putfield org.jruby.util.io.OpenFile.writeconvPreEcopts:Lorg/jruby/runtime/builtin/IRubyObject;
        23: .line 995
            aload 0 /* this */
            aconst_null
            putfield org.jruby.util.io.OpenFile.writeconv:Lorg/jcodings/transcode/EConv;
        24: .line 996
            aload 0 /* this */
            aload 1 /* context */
            getfield org.jruby.runtime.ThreadContext.nil:Lorg/jruby/runtime/builtin/IRubyObject;
            putfield org.jruby.util.io.OpenFile.writeconvAsciicompat:Lorg/jruby/runtime/builtin/IRubyObject;
        25: .line 997
            goto 40
        26: .line 1000
      StackMap locals: org.jruby.util.io.OpenFile org.jruby.runtime.ThreadContext byte[] top org.jcodings.Encoding int org.jruby.runtime.builtin.IRubyObject org.jcodings.Encoding org.jcodings.Encoding
      StackMap stack:
            aload 0 /* this */
            iload 5 /* ecflags */
            ldc -15728641
            iand
            putfield org.jruby.util.io.OpenFile.writeconvPreEcflags:I
        27: .line 1001
            aload 0 /* this */
            aload 6 /* ecopts */
            putfield org.jruby.util.io.OpenFile.writeconvPreEcopts:Lorg/jruby/runtime/builtin/IRubyObject;
        28: .line 1002
            aload 2 /* senc */
            ifnull 32
        29: .line 1003
            aload 4 /* enc */
            invokevirtual org.jcodings.Encoding.getName:()[B
            astore 3 /* denc */
        start local 3 // byte[] denc
        30: .line 1004
            aload 0 /* this */
            aload 1 /* context */
            getfield org.jruby.runtime.ThreadContext.runtime:Lorg/jruby/Ruby;
            aload 2 /* senc */
            invokestatic org.jruby.RubyString.newString:(Lorg/jruby/Ruby;[B)Lorg/jruby/RubyString;
            putfield org.jruby.util.io.OpenFile.writeconvAsciicompat:Lorg/jruby/runtime/builtin/IRubyObject;
        31: .line 1005
            goto 35
        end local 3 // byte[] denc
        32: .line 1007
      StackMap locals:
      StackMap stack:
            getstatic org.jruby.util.io.OpenFile.EMPTY_BYTE_ARRAY:[B
            dup
            astore 3 /* denc */
        start local 3 // byte[] denc
        33: astore 2 /* senc */
        34: .line 1008
            aload 0 /* this */
            aload 1 /* context */
            getfield org.jruby.runtime.ThreadContext.runtime:Lorg/jruby/Ruby;
            aload 4 /* enc */
            invokevirtual org.jcodings.Encoding.getName:()[B
            invokestatic org.jruby.RubyString.newString:(Lorg/jruby/Ruby;[B)Lorg/jruby/RubyString;
            putfield org.jruby.util.io.OpenFile.writeconvAsciicompat:Lorg/jruby/runtime/builtin/IRubyObject;
        35: .line 1010
      StackMap locals: org.jruby.util.io.OpenFile org.jruby.runtime.ThreadContext byte[] byte[] org.jcodings.Encoding int org.jruby.runtime.builtin.IRubyObject org.jcodings.Encoding org.jcodings.Encoding
      StackMap stack:
            aload 0 /* this */
            getfield org.jruby.util.io.OpenFile.encs:Lorg/jruby/util/io/IOEncodable$ConvConfig;
            getfield org.jruby.util.io.IOEncodable$ConvConfig.ecflags:I
            ldc 15728895
            iand
            istore 5 /* ecflags */
        36: .line 1011
            aload 0 /* this */
            getfield org.jruby.util.io.OpenFile.encs:Lorg/jruby/util/io/IOEncodable$ConvConfig;
            getfield org.jruby.util.io.IOEncodable$ConvConfig.ecopts:Lorg/jruby/runtime/builtin/IRubyObject;
            astore 6 /* ecopts */
        37: .line 1012
            aload 0 /* this */
            aload 1 /* context */
            aload 2 /* senc */
            aload 3 /* denc */
            iload 5 /* ecflags */
            aload 6 /* ecopts */
            invokestatic org.jruby.util.io.EncodingUtils.econvOpenOpts:(Lorg/jruby/runtime/ThreadContext;[B[BILorg/jruby/runtime/builtin/IRubyObject;)Lorg/jcodings/transcode/EConv;
            putfield org.jruby.util.io.OpenFile.writeconv:Lorg/jcodings/transcode/EConv;
        38: .line 1013
            aload 0 /* this */
            getfield org.jruby.util.io.OpenFile.writeconv:Lorg/jcodings/transcode/EConv;
            ifnonnull 40
        39: .line 1014
            aload 1 /* context */
            aload 2 /* senc */
            aload 3 /* denc */
            iload 5 /* ecflags */
            invokestatic org.jruby.util.io.EncodingUtils.econvOpenExc:(Lorg/jruby/runtime/ThreadContext;[B[BI)Lorg/jruby/exceptions/RaiseException;
            athrow
        end local 8 // org.jcodings.Encoding tmpEnc
        end local 4 // org.jcodings.Encoding enc
        end local 3 // byte[] denc
        end local 2 // byte[] senc
        40: .line 1018
      StackMap locals: org.jruby.util.io.OpenFile org.jruby.runtime.ThreadContext top top top int org.jruby.runtime.builtin.IRubyObject org.jcodings.Encoding
      StackMap stack:
            return
        end local 7 // org.jcodings.Encoding ascii8bit
        end local 6 // org.jruby.runtime.builtin.IRubyObject ecopts
        end local 5 // int ecflags
        end local 1 // org.jruby.runtime.ThreadContext context
        end local 0 // org.jruby.util.io.OpenFile this
      LocalVariableTable:
        Start  End  Slot       Name  Signature
            0   41     0       this  Lorg/jruby/util/io/OpenFile;
            0   41     1    context  Lorg/jruby/runtime/ThreadContext;
           20   40     2       senc  [B
           30   32     3       denc  [B
           33   40     3       denc  [B
           16   40     4        enc  Lorg/jcodings/Encoding;
            3   41     5    ecflags  I
            4   41     6     ecopts  Lorg/jruby/runtime/builtin/IRubyObject;
            5   41     7  ascii8bit  Lorg/jcodings/Encoding;
           17   40     8     tmpEnc  Lorg/jcodings/Encoding;
    MethodParameters:
         Name  Flags
      context  

  public void clearReadConversion();
    descriptor: ()V
    flags: (0x0001) ACC_PUBLIC
    Code:
      stack=2, locals=1, args_size=1
        start local 0 // org.jruby.util.io.OpenFile this
         0: .line 1021
            aload 0 /* this */
            aconst_null
            putfield org.jruby.util.io.OpenFile.readconv:Lorg/jcodings/transcode/EConv;
         1: .line 1022
            return
        end local 0 // org.jruby.util.io.OpenFile this
      LocalVariableTable:
        Start  End  Slot  Name  Signature
            0    2     0  this  Lorg/jruby/util/io/OpenFile;

  public void clearCodeConversion();
    descriptor: ()V
    flags: (0x0001) ACC_PUBLIC
    Code:
      stack=2, locals=1, args_size=1
        start local 0 // org.jruby.util.io.OpenFile this
         0: .line 1025
            aload 0 /* this */
            aconst_null
            putfield org.jruby.util.io.OpenFile.readconv:Lorg/jcodings/transcode/EConv;
         1: .line 1026
            aload 0 /* this */
            aconst_null
            putfield org.jruby.util.io.OpenFile.writeconv:Lorg/jcodings/transcode/EConv;
         2: .line 1027
            return
        end local 0 // org.jruby.util.io.OpenFile this
      LocalVariableTable:
        Start  End  Slot  Name  Signature
            0    3     0  this  Lorg/jruby/util/io/OpenFile;

  public int IO_RBUF_CAPA_FOR();
    descriptor: ()I
    flags: (0x0001) ACC_PUBLIC
    Code:
      stack=1, locals=1, args_size=1
        start local 0 // org.jruby.util.io.OpenFile this
         0: .line 1036
            aload 0 /* this */
            invokevirtual org.jruby.util.io.OpenFile.needsReadConversion:()Z
            ifeq 1
            ldc 131072
            goto 2
      StackMap locals:
      StackMap stack:
         1: sipush 8192
      StackMap locals:
      StackMap stack: int
         2: ireturn
        end local 0 // org.jruby.util.io.OpenFile this
      LocalVariableTable:
        Start  End  Slot  Name  Signature
            0    3     0  this  Lorg/jruby/util/io/OpenFile;

  public int appendline(org.jruby.runtime.ThreadContext, int, org.jruby.util.ByteList[], int[]);
    descriptor: (Lorg/jruby/runtime/ThreadContext;I[Lorg/jruby/util/ByteList;[I)I
    flags: (0x0001) ACC_PUBLIC
    Code:
      stack=7, locals=12, args_size=5
        start local 0 // org.jruby.util.io.OpenFile this
        start local 1 // org.jruby.runtime.ThreadContext context
        start local 2 // int delim
        start local 3 // org.jruby.util.ByteList[] strp
        start local 4 // int[] lp
         0: .line 1044
            aload 3 /* strp */
            iconst_0
            aaload
            astore 5 /* str */
        start local 5 // org.jruby.util.ByteList str
         1: .line 1045
            aload 4 /* lp */
            iconst_0
            iaload
            istore 6 /* limit */
        start local 6 // int limit
         2: .line 1047
            aload 0 /* this */
            invokevirtual org.jruby.util.io.OpenFile.needsReadConversion:()Z
            ifeq 36
         3: .line 1048
            aload 0 /* this */
            invokevirtual org.jruby.util.io.OpenFile.SET_BINARY_MODE:()V
         4: .line 1049
            aload 0 /* this */
            aload 1 /* context */
            invokevirtual org.jruby.util.io.OpenFile.makeReadConversion:(Lorg/jruby/runtime/ThreadContext;)V
         5: .line 1052
      StackMap locals: org.jruby.util.ByteList int
      StackMap stack:
            aload 0 /* this */
            invokevirtual org.jruby.util.io.OpenFile.READ_CHAR_PENDING_COUNT:()I
            istore 9 /* searchlen */
        start local 9 // int searchlen
         6: .line 1053
            iload 9 /* searchlen */
            ifle 32
         7: .line 1054
            aload 0 /* this */
            invokevirtual org.jruby.util.io.OpenFile.READ_CHAR_PENDING_PTR:()[B
            astore 10 /* pBytes */
        start local 10 // byte[] pBytes
         8: .line 1055
            aload 0 /* this */
            invokevirtual org.jruby.util.io.OpenFile.READ_CHAR_PENDING_OFF:()I
            istore 7 /* p */
        start local 7 // int p
         9: .line 1056
            iload 6 /* limit */
            ifle 10
            iload 6 /* limit */
            iload 9 /* searchlen */
            if_icmpge 10
            iload 6 /* limit */
            istore 9 /* searchlen */
        10: .line 1057
      StackMap locals: org.jruby.util.io.OpenFile org.jruby.runtime.ThreadContext int org.jruby.util.ByteList[] int[] org.jruby.util.ByteList int int top int byte[]
      StackMap stack:
            aload 10 /* pBytes */
            iload 7 /* p */
            iload 2 /* delim */
            iload 9 /* searchlen */
            invokestatic org.jruby.util.io.OpenFile.memchr:([BIII)I
            istore 8 /* e */
        start local 8 // int e
        11: .line 1058
            iload 8 /* e */
            iconst_m1
            if_icmpeq 22
        12: .line 1059
            iload 8 /* e */
            iload 7 /* p */
            isub
            iconst_1
            iadd
            istore 11 /* len */
        start local 11 // int len
        13: .line 1060
            aload 5 /* str */
            ifnonnull 16
        14: .line 1061
            aload 3 /* strp */
            iconst_0
            new org.jruby.util.ByteList
            dup
            aload 10 /* pBytes */
            iload 7 /* p */
            iload 11 /* len */
            invokespecial org.jruby.util.ByteList.<init>:([BII)V
            dup
            astore 5 /* str */
            aastore
        15: .line 1062
            goto 17
        16: .line 1063
      StackMap locals: org.jruby.util.io.OpenFile org.jruby.runtime.ThreadContext int org.jruby.util.ByteList[] int[] org.jruby.util.ByteList int int int int byte[] int
      StackMap stack:
            aload 5 /* str */
            aload 10 /* pBytes */
            iload 7 /* p */
            iload 11 /* len */
            invokevirtual org.jruby.util.ByteList.append:([BII)V
        17: .line 1065
      StackMap locals:
      StackMap stack:
            aload 0 /* this */
            getfield org.jruby.util.io.OpenFile.cbuf:Lorg/jruby/util/io/OpenFile$Buffer;
            dup
            getfield org.jruby.util.io.OpenFile$Buffer.off:I
            iload 11 /* len */
            iadd
            putfield org.jruby.util.io.OpenFile$Buffer.off:I
        18: .line 1066
            aload 0 /* this */
            getfield org.jruby.util.io.OpenFile.cbuf:Lorg/jruby/util/io/OpenFile$Buffer;
            dup
            getfield org.jruby.util.io.OpenFile$Buffer.len:I
            iload 11 /* len */
            isub
            putfield org.jruby.util.io.OpenFile$Buffer.len:I
        19: .line 1067
            iload 6 /* limit */
            iload 11 /* len */
            isub
            istore 6 /* limit */
        20: .line 1068
            aload 4 /* lp */
            iconst_0
            iload 6 /* limit */
            iastore
        21: .line 1069
            iload 2 /* delim */
            ireturn
        end local 11 // int len
        22: .line 1072
      StackMap locals:
      StackMap stack:
            aload 5 /* str */
            ifnonnull 25
        23: .line 1073
            aload 3 /* strp */
            iconst_0
            new org.jruby.util.ByteList
            dup
            aload 10 /* pBytes */
            iload 7 /* p */
            iload 9 /* searchlen */
            invokespecial org.jruby.util.ByteList.<init>:([BII)V
            dup
            astore 5 /* str */
            aastore
        24: .line 1074
            goto 26
        25: .line 1075
      StackMap locals:
      StackMap stack:
            aload 1 /* context */
            getfield org.jruby.runtime.ThreadContext.runtime:Lorg/jruby/Ruby;
            aload 5 /* str */
            aload 10 /* pBytes */
            iload 7 /* p */
            iload 9 /* searchlen */
            invokestatic org.jruby.util.io.EncodingUtils.rbStrBufCat:(Lorg/jruby/Ruby;Lorg/jruby/util/ByteList;[BII)V
        26: .line 1077
      StackMap locals:
      StackMap stack:
            aload 0 /* this */
            getfield org.jruby.util.io.OpenFile.cbuf:Lorg/jruby/util/io/OpenFile$Buffer;
            dup
            getfield org.jruby.util.io.OpenFile$Buffer.off:I
            iload 9 /* searchlen */
            iadd
            putfield org.jruby.util.io.OpenFile$Buffer.off:I
        27: .line 1078
            aload 0 /* this */
            getfield org.jruby.util.io.OpenFile.cbuf:Lorg/jruby/util/io/OpenFile$Buffer;
            dup
            getfield org.jruby.util.io.OpenFile$Buffer.len:I
            iload 9 /* searchlen */
            isub
            putfield org.jruby.util.io.OpenFile$Buffer.len:I
        28: .line 1079
            iload 6 /* limit */
            iload 9 /* searchlen */
            isub
            istore 6 /* limit */
        29: .line 1081
            iload 6 /* limit */
            ifne 32
        30: .line 1082
            aload 4 /* lp */
            iconst_0
            iload 6 /* limit */
            iastore
        31: .line 1083
            aload 5 /* str */
            aload 5 /* str */
            invokevirtual org.jruby.util.ByteList.getRealSize:()I
            iconst_1
            isub
            invokevirtual org.jruby.util.ByteList.get:(I)I
            sipush 255
            iand
            ireturn
        end local 10 // byte[] pBytes
        end local 9 // int searchlen
        end local 8 // int e
        end local 7 // int p
        32: .line 1086
      StackMap locals: org.jruby.util.io.OpenFile org.jruby.runtime.ThreadContext int org.jruby.util.ByteList[] int[] org.jruby.util.ByteList int
      StackMap stack:
            aload 0 /* this */
            aload 1 /* context */
            invokevirtual org.jruby.util.io.OpenFile.moreChar:(Lorg/jruby/runtime/ThreadContext;)I
            iconst_1
            if_icmpne 5
        33: .line 1087
            aload 0 /* this */
            invokevirtual org.jruby.util.io.OpenFile.clearReadConversion:()V
        34: .line 1088
            aload 4 /* lp */
            iconst_0
            iload 6 /* limit */
            iastore
        35: .line 1089
            iconst_m1
            ireturn
        36: .line 1092
      StackMap locals:
      StackMap stack:
            aload 0 /* this */
            invokevirtual org.jruby.util.io.OpenFile.NEED_NEWLINE_DECORATOR_ON_READ_CHECK:()V
        37: .line 1094
      StackMap locals:
      StackMap stack:
            aload 0 /* this */
            invokevirtual org.jruby.util.io.OpenFile.READ_DATA_PENDING_COUNT:()I
            istore 7 /* pending */
        start local 7 // int pending
        38: .line 1095
            iload 7 /* pending */
            ifle 59
        39: .line 1096
            aload 0 /* this */
            invokevirtual org.jruby.util.io.OpenFile.READ_DATA_PENDING_PTR:()[B
            astore 8 /* pBytes */
        start local 8 // byte[] pBytes
        40: .line 1097
            aload 0 /* this */
            invokevirtual org.jruby.util.io.OpenFile.READ_DATA_PENDING_OFF:()I
            istore 9 /* p */
        start local 9 // int p
        41: .line 1100
            iload 6 /* limit */
            ifle 42
            iload 7 /* pending */
            iload 6 /* limit */
            if_icmple 42
            iload 6 /* limit */
            istore 7 /* pending */
        42: .line 1101
      StackMap locals: int byte[] int
      StackMap stack:
            aload 8 /* pBytes */
            iload 9 /* p */
            iload 2 /* delim */
            iload 7 /* pending */
            invokestatic org.jruby.util.io.OpenFile.memchr:([BIII)I
            istore 11 /* e */
        start local 11 // int e
        43: .line 1102
            iload 11 /* e */
            iconst_m1
            if_icmpeq 44
            iload 11 /* e */
            iload 9 /* p */
            isub
            iconst_1
            iadd
            istore 7 /* pending */
        44: .line 1103
      StackMap locals: org.jruby.util.io.OpenFile org.jruby.runtime.ThreadContext int org.jruby.util.ByteList[] int[] org.jruby.util.ByteList int int byte[] int top int
      StackMap stack:
            aload 5 /* str */
            ifnull 48
        45: .line 1104
            aload 5 /* str */
            invokevirtual org.jruby.util.ByteList.getRealSize:()I
            istore 10 /* last */
        start local 10 // int last
        46: .line 1105
            aload 5 /* str */
            iload 10 /* last */
            iload 7 /* pending */
            iadd
            invokevirtual org.jruby.util.ByteList.ensure:(I)V
        47: .line 1106
            goto 50
        end local 10 // int last
        48: .line 1108
      StackMap locals:
      StackMap stack:
            iconst_0
            istore 10 /* last */
        start local 10 // int last
        49: .line 1109
            aload 3 /* strp */
            iconst_0
            new org.jruby.util.ByteList
            dup
            iload 7 /* pending */
            invokespecial org.jruby.util.ByteList.<init>:(I)V
            dup
            astore 5 /* str */
            aastore
        50: .line 1111
      StackMap locals: org.jruby.util.io.OpenFile org.jruby.runtime.ThreadContext int org.jruby.util.ByteList[] int[] org.jruby.util.ByteList int int byte[] int int int
      StackMap stack:
            aload 0 /* this */
            aload 5 /* str */
            invokevirtual org.jruby.util.ByteList.getUnsafeBytes:()[B
            iload 10 /* last */
            aload 5 /* str */
            invokevirtual org.jruby.util.ByteList.getBegin:()I
            iadd
            iload 7 /* pending */
            invokevirtual org.jruby.util.io.OpenFile.readBufferedData:([BII)I
            pop
        51: .line 1112
            aload 5 /* str */
            iload 10 /* last */
            iload 7 /* pending */
            iadd
            invokevirtual org.jruby.util.ByteList.setRealSize:(I)V
        52: .line 1113
            iload 6 /* limit */
            iload 7 /* pending */
            isub
            istore 6 /* limit */
        53: .line 1114
            iload 11 /* e */
            iconst_m1
            if_icmpeq 56
        54: .line 1115
            aload 4 /* lp */
            iconst_0
            iload 6 /* limit */
            iastore
        55: .line 1116
            iload 2 /* delim */
            ireturn
        56: .line 1118
      StackMap locals:
      StackMap stack:
            iload 6 /* limit */
            ifne 59
        57: .line 1119
            aload 4 /* lp */
            iconst_0
            iload 6 /* limit */
            iastore
        58: .line 1120
            aload 5 /* str */
            aload 5 /* str */
            invokevirtual org.jruby.util.ByteList.getRealSize:()I
            iconst_1
            isub
            invokevirtual org.jruby.util.ByteList.get:(I)I
            sipush 255
            iand
            ireturn
        end local 11 // int e
        end local 10 // int last
        end local 9 // int p
        end local 8 // byte[] pBytes
        59: .line 1123
      StackMap locals: org.jruby.util.io.OpenFile org.jruby.runtime.ThreadContext int org.jruby.util.ByteList[] int[] org.jruby.util.ByteList int int
      StackMap stack:
            aload 0 /* this */
            aload 1 /* context */
            invokevirtual org.jruby.util.io.OpenFile.READ_CHECK:(Lorg/jruby/runtime/ThreadContext;)V
        end local 7 // int pending
        60: .line 1124
            aload 0 /* this */
            aload 1 /* context */
            invokevirtual org.jruby.util.io.OpenFile.fillbuf:(Lorg/jruby/runtime/ThreadContext;)I
        61: .line 1093
            ifge 37
        62: .line 1125
            aload 4 /* lp */
            iconst_0
            iload 6 /* limit */
            iastore
        63: .line 1126
            iconst_m1
            ireturn
        end local 6 // int limit
        end local 5 // org.jruby.util.ByteList str
        end local 4 // int[] lp
        end local 3 // org.jruby.util.ByteList[] strp
        end local 2 // int delim
        end local 1 // org.jruby.runtime.ThreadContext context
        end local 0 // org.jruby.util.io.OpenFile this
      LocalVariableTable:
        Start  End  Slot       Name  Signature
            0   64     0       this  Lorg/jruby/util/io/OpenFile;
            0   64     1    context  Lorg/jruby/runtime/ThreadContext;
            0   64     2      delim  I
            0   64     3       strp  [Lorg/jruby/util/ByteList;
            0   64     4         lp  [I
            1   64     5        str  Lorg/jruby/util/ByteList;
            2   64     6      limit  I
            9   32     7          p  I
           11   32     8          e  I
            6   32     9  searchlen  I
            8   32    10     pBytes  [B
           13   22    11        len  I
           38   60     7    pending  I
           40   59     8     pBytes  [B
           41   59     9          p  I
           46   48    10       last  I
           49   59    10       last  I
           43   59    11          e  I
    MethodParameters:
         Name  Flags
      context  
      delim    
      strp     final
      lp       final

  private static int memchr(byte[], int, int, int);
    descriptor: ([BIII)I
    flags: (0x000a) ACC_PRIVATE, ACC_STATIC
    Code:
      stack=3, locals=5, args_size=4
        start local 0 // byte[] pBytes
        start local 1 // int p
        start local 2 // int delim
        start local 3 // int length
         0: .line 1130
            iload 1 /* p */
            istore 4 /* i */
        start local 4 // int i
         1: goto 5
         2: .line 1131
      StackMap locals: int
      StackMap stack:
            aload 0 /* pBytes */
            iload 4 /* i */
            baload
            sipush 255
            iand
            iload 2 /* delim */
            if_icmpne 4
         3: .line 1132
            iload 4 /* i */
            ireturn
         4: .line 1130
      StackMap locals:
      StackMap stack:
            iinc 4 /* i */ 1
      StackMap locals:
      StackMap stack:
         5: iload 4 /* i */
            iload 1 /* p */
            iload 3 /* length */
            iadd
            if_icmplt 2
        end local 4 // int i
         6: .line 1135
            iconst_m1
            ireturn
        end local 3 // int length
        end local 2 // int delim
        end local 1 // int p
        end local 0 // byte[] pBytes
      LocalVariableTable:
        Start  End  Slot    Name  Signature
            0    7     0  pBytes  [B
            0    7     1       p  I
            0    7     2   delim  I
            0    7     3  length  I
            1    6     4       i  I
    MethodParameters:
        Name  Flags
      pBytes  
      p       
      delim   
      length  

  public void NEED_NEWLINE_DECORATOR_ON_READ_CHECK();
    descriptor: ()V
    flags: (0x0001) ACC_PUBLIC
    Code:
      stack=2, locals=1, args_size=1
        start local 0 // org.jruby.util.io.OpenFile this
         0: .line 1139
            aload 0 /* this */
            invokevirtual org.jruby.util.io.OpenFile.NEED_NEWLINE_DECORATOR_ON_READ:()Z
            ifeq 5
         1: .line 1140
            aload 0 /* this */
            invokevirtual org.jruby.util.io.OpenFile.isReadable:()Z
            ifeq 4
            aload 0 /* this */
            getfield org.jruby.util.io.OpenFile.encs:Lorg/jruby/util/io/IOEncodable$ConvConfig;
            getfield org.jruby.util.io.IOEncodable$ConvConfig.ecflags:I
            sipush 16128
            iand
            ifne 4
         2: .line 1141
            aload 0 /* this */
            invokevirtual org.jruby.util.io.OpenFile.SET_BINARY_MODE:()V
         3: .line 1142
            goto 5
         4: .line 1143
      StackMap locals:
      StackMap stack:
            aload 0 /* this */
            invokevirtual org.jruby.util.io.OpenFile.SET_TEXT_MODE:()V
         5: .line 1146
      StackMap locals:
      StackMap stack:
            return
        end local 0 // org.jruby.util.io.OpenFile this
      LocalVariableTable:
        Start  End  Slot  Name  Signature
            0    6     0  this  Lorg/jruby/util/io/OpenFile;

  public boolean NEED_NEWLINE_DECORATOR_ON_READ();
    descriptor: ()Z
    flags: (0x0001) ACC_PUBLIC
    Code:
      stack=1, locals=1, args_size=1
        start local 0 // org.jruby.util.io.OpenFile this
         0: .line 1149
            aload 0 /* this */
            invokevirtual org.jruby.util.io.OpenFile.isTextMode:()Z
            ireturn
        end local 0 // org.jruby.util.io.OpenFile this
      LocalVariableTable:
        Start  End  Slot  Name  Signature
            0    1     0  this  Lorg/jruby/util/io/OpenFile;

  public boolean NEED_NEWLINE_DECORATOR_ON_WRITE();
    descriptor: ()Z
    flags: (0x0001) ACC_PUBLIC
    Code:
      stack=1, locals=1, args_size=1
        start local 0 // org.jruby.util.io.OpenFile this
         0: .line 1153
            aload 0 /* this */
            invokevirtual org.jruby.util.io.OpenFile.isTextMode:()Z
            ireturn
        end local 0 // org.jruby.util.io.OpenFile this
      LocalVariableTable:
        Start  End  Slot  Name  Signature
            0    1     0  this  Lorg/jruby/util/io/OpenFile;

  public int moreChar(org.jruby.runtime.ThreadContext);
    descriptor: (Lorg/jruby/runtime/ThreadContext;)I
    flags: (0x0001) ACC_PUBLIC
    Code:
      stack=3, locals=3, args_size=2
        start local 0 // org.jruby.util.io.OpenFile this
        start local 1 // org.jruby.runtime.ThreadContext context
         0: .line 1158
            aload 0 /* this */
            aload 1 /* context */
            ldc 131072
            invokevirtual org.jruby.util.io.OpenFile.fillCbuf:(Lorg/jruby/runtime/ThreadContext;I)Ljava/lang/Object;
            astore 2 /* v */
        start local 2 // java.lang.Object v
         1: .line 1159
            aload 2 /* v */
            instanceof java.lang.Integer
            ifeq 2
            aload 2 /* v */
            checkcast java.lang.Integer
            invokevirtual java.lang.Integer.intValue:()I
            ifeq 3
            aload 2 /* v */
            checkcast java.lang.Integer
            invokevirtual java.lang.Integer.intValue:()I
            iconst_1
            if_icmpeq 3
         2: .line 1160
      StackMap locals: java.lang.Object
      StackMap stack:
            aload 2 /* v */
            checkcast org.jruby.exceptions.RaiseException
            athrow
         3: .line 1162
      StackMap locals:
      StackMap stack:
            aload 2 /* v */
            checkcast java.lang.Integer
            invokevirtual java.lang.Integer.intValue:()I
            ireturn
        end local 2 // java.lang.Object v
        end local 1 // org.jruby.runtime.ThreadContext context
        end local 0 // org.jruby.util.io.OpenFile this
      LocalVariableTable:
        Start  End  Slot     Name  Signature
            0    4     0     this  Lorg/jruby/util/io/OpenFile;
            0    4     1  context  Lorg/jruby/runtime/ThreadContext;
            1    4     2        v  Ljava/lang/Object;
    MethodParameters:
         Name  Flags
      context  

  private java.lang.Object fillCbuf(org.jruby.runtime.ThreadContext, int);
    descriptor: (Lorg/jruby/runtime/ThreadContext;I)Ljava/lang/Object;
    flags: (0x0002) ACC_PRIVATE
    Code:
      stack=8, locals=16, args_size=3
        start local 0 // org.jruby.util.io.OpenFile this
        start local 1 // org.jruby.runtime.ThreadContext context
        start local 2 // int ec_flags
         0: .line 1173
            iload 2 /* ec_flags */
            ldc 65536
            ior
            istore 2 /* ec_flags */
         1: .line 1175
            aload 0 /* this */
            invokevirtual org.jruby.util.io.OpenFile.lock:()Z
            istore 11 /* locked */
        start local 11 // boolean locked
         2: .line 1177
            aload 0 /* this */
            getfield org.jruby.util.io.OpenFile.cbuf:Lorg/jruby/util/io/OpenFile$Buffer;
            getfield org.jruby.util.io.OpenFile$Buffer.len:I
            aload 0 /* this */
            getfield org.jruby.util.io.OpenFile.cbuf:Lorg/jruby/util/io/OpenFile$Buffer;
            getfield org.jruby.util.io.OpenFile$Buffer.capa:I
            if_icmpne 6
         3: .line 1178
            iconst_0
            invokestatic java.lang.Integer.valueOf:(I)Ljava/lang/Integer;
            astore 15
         4: .line 1239
            iload 11 /* locked */
            ifeq 5
            aload 0 /* this */
            invokevirtual org.jruby.util.io.OpenFile.unlock:()V
         5: .line 1178
      StackMap locals: org.jruby.util.io.OpenFile org.jruby.runtime.ThreadContext int top top top top top top top top int top top top java.lang.Object
      StackMap stack:
            aload 15
            areturn
         6: .line 1179
      StackMap locals: org.jruby.util.io.OpenFile org.jruby.runtime.ThreadContext int top top top top top top top top int
      StackMap stack:
            aload 0 /* this */
            getfield org.jruby.util.io.OpenFile.cbuf:Lorg/jruby/util/io/OpenFile$Buffer;
            getfield org.jruby.util.io.OpenFile$Buffer.len:I
            ifne 8
         7: .line 1180
            aload 0 /* this */
            getfield org.jruby.util.io.OpenFile.cbuf:Lorg/jruby/util/io/OpenFile$Buffer;
            iconst_0
            putfield org.jruby.util.io.OpenFile$Buffer.off:I
            goto 11
         8: .line 1181
      StackMap locals:
      StackMap stack:
            aload 0 /* this */
            getfield org.jruby.util.io.OpenFile.cbuf:Lorg/jruby/util/io/OpenFile$Buffer;
            getfield org.jruby.util.io.OpenFile$Buffer.off:I
            aload 0 /* this */
            getfield org.jruby.util.io.OpenFile.cbuf:Lorg/jruby/util/io/OpenFile$Buffer;
            getfield org.jruby.util.io.OpenFile$Buffer.len:I
            iadd
            aload 0 /* this */
            getfield org.jruby.util.io.OpenFile.cbuf:Lorg/jruby/util/io/OpenFile$Buffer;
            getfield org.jruby.util.io.OpenFile$Buffer.capa:I
            if_icmpne 11
         9: .line 1182
            aload 0 /* this */
            getfield org.jruby.util.io.OpenFile.cbuf:Lorg/jruby/util/io/OpenFile$Buffer;
            getfield org.jruby.util.io.OpenFile$Buffer.ptr:[B
            aload 0 /* this */
            getfield org.jruby.util.io.OpenFile.cbuf:Lorg/jruby/util/io/OpenFile$Buffer;
            getfield org.jruby.util.io.OpenFile$Buffer.off:I
            aload 0 /* this */
            getfield org.jruby.util.io.OpenFile.cbuf:Lorg/jruby/util/io/OpenFile$Buffer;
            getfield org.jruby.util.io.OpenFile$Buffer.ptr:[B
            iconst_0
            aload 0 /* this */
            getfield org.jruby.util.io.OpenFile.cbuf:Lorg/jruby/util/io/OpenFile$Buffer;
            getfield org.jruby.util.io.OpenFile$Buffer.len:I
            invokestatic java.lang.System.arraycopy:(Ljava/lang/Object;ILjava/lang/Object;II)V
        10: .line 1183
            aload 0 /* this */
            getfield org.jruby.util.io.OpenFile.cbuf:Lorg/jruby/util/io/OpenFile$Buffer;
            iconst_0
            putfield org.jruby.util.io.OpenFile$Buffer.off:I
        11: .line 1186
      StackMap locals:
      StackMap stack:
            aload 0 /* this */
            getfield org.jruby.util.io.OpenFile.cbuf:Lorg/jruby/util/io/OpenFile$Buffer;
            getfield org.jruby.util.io.OpenFile$Buffer.len:I
            istore 9 /* cbuf_len0 */
        start local 9 // int cbuf_len0
        12: .line 1188
            new org.jcodings.Ptr
            dup
            invokespecial org.jcodings.Ptr.<init>:()V
            astore 12 /* spPtr */
        start local 12 // org.jcodings.Ptr spPtr
        13: .line 1189
            new org.jcodings.Ptr
            dup
            invokespecial org.jcodings.Ptr.<init>:()V
            astore 13 /* dpPtr */
        start local 13 // org.jcodings.Ptr dpPtr
        14: .line 1192
      StackMap locals: org.jruby.util.io.OpenFile org.jruby.runtime.ThreadContext int top top top top top top int top int org.jcodings.Ptr org.jcodings.Ptr
      StackMap stack:
            aload 12 /* spPtr */
            aload 0 /* this */
            getfield org.jruby.util.io.OpenFile.rbuf:Lorg/jruby/util/io/OpenFile$Buffer;
            getfield org.jruby.util.io.OpenFile$Buffer.off:I
            dup_x1
            putfield org.jcodings.Ptr.p:I
            istore 3 /* ss */
        start local 3 // int ss
        15: .line 1193
            aload 12 /* spPtr */
            getfield org.jcodings.Ptr.p:I
            aload 0 /* this */
            getfield org.jruby.util.io.OpenFile.rbuf:Lorg/jruby/util/io/OpenFile$Buffer;
            getfield org.jruby.util.io.OpenFile$Buffer.len:I
            iadd
            istore 4 /* se */
        start local 4 // int se
        16: .line 1194
            aload 13 /* dpPtr */
            aload 0 /* this */
            getfield org.jruby.util.io.OpenFile.cbuf:Lorg/jruby/util/io/OpenFile$Buffer;
            getfield org.jruby.util.io.OpenFile$Buffer.off:I
            aload 0 /* this */
            getfield org.jruby.util.io.OpenFile.cbuf:Lorg/jruby/util/io/OpenFile$Buffer;
            getfield org.jruby.util.io.OpenFile$Buffer.len:I
            iadd
            dup_x1
            putfield org.jcodings.Ptr.p:I
            istore 5 /* ds */
        start local 5 // int ds
        17: .line 1195
            aload 0 /* this */
            getfield org.jruby.util.io.OpenFile.cbuf:Lorg/jruby/util/io/OpenFile$Buffer;
            getfield org.jruby.util.io.OpenFile$Buffer.capa:I
            istore 6 /* de */
        start local 6 // int de
        18: .line 1196
            aload 0 /* this */
            getfield org.jruby.util.io.OpenFile.readconv:Lorg/jcodings/transcode/EConv;
            aload 0 /* this */
            getfield org.jruby.util.io.OpenFile.rbuf:Lorg/jruby/util/io/OpenFile$Buffer;
            getfield org.jruby.util.io.OpenFile$Buffer.ptr:[B
            aload 12 /* spPtr */
            iload 4 /* se */
            aload 0 /* this */
            getfield org.jruby.util.io.OpenFile.cbuf:Lorg/jruby/util/io/OpenFile$Buffer;
            getfield org.jruby.util.io.OpenFile$Buffer.ptr:[B
            aload 13 /* dpPtr */
            iload 6 /* de */
            iload 2 /* ec_flags */
            invokevirtual org.jcodings.transcode.EConv.convert:([BLorg/jcodings/Ptr;I[BLorg/jcodings/Ptr;II)Lorg/jcodings/transcode/EConvResult;
            astore 7 /* res */
        start local 7 // org.jcodings.transcode.EConvResult res
        19: .line 1197
            aload 0 /* this */
            getfield org.jruby.util.io.OpenFile.rbuf:Lorg/jruby/util/io/OpenFile$Buffer;
            dup
            getfield org.jruby.util.io.OpenFile$Buffer.off:I
            aload 12 /* spPtr */
            getfield org.jcodings.Ptr.p:I
            iload 3 /* ss */
            isub
            iadd
            putfield org.jruby.util.io.OpenFile$Buffer.off:I
        20: .line 1198
            aload 0 /* this */
            getfield org.jruby.util.io.OpenFile.rbuf:Lorg/jruby/util/io/OpenFile$Buffer;
            dup
            getfield org.jruby.util.io.OpenFile$Buffer.len:I
            aload 12 /* spPtr */
            getfield org.jcodings.Ptr.p:I
            iload 3 /* ss */
            isub
            isub
            putfield org.jruby.util.io.OpenFile$Buffer.len:I
        21: .line 1199
            aload 0 /* this */
            getfield org.jruby.util.io.OpenFile.cbuf:Lorg/jruby/util/io/OpenFile$Buffer;
            dup
            getfield org.jruby.util.io.OpenFile$Buffer.len:I
            aload 13 /* dpPtr */
            getfield org.jcodings.Ptr.p:I
            iload 5 /* ds */
            isub
            iadd
            putfield org.jruby.util.io.OpenFile$Buffer.len:I
        22: .line 1201
            aload 0 /* this */
            getfield org.jruby.util.io.OpenFile.readconv:Lorg/jcodings/transcode/EConv;
            invokevirtual org.jcodings.transcode.EConv.putbackable:()I
            istore 8 /* putbackable */
        start local 8 // int putbackable
        23: .line 1202
            iload 8 /* putbackable */
            ifeq 27
        24: .line 1203
            aload 0 /* this */
            getfield org.jruby.util.io.OpenFile.readconv:Lorg/jcodings/transcode/EConv;
            aload 0 /* this */
            getfield org.jruby.util.io.OpenFile.rbuf:Lorg/jruby/util/io/OpenFile$Buffer;
            getfield org.jruby.util.io.OpenFile$Buffer.ptr:[B
            aload 0 /* this */
            getfield org.jruby.util.io.OpenFile.rbuf:Lorg/jruby/util/io/OpenFile$Buffer;
            getfield org.jruby.util.io.OpenFile$Buffer.off:I
            iload 8 /* putbackable */
            isub
            iload 8 /* putbackable */
            invokevirtual org.jcodings.transcode.EConv.putback:([BII)V
        25: .line 1204
            aload 0 /* this */
            getfield org.jruby.util.io.OpenFile.rbuf:Lorg/jruby/util/io/OpenFile$Buffer;
            dup
            getfield org.jruby.util.io.OpenFile$Buffer.off:I
            iload 8 /* putbackable */
            isub
            putfield org.jruby.util.io.OpenFile$Buffer.off:I
        26: .line 1205
            aload 0 /* this */
            getfield org.jruby.util.io.OpenFile.rbuf:Lorg/jruby/util/io/OpenFile$Buffer;
            dup
            getfield org.jruby.util.io.OpenFile$Buffer.len:I
            iload 8 /* putbackable */
            iadd
            putfield org.jruby.util.io.OpenFile$Buffer.len:I
        27: .line 1208
      StackMap locals: org.jruby.util.io.OpenFile org.jruby.runtime.ThreadContext int int int int int org.jcodings.transcode.EConvResult int int top int org.jcodings.Ptr org.jcodings.Ptr
      StackMap stack:
            aload 1 /* context */
            getfield org.jruby.runtime.ThreadContext.runtime:Lorg/jruby/Ruby;
            aload 0 /* this */
            getfield org.jruby.util.io.OpenFile.readconv:Lorg/jcodings/transcode/EConv;
            invokestatic org.jruby.util.io.EncodingUtils.makeEconvException:(Lorg/jruby/Ruby;Lorg/jcodings/transcode/EConv;)Lorg/jruby/exceptions/RaiseException;
            astore 10 /* exc */
        start local 10 // org.jruby.exceptions.RaiseException exc
        28: .line 1209
            aload 10 /* exc */
            ifnull 32
        29: .line 1210
            aload 10 /* exc */
            astore 15
        30: .line 1239
            iload 11 /* locked */
            ifeq 31
            aload 0 /* this */
            invokevirtual org.jruby.util.io.OpenFile.unlock:()V
        31: .line 1210
      StackMap locals: org.jruby.util.io.OpenFile org.jruby.runtime.ThreadContext int int int int int org.jcodings.transcode.EConvResult int int org.jruby.exceptions.RaiseException int org.jcodings.Ptr org.jcodings.Ptr top java.lang.Object
      StackMap stack:
            aload 15
            areturn
        32: .line 1212
      StackMap locals: org.jruby.util.io.OpenFile org.jruby.runtime.ThreadContext int int int int int org.jcodings.transcode.EConvResult int int org.jruby.exceptions.RaiseException int org.jcodings.Ptr org.jcodings.Ptr
      StackMap stack:
            iload 9 /* cbuf_len0 */
            aload 0 /* this */
            getfield org.jruby.util.io.OpenFile.cbuf:Lorg/jruby/util/io/OpenFile$Buffer;
            getfield org.jruby.util.io.OpenFile$Buffer.len:I
            if_icmpeq 36
        33: .line 1213
            iconst_0
            invokestatic java.lang.Integer.valueOf:(I)Ljava/lang/Integer;
            astore 15
        34: .line 1239
            iload 11 /* locked */
            ifeq 35
            aload 0 /* this */
            invokevirtual org.jruby.util.io.OpenFile.unlock:()V
        35: .line 1213
      StackMap locals: org.jruby.util.io.OpenFile org.jruby.runtime.ThreadContext int int int int int org.jcodings.transcode.EConvResult int int org.jruby.exceptions.RaiseException int org.jcodings.Ptr org.jcodings.Ptr top java.lang.Object
      StackMap stack:
            aload 15
            areturn
        36: .line 1215
      StackMap locals: org.jruby.util.io.OpenFile org.jruby.runtime.ThreadContext int int int int int org.jcodings.transcode.EConvResult int int org.jruby.exceptions.RaiseException int org.jcodings.Ptr org.jcodings.Ptr
      StackMap stack:
            aload 7 /* res */
            getstatic org.jcodings.transcode.EConvResult.Finished:Lorg/jcodings/transcode/EConvResult;
            if_acmpne 40
        37: .line 1216
            iconst_1
            invokestatic java.lang.Integer.valueOf:(I)Ljava/lang/Integer;
            astore 15
        38: .line 1239
            iload 11 /* locked */
            ifeq 39
            aload 0 /* this */
            invokevirtual org.jruby.util.io.OpenFile.unlock:()V
        39: .line 1216
      StackMap locals: org.jruby.util.io.OpenFile org.jruby.runtime.ThreadContext int int int int int org.jcodings.transcode.EConvResult int int org.jruby.exceptions.RaiseException int org.jcodings.Ptr org.jcodings.Ptr top java.lang.Object
      StackMap stack:
            aload 15
            areturn
        40: .line 1219
      StackMap locals: org.jruby.util.io.OpenFile org.jruby.runtime.ThreadContext int int int int int org.jcodings.transcode.EConvResult int int org.jruby.exceptions.RaiseException int org.jcodings.Ptr org.jcodings.Ptr
      StackMap stack:
            aload 7 /* res */
            getstatic org.jcodings.transcode.EConvResult.SourceBufferEmpty:Lorg/jcodings/transcode/EConvResult;
            if_acmpne 14
        41: .line 1220
            aload 0 /* this */
            getfield org.jruby.util.io.OpenFile.rbuf:Lorg/jruby/util/io/OpenFile$Buffer;
            getfield org.jruby.util.io.OpenFile$Buffer.len:I
            ifne 14
        42: .line 1221
            aload 0 /* this */
            aload 1 /* context */
            invokevirtual org.jruby.util.io.OpenFile.READ_CHECK:(Lorg/jruby/runtime/ThreadContext;)V
        43: .line 1222
            aload 0 /* this */
            aload 1 /* context */
            invokevirtual org.jruby.util.io.OpenFile.fillbuf:(Lorg/jruby/runtime/ThreadContext;)I
            iconst_m1
            if_icmpne 14
        44: .line 1223
            aload 0 /* this */
            getfield org.jruby.util.io.OpenFile.readconv:Lorg/jcodings/transcode/EConv;
            ifnonnull 48
        45: .line 1224
            iconst_1
            invokestatic java.lang.Integer.valueOf:(I)Ljava/lang/Integer;
            astore 15
        46: .line 1239
            iload 11 /* locked */
            ifeq 47
            aload 0 /* this */
            invokevirtual org.jruby.util.io.OpenFile.unlock:()V
        47: .line 1224
      StackMap locals: org.jruby.util.io.OpenFile org.jruby.runtime.ThreadContext int int int int int org.jcodings.transcode.EConvResult int int org.jruby.exceptions.RaiseException int org.jcodings.Ptr org.jcodings.Ptr top java.lang.Object
      StackMap stack:
            aload 15
            areturn
        48: .line 1226
      StackMap locals: org.jruby.util.io.OpenFile org.jruby.runtime.ThreadContext int int int int int org.jcodings.transcode.EConvResult int int org.jruby.exceptions.RaiseException int org.jcodings.Ptr org.jcodings.Ptr
      StackMap stack:
            aload 13 /* dpPtr */
            aload 0 /* this */
            getfield org.jruby.util.io.OpenFile.cbuf:Lorg/jruby/util/io/OpenFile$Buffer;
            getfield org.jruby.util.io.OpenFile$Buffer.off:I
            aload 0 /* this */
            getfield org.jruby.util.io.OpenFile.cbuf:Lorg/jruby/util/io/OpenFile$Buffer;
            getfield org.jruby.util.io.OpenFile$Buffer.len:I
            iadd
            dup_x1
            putfield org.jcodings.Ptr.p:I
            istore 5 /* ds */
        49: .line 1227
            aload 0 /* this */
            getfield org.jruby.util.io.OpenFile.cbuf:Lorg/jruby/util/io/OpenFile$Buffer;
            getfield org.jruby.util.io.OpenFile$Buffer.capa:I
            istore 6 /* de */
        50: .line 1228
            aload 0 /* this */
            getfield org.jruby.util.io.OpenFile.readconv:Lorg/jcodings/transcode/EConv;
            aconst_null
            aconst_null
            iconst_0
            aload 0 /* this */
            getfield org.jruby.util.io.OpenFile.cbuf:Lorg/jruby/util/io/OpenFile$Buffer;
            getfield org.jruby.util.io.OpenFile$Buffer.ptr:[B
            aload 13 /* dpPtr */
            iload 6 /* de */
            iconst_0
            invokevirtual org.jcodings.transcode.EConv.convert:([BLorg/jcodings/Ptr;I[BLorg/jcodings/Ptr;II)Lorg/jcodings/transcode/EConvResult;
            astore 7 /* res */
        51: .line 1229
            aload 0 /* this */
            getfield org.jruby.util.io.OpenFile.cbuf:Lorg/jruby/util/io/OpenFile$Buffer;
            dup
            getfield org.jruby.util.io.OpenFile$Buffer.len:I
            aload 13 /* dpPtr */
            getfield org.jcodings.Ptr.p:I
            iload 5 /* ds */
            isub
            iadd
            putfield org.jruby.util.io.OpenFile$Buffer.len:I
        52: .line 1230
            aload 1 /* context */
            aload 0 /* this */
            getfield org.jruby.util.io.OpenFile.readconv:Lorg/jcodings/transcode/EConv;
            invokestatic org.jruby.util.io.EncodingUtils.econvCheckError:(Lorg/jruby/runtime/ThreadContext;Lorg/jcodings/transcode/EConv;)V
        53: .line 1236
            iload 9 /* cbuf_len0 */
            aload 0 /* this */
            getfield org.jruby.util.io.OpenFile.cbuf:Lorg/jruby/util/io/OpenFile$Buffer;
            getfield org.jruby.util.io.OpenFile$Buffer.len:I
            if_icmpeq 60
        54: .line 1237
            iconst_0
            invokestatic java.lang.Integer.valueOf:(I)Ljava/lang/Integer;
            astore 15
        55: .line 1239
            iload 11 /* locked */
            ifeq 56
            aload 0 /* this */
            invokevirtual org.jruby.util.io.OpenFile.unlock:()V
        56: .line 1237
      StackMap locals: org.jruby.util.io.OpenFile org.jruby.runtime.ThreadContext int int int int int org.jcodings.transcode.EConvResult int int org.jruby.exceptions.RaiseException int org.jcodings.Ptr org.jcodings.Ptr top java.lang.Object
      StackMap stack:
            aload 15
            areturn
        end local 13 // org.jcodings.Ptr dpPtr
        end local 12 // org.jcodings.Ptr spPtr
        end local 10 // org.jruby.exceptions.RaiseException exc
        end local 9 // int cbuf_len0
        end local 8 // int putbackable
        end local 7 // org.jcodings.transcode.EConvResult res
        end local 6 // int de
        end local 5 // int ds
        end local 4 // int se
        end local 3 // int ss
        57: .line 1238
      StackMap locals: org.jruby.util.io.OpenFile org.jruby.runtime.ThreadContext int top top top top top top top top int
      StackMap stack: java.lang.Throwable
            astore 14
        58: .line 1239
            iload 11 /* locked */
            ifeq 59
            aload 0 /* this */
            invokevirtual org.jruby.util.io.OpenFile.unlock:()V
        59: .line 1240
      StackMap locals: org.jruby.util.io.OpenFile org.jruby.runtime.ThreadContext int top top top top top top top top int top top java.lang.Throwable
      StackMap stack:
            aload 14
            athrow
        start local 3 // int ss
        start local 4 // int se
        start local 5 // int ds
        start local 6 // int de
        start local 7 // org.jcodings.transcode.EConvResult res
        start local 8 // int putbackable
        start local 9 // int cbuf_len0
        start local 10 // org.jruby.exceptions.RaiseException exc
        60: .line 1239
      StackMap locals: org.jruby.util.io.OpenFile org.jruby.runtime.ThreadContext int int int int int org.jcodings.transcode.EConvResult int int org.jruby.exceptions.RaiseException int
      StackMap stack:
            iload 11 /* locked */
            ifeq 61
            aload 0 /* this */
            invokevirtual org.jruby.util.io.OpenFile.unlock:()V
        61: .line 1242
      StackMap locals:
      StackMap stack:
            iconst_1
            invokestatic java.lang.Integer.valueOf:(I)Ljava/lang/Integer;
            areturn
        end local 11 // boolean locked
        end local 10 // org.jruby.exceptions.RaiseException exc
        end local 9 // int cbuf_len0
        end local 8 // int putbackable
        end local 7 // org.jcodings.transcode.EConvResult res
        end local 6 // int de
        end local 5 // int ds
        end local 4 // int se
        end local 3 // int ss
        end local 2 // int ec_flags
        end local 1 // org.jruby.runtime.ThreadContext context
        end local 0 // org.jruby.util.io.OpenFile this
      LocalVariableTable:
        Start  End  Slot         Name  Signature
            0   62     0         this  Lorg/jruby/util/io/OpenFile;
            0   62     1      context  Lorg/jruby/runtime/ThreadContext;
            0   62     2     ec_flags  I
           15   57     3           ss  I
           60   62     3           ss  I
           16   57     4           se  I
           60   62     4           se  I
           17   57     5           ds  I
           60   62     5           ds  I
           18   57     6           de  I
           60   62     6           de  I
           19   57     7          res  Lorg/jcodings/transcode/EConvResult;
           60   62     7          res  Lorg/jcodings/transcode/EConvResult;
           23   57     8  putbackable  I
           60   62     8  putbackable  I
           12   57     9    cbuf_len0  I
           60   62     9    cbuf_len0  I
           28   57    10          exc  Lorg/jruby/exceptions/RaiseException;
           60   62    10          exc  Lorg/jruby/exceptions/RaiseException;
            2   62    11       locked  Z
           13   57    12        spPtr  Lorg/jcodings/Ptr;
           14   57    13        dpPtr  Lorg/jcodings/Ptr;
      Exception table:
        from    to  target  type
           2     4      57  any
           6    30      57  any
          32    34      57  any
          36    38      57  any
          40    46      57  any
          48    55      57  any
    MethodParameters:
          Name  Flags
      context   
      ec_flags  

  public int readBufferedData(byte[], int, int);
    descriptor: ([BII)I
    flags: (0x0001) ACC_PUBLIC
    Code:
      stack=5, locals=8, args_size=4
        start local 0 // org.jruby.util.io.OpenFile this
        start local 1 // byte[] ptrBytes
        start local 2 // int ptr
        start local 3 // int len
         0: .line 1247
            aload 0 /* this */
            invokevirtual org.jruby.util.io.OpenFile.lock:()Z
            istore 4 /* locked */
        start local 4 // boolean locked
         1: .line 1249
            aload 0 /* this */
            getfield org.jruby.util.io.OpenFile.rbuf:Lorg/jruby/util/io/OpenFile$Buffer;
            getfield org.jruby.util.io.OpenFile$Buffer.len:I
            istore 5 /* n */
        start local 5 // int n
         2: .line 1251
            iload 5 /* n */
            ifgt 5
            iload 5 /* n */
            istore 7
         3: .line 1258
            iload 4 /* locked */
            ifeq 4
            aload 0 /* this */
            invokevirtual org.jruby.util.io.OpenFile.unlock:()V
      StackMap locals: org.jruby.util.io.OpenFile byte[] int int int int top int
      StackMap stack:
         4: iload 7
            ireturn
         5: .line 1252
      StackMap locals: org.jruby.util.io.OpenFile byte[] int int int int
      StackMap stack:
            iload 5 /* n */
            iload 3 /* len */
            if_icmple 6
            iload 3 /* len */
            istore 5 /* n */
         6: .line 1253
      StackMap locals:
      StackMap stack:
            aload 0 /* this */
            getfield org.jruby.util.io.OpenFile.rbuf:Lorg/jruby/util/io/OpenFile$Buffer;
            getfield org.jruby.util.io.OpenFile$Buffer.ptr:[B
            aload 0 /* this */
            getfield org.jruby.util.io.OpenFile.rbuf:Lorg/jruby/util/io/OpenFile$Buffer;
            getfield org.jruby.util.io.OpenFile$Buffer.start:I
            aload 0 /* this */
            getfield org.jruby.util.io.OpenFile.rbuf:Lorg/jruby/util/io/OpenFile$Buffer;
            getfield org.jruby.util.io.OpenFile$Buffer.off:I
            iadd
            aload 1 /* ptrBytes */
            iload 2 /* ptr */
            iload 5 /* n */
            invokestatic java.lang.System.arraycopy:(Ljava/lang/Object;ILjava/lang/Object;II)V
         7: .line 1254
            aload 0 /* this */
            getfield org.jruby.util.io.OpenFile.rbuf:Lorg/jruby/util/io/OpenFile$Buffer;
            dup
            getfield org.jruby.util.io.OpenFile$Buffer.off:I
            iload 5 /* n */
            iadd
            putfield org.jruby.util.io.OpenFile$Buffer.off:I
         8: .line 1255
            aload 0 /* this */
            getfield org.jruby.util.io.OpenFile.rbuf:Lorg/jruby/util/io/OpenFile$Buffer;
            dup
            getfield org.jruby.util.io.OpenFile$Buffer.len:I
            iload 5 /* n */
            isub
            putfield org.jruby.util.io.OpenFile$Buffer.len:I
         9: .line 1256
            iload 5 /* n */
            istore 7
        10: .line 1258
            iload 4 /* locked */
            ifeq 11
            aload 0 /* this */
            invokevirtual org.jruby.util.io.OpenFile.unlock:()V
        11: .line 1256
      StackMap locals: org.jruby.util.io.OpenFile byte[] int int int int top int
      StackMap stack:
            iload 7
            ireturn
        end local 5 // int n
        12: .line 1257
      StackMap locals: org.jruby.util.io.OpenFile byte[] int int int
      StackMap stack: java.lang.Throwable
            astore 6
        13: .line 1258
            iload 4 /* locked */
            ifeq 14
            aload 0 /* this */
            invokevirtual org.jruby.util.io.OpenFile.unlock:()V
        14: .line 1259
      StackMap locals: org.jruby.util.io.OpenFile byte[] int int int top java.lang.Throwable
      StackMap stack:
            aload 6
            athrow
        end local 4 // boolean locked
        end local 3 // int len
        end local 2 // int ptr
        end local 1 // byte[] ptrBytes
        end local 0 // org.jruby.util.io.OpenFile this
      LocalVariableTable:
        Start  End  Slot      Name  Signature
            0   15     0      this  Lorg/jruby/util/io/OpenFile;
            0   15     1  ptrBytes  [B
            0   15     2       ptr  I
            0   15     3       len  I
            1   15     4    locked  Z
            2   12     5         n  I
      Exception table:
        from    to  target  type
           1     3      12  any
           5    10      12  any
    MethodParameters:
          Name  Flags
      ptrBytes  
      ptr       
      len       

  public int fillbuf(org.jruby.runtime.ThreadContext);
    descriptor: (Lorg/jruby/runtime/ThreadContext;)I
    flags: (0x0001) ACC_PUBLIC
    Code:
      stack=6, locals=5, args_size=2
        start local 0 // org.jruby.util.io.OpenFile this
        start local 1 // org.jruby.runtime.ThreadContext context
         0: .line 1266
            aload 0 /* this */
            invokevirtual org.jruby.util.io.OpenFile.lock:()Z
            istore 3 /* locked */
        start local 3 // boolean locked
         1: .line 1268
            aload 0 /* this */
            getfield org.jruby.util.io.OpenFile.rbuf:Lorg/jruby/util/io/OpenFile$Buffer;
            getfield org.jruby.util.io.OpenFile$Buffer.ptr:[B
            ifnonnull 7
         2: .line 1269
            aload 0 /* this */
            getfield org.jruby.util.io.OpenFile.rbuf:Lorg/jruby/util/io/OpenFile$Buffer;
            iconst_0
            putfield org.jruby.util.io.OpenFile$Buffer.off:I
         3: .line 1270
            aload 0 /* this */
            getfield org.jruby.util.io.OpenFile.rbuf:Lorg/jruby/util/io/OpenFile$Buffer;
            iconst_0
            putfield org.jruby.util.io.OpenFile$Buffer.len:I
         4: .line 1271
            aload 0 /* this */
            getfield org.jruby.util.io.OpenFile.rbuf:Lorg/jruby/util/io/OpenFile$Buffer;
            aload 0 /* this */
            invokevirtual org.jruby.util.io.OpenFile.IO_RBUF_CAPA_FOR:()I
            putfield org.jruby.util.io.OpenFile$Buffer.capa:I
         5: .line 1272
            aload 0 /* this */
            getfield org.jruby.util.io.OpenFile.rbuf:Lorg/jruby/util/io/OpenFile$Buffer;
            aload 0 /* this */
            getfield org.jruby.util.io.OpenFile.rbuf:Lorg/jruby/util/io/OpenFile$Buffer;
            getfield org.jruby.util.io.OpenFile$Buffer.capa:I
            newarray 8
            putfield org.jruby.util.io.OpenFile$Buffer.ptr:[B
         6: .line 1273
            getstatic org.jruby.platform.Platform.IS_WINDOWS:Z
            ifeq 7
            aload 0 /* this */
            getfield org.jruby.util.io.OpenFile.rbuf:Lorg/jruby/util/io/OpenFile$Buffer;
            dup
            getfield org.jruby.util.io.OpenFile$Buffer.capa:I
            iconst_1
            isub
            putfield org.jruby.util.io.OpenFile$Buffer.capa:I
         7: .line 1275
      StackMap locals: org.jruby.util.io.OpenFile org.jruby.runtime.ThreadContext top int
      StackMap stack:
            aload 0 /* this */
            getfield org.jruby.util.io.OpenFile.rbuf:Lorg/jruby/util/io/OpenFile$Buffer;
            getfield org.jruby.util.io.OpenFile$Buffer.len:I
            ifne 24
         8: .line 1278
      StackMap locals:
      StackMap stack:
            aload 1 /* context */
            aload 0 /* this */
            aload 0 /* this */
            getfield org.jruby.util.io.OpenFile.fd:Lorg/jruby/util/io/ChannelFD;
            aload 0 /* this */
            getfield org.jruby.util.io.OpenFile.rbuf:Lorg/jruby/util/io/OpenFile$Buffer;
            getfield org.jruby.util.io.OpenFile$Buffer.ptr:[B
            iconst_0
            aload 0 /* this */
            getfield org.jruby.util.io.OpenFile.rbuf:Lorg/jruby/util/io/OpenFile$Buffer;
            getfield org.jruby.util.io.OpenFile$Buffer.capa:I
            invokestatic org.jruby.util.io.OpenFile.readInternal:(Lorg/jruby/runtime/ThreadContext;Lorg/jruby/util/io/OpenFile;Lorg/jruby/util/io/ChannelFD;[BII)I
            istore 2 /* r */
        start local 2 // int r
         9: .line 1280
            iload 2 /* r */
            ifge 15
        10: .line 1281
            aload 0 /* this */
            aload 1 /* context */
            aload 0 /* this */
            getfield org.jruby.util.io.OpenFile.fd:Lorg/jruby/util/io/ChannelFD;
            invokevirtual org.jruby.util.io.OpenFile.waitReadable:(Lorg/jruby/runtime/ThreadContext;Lorg/jruby/util/io/ChannelFD;)Z
            ifeq 12
        11: .line 1282
            goto 8
        12: .line 1284
      StackMap locals: org.jruby.util.io.OpenFile org.jruby.runtime.ThreadContext int int
      StackMap stack:
            aload 1 /* context */
            getfield org.jruby.runtime.ThreadContext.runtime:Lorg/jruby/Ruby;
            aload 0 /* this */
            getfield org.jruby.util.io.OpenFile.posix:Lorg/jruby/util/io/PosixShim;
            invokevirtual org.jruby.util.io.PosixShim.getErrno:()Ljnr/constants/platform/Errno;
            new java.lang.StringBuilder
            dup
            ldc "channel: "
            invokespecial java.lang.StringBuilder.<init>:(Ljava/lang/String;)V
            aload 0 /* this */
            getfield org.jruby.util.io.OpenFile.fd:Lorg/jruby/util/io/ChannelFD;
            invokevirtual java.lang.StringBuilder.append:(Ljava/lang/Object;)Ljava/lang/StringBuilder;
            aload 0 /* this */
            getfield org.jruby.util.io.OpenFile.pathv:Ljava/lang/String;
            ifnull 13
            new java.lang.StringBuilder
            dup
            ldc " "
            invokespecial java.lang.StringBuilder.<init>:(Ljava/lang/String;)V
            aload 0 /* this */
            getfield org.jruby.util.io.OpenFile.pathv:Ljava/lang/String;
            invokevirtual java.lang.StringBuilder.append:(Ljava/lang/String;)Ljava/lang/StringBuilder;
            invokevirtual java.lang.StringBuilder.toString:()Ljava/lang/String;
            goto 14
      StackMap locals: org.jruby.util.io.OpenFile org.jruby.runtime.ThreadContext int int
      StackMap stack: org.jruby.Ruby jnr.constants.platform.Errno java.lang.StringBuilder
        13: ldc ""
      StackMap locals: org.jruby.util.io.OpenFile org.jruby.runtime.ThreadContext int int
      StackMap stack: org.jruby.Ruby jnr.constants.platform.Errno java.lang.StringBuilder java.lang.String
        14: invokevirtual java.lang.StringBuilder.append:(Ljava/lang/String;)Ljava/lang/StringBuilder;
            invokevirtual java.lang.StringBuilder.toString:()Ljava/lang/String;
            invokevirtual org.jruby.Ruby.newErrnoFromErrno:(Ljnr/constants/platform/Errno;Ljava/lang/String;)Lorg/jruby/exceptions/RaiseException;
            athrow
        15: .line 1288
      StackMap locals:
      StackMap stack:
            iload 2 /* r */
            ifle 16
            aload 0 /* this */
            invokevirtual org.jruby.util.io.OpenFile.checkClosed:()V
        16: .line 1289
      StackMap locals:
      StackMap stack:
            aload 0 /* this */
            getfield org.jruby.util.io.OpenFile.rbuf:Lorg/jruby/util/io/OpenFile$Buffer;
            iconst_0
            putfield org.jruby.util.io.OpenFile$Buffer.off:I
        17: .line 1290
            aload 0 /* this */
            getfield org.jruby.util.io.OpenFile.rbuf:Lorg/jruby/util/io/OpenFile$Buffer;
            iload 2 /* r */
            putfield org.jruby.util.io.OpenFile$Buffer.len:I
        18: .line 1291
            iload 2 /* r */
            ifne 24
        19: .line 1294
            iload 3 /* locked */
            ifeq 20
            aload 0 /* this */
            invokevirtual org.jruby.util.io.OpenFile.unlock:()V
        20: .line 1291
      StackMap locals:
      StackMap stack:
            iconst_m1
            ireturn
        end local 2 // int r
        21: .line 1293
      StackMap locals: org.jruby.util.io.OpenFile org.jruby.runtime.ThreadContext top int
      StackMap stack: java.lang.Throwable
            astore 4
        22: .line 1294
            iload 3 /* locked */
            ifeq 23
            aload 0 /* this */
            invokevirtual org.jruby.util.io.OpenFile.unlock:()V
        23: .line 1295
      StackMap locals: java.lang.Throwable
      StackMap stack:
            aload 4
            athrow
        24: .line 1294
      StackMap locals:
      StackMap stack:
            iload 3 /* locked */
            ifeq 25
            aload 0 /* this */
            invokevirtual org.jruby.util.io.OpenFile.unlock:()V
        25: .line 1296
      StackMap locals:
      StackMap stack:
            iconst_0
            ireturn
        end local 3 // boolean locked
        end local 1 // org.jruby.runtime.ThreadContext context
        end local 0 // org.jruby.util.io.OpenFile this
      LocalVariableTable:
        Start  End  Slot     Name  Signature
            0   26     0     this  Lorg/jruby/util/io/OpenFile;
            0   26     1  context  Lorg/jruby/runtime/ThreadContext;
            9   21     2        r  I
            1   26     3   locked  Z
      Exception table:
        from    to  target  type
           1    19      21  any
    MethodParameters:
         Name  Flags
      context  

  public static int readInternal(org.jruby.runtime.ThreadContext, org.jruby.util.io.OpenFile, org.jruby.util.io.ChannelFD, byte[], int, int);
    descriptor: (Lorg/jruby/runtime/ThreadContext;Lorg/jruby/util/io/OpenFile;Lorg/jruby/util/io/ChannelFD;[BII)I
    flags: (0x0009) ACC_PUBLIC, ACC_STATIC
    Code:
      stack=7, locals=8, args_size=6
        start local 0 // org.jruby.runtime.ThreadContext context
        start local 1 // org.jruby.util.io.OpenFile fptr
        start local 2 // org.jruby.util.io.ChannelFD fd
        start local 3 // byte[] bufBytes
        start local 4 // int buf
        start local 5 // int count
         0: .line 1362
            new org.jruby.util.io.OpenFile$InternalReadStruct
            dup
            aload 1 /* fptr */
            aload 2 /* fd */
            aload 3 /* bufBytes */
            iload 4 /* buf */
            iload 5 /* count */
            invokespecial org.jruby.util.io.OpenFile$InternalReadStruct.<init>:(Lorg/jruby/util/io/OpenFile;Lorg/jruby/util/io/ChannelFD;[BII)V
            astore 6 /* iis */
        start local 6 // org.jruby.util.io.OpenFile$InternalReadStruct iis
         1: .line 1377
            aload 1 /* fptr */
            invokevirtual org.jruby.util.io.OpenFile.unlock:()V
         2: .line 1379
            aload 2 /* fd */
            getfield org.jruby.util.io.ChannelFD.chSelect:Ljava/nio/channels/SelectableChannel;
            ifnull 10
         3: .line 1380
            aload 2 /* fd */
            getfield org.jruby.util.io.ChannelFD.chNative:Ljnr/enxio/channels/NativeSelectableChannel;
            ifnonnull 10
         4: .line 1381
            aload 6 /* iis */
            getfield org.jruby.util.io.OpenFile$InternalReadStruct.fptr:Lorg/jruby/util/io/OpenFile;
            getfield org.jruby.util.io.OpenFile.nonblock:Z
            ifne 10
         5: .line 1382
            aload 0 /* context */
            invokevirtual org.jruby.runtime.ThreadContext.getThread:()Lorg/jruby/RubyThread;
            aload 2 /* fd */
            getfield org.jruby.util.io.ChannelFD.chSelect:Ljava/nio/channels/SelectableChannel;
            aload 1 /* fptr */
            iconst_1
            invokevirtual org.jruby.RubyThread.select:(Ljava/nio/channels/Channel;Lorg/jruby/util/io/OpenFile;I)Z
            pop
         6: .line 1384
            goto 10
      StackMap locals: org.jruby.runtime.ThreadContext org.jruby.util.io.OpenFile org.jruby.util.io.ChannelFD byte[] int int org.jruby.util.io.OpenFile$InternalReadStruct
      StackMap stack: java.lang.Throwable
         7: astore 7
         8: .line 1385
            aload 1 /* fptr */
            invokevirtual org.jruby.util.io.OpenFile.lock:()Z
            pop
         9: .line 1386
            aload 7
            athrow
        10: .line 1385
      StackMap locals:
      StackMap stack:
            aload 1 /* fptr */
            invokevirtual org.jruby.util.io.OpenFile.lock:()Z
            pop
        11: .line 1389
            aload 0 /* context */
            invokevirtual org.jruby.runtime.ThreadContext.getThread:()Lorg/jruby/RubyThread;
            aload 0 /* context */
            aload 6 /* iis */
            getstatic org.jruby.util.io.OpenFile.readTask:Lorg/jruby/RubyThread$Task;
            invokevirtual org.jruby.RubyThread.executeTask:(Lorg/jruby/runtime/ThreadContext;Ljava/lang/Object;Lorg/jruby/RubyThread$Task;)Ljava/lang/Object;
            checkcast java.lang.Integer
            invokevirtual java.lang.Integer.intValue:()I
        12: ireturn
        13: .line 1390
      StackMap locals:
      StackMap stack: java.lang.InterruptedException
            pop
        14: .line 1391
            aload 0 /* context */
            getfield org.jruby.runtime.ThreadContext.runtime:Lorg/jruby/Ruby;
            ldc "IO operation interrupted"
            invokevirtual org.jruby.Ruby.newConcurrencyError:(Ljava/lang/String;)Lorg/jruby/exceptions/RaiseException;
            athrow
        end local 6 // org.jruby.util.io.OpenFile$InternalReadStruct iis
        end local 5 // int count
        end local 4 // int buf
        end local 3 // byte[] bufBytes
        end local 2 // org.jruby.util.io.ChannelFD fd
        end local 1 // org.jruby.util.io.OpenFile fptr
        end local 0 // org.jruby.runtime.ThreadContext context
      LocalVariableTable:
        Start  End  Slot      Name  Signature
            0   15     0   context  Lorg/jruby/runtime/ThreadContext;
            0   15     1      fptr  Lorg/jruby/util/io/OpenFile;
            0   15     2        fd  Lorg/jruby/util/io/ChannelFD;
            0   15     3  bufBytes  [B
            0   15     4       buf  I
            0   15     5     count  I
            1   15     6       iis  Lorg/jruby/util/io/OpenFile$InternalReadStruct;
      Exception table:
        from    to  target  type
           2     7       7  any
          11    12      13  Class java.lang.InterruptedException
    MethodParameters:
          Name  Flags
      context   
      fptr      
      fd        
      bufBytes  
      buf       
      count     

  boolean waitReadable(org.jruby.runtime.ThreadContext, org.jruby.util.io.ChannelFD);
    descriptor: (Lorg/jruby/runtime/ThreadContext;Lorg/jruby/util/io/ChannelFD;)Z
    flags: (0x0000) 
    Code:
      stack=4, locals=7, args_size=3
        start local 0 // org.jruby.util.io.OpenFile this
        start local 1 // org.jruby.runtime.ThreadContext context
        start local 2 // org.jruby.util.io.ChannelFD fd
         0: .line 1407
            aload 0 /* this */
            invokevirtual org.jruby.util.io.OpenFile.checkClosed:()V
         1: .line 1409
            aload 0 /* this */
            invokevirtual org.jruby.util.io.OpenFile.lock:()Z
            istore 3 /* locked */
        start local 3 // boolean locked
         2: .line 1411
            aload 2 /* fd */
            getfield org.jruby.util.io.ChannelFD.ch:Ljava/nio/channels/Channel;
            invokeinterface java.nio.channels.Channel.isOpen:()Z
            ifne 6
         3: .line 1412
            aload 0 /* this */
            getfield org.jruby.util.io.OpenFile.posix:Lorg/jruby/util/io/PosixShim;
            getstatic jnr.constants.platform.Errno.EBADF:Ljnr/constants/platform/Errno;
            invokevirtual org.jruby.util.io.PosixShim.setErrno:(Ljnr/constants/platform/Errno;)V
         4: .line 1444
            iload 3 /* locked */
            ifeq 5
            aload 0 /* this */
            invokevirtual org.jruby.util.io.OpenFile.unlock:()V
         5: .line 1413
      StackMap locals: int
      StackMap stack:
            iconst_0
            ireturn
         6: .line 1416
      StackMap locals:
      StackMap stack:
            aload 0 /* this */
            getfield org.jruby.util.io.OpenFile.posix:Lorg/jruby/util/io/PosixShim;
            invokevirtual org.jruby.util.io.PosixShim.getErrno:()Ljnr/constants/platform/Errno;
            ifnull 10
            aload 0 /* this */
            getfield org.jruby.util.io.OpenFile.posix:Lorg/jruby/util/io/PosixShim;
            invokevirtual org.jruby.util.io.PosixShim.getErrno:()Ljnr/constants/platform/Errno;
            getstatic jnr.constants.platform.Errno.EAGAIN:Ljnr/constants/platform/Errno;
            if_acmpeq 10
         7: .line 1417
            aload 0 /* this */
            getfield org.jruby.util.io.OpenFile.posix:Lorg/jruby/util/io/PosixShim;
            invokevirtual org.jruby.util.io.PosixShim.getErrno:()Ljnr/constants/platform/Errno;
            getstatic jnr.constants.platform.Errno.EWOULDBLOCK:Ljnr/constants/platform/Errno;
            if_acmpeq 10
            aload 0 /* this */
            getfield org.jruby.util.io.OpenFile.posix:Lorg/jruby/util/io/PosixShim;
            invokevirtual org.jruby.util.io.PosixShim.getErrno:()Ljnr/constants/platform/Errno;
            getstatic jnr.constants.platform.Errno.EINTR:Ljnr/constants/platform/Errno;
            if_acmpeq 10
         8: .line 1444
            iload 3 /* locked */
            ifeq 9
            aload 0 /* this */
            invokevirtual org.jruby.util.io.OpenFile.unlock:()V
         9: .line 1419
      StackMap locals:
      StackMap stack:
            iconst_0
            ireturn
        10: .line 1422
      StackMap locals:
      StackMap stack:
            aload 2 /* fd */
            getfield org.jruby.util.io.ChannelFD.chSelect:Ljava/nio/channels/SelectableChannel;
            ifnull 19
        11: .line 1423
            aload 0 /* this */
            invokevirtual org.jruby.util.io.OpenFile.unlock:()V
        12: .line 1425
            aload 1 /* context */
            invokevirtual org.jruby.runtime.ThreadContext.getThread:()Lorg/jruby/RubyThread;
            aload 2 /* fd */
            getfield org.jruby.util.io.ChannelFD.chSelect:Ljava/nio/channels/SelectableChannel;
            aload 0 /* this */
            iconst_1
            invokevirtual org.jruby.RubyThread.select:(Ljava/nio/channels/Channel;Lorg/jruby/util/io/OpenFile;I)Z
            istore 5
        13: .line 1427
            aload 0 /* this */
            invokevirtual org.jruby.util.io.OpenFile.lock:()Z
            pop
        14: .line 1444
            iload 3 /* locked */
            ifeq 15
            aload 0 /* this */
            invokevirtual org.jruby.util.io.OpenFile.unlock:()V
        15: .line 1425
      StackMap locals: org.jruby.util.io.OpenFile org.jruby.runtime.ThreadContext org.jruby.util.io.ChannelFD int top int
      StackMap stack:
            iload 5
            ireturn
        16: .line 1426
      StackMap locals: org.jruby.util.io.OpenFile org.jruby.runtime.ThreadContext org.jruby.util.io.ChannelFD int
      StackMap stack: java.lang.Throwable
            astore 4
        17: .line 1427
            aload 0 /* this */
            invokevirtual org.jruby.util.io.OpenFile.lock:()Z
            pop
        18: .line 1428
            aload 4
            athrow
        19: .line 1440
      StackMap locals:
      StackMap stack:
            aload 2 /* fd */
            getfield org.jruby.util.io.ChannelFD.chSeek:Ljava/nio/channels/SeekableByteChannel;
            ifnull 25
        20: .line 1444
            iload 3 /* locked */
            ifeq 21
            aload 0 /* this */
            invokevirtual org.jruby.util.io.OpenFile.unlock:()V
        21: .line 1441
      StackMap locals:
      StackMap stack:
            iconst_1
            ireturn
        22: .line 1443
      StackMap locals:
      StackMap stack: java.lang.Throwable
            astore 6
        23: .line 1444
            iload 3 /* locked */
            ifeq 24
            aload 0 /* this */
            invokevirtual org.jruby.util.io.OpenFile.unlock:()V
        24: .line 1445
      StackMap locals: org.jruby.util.io.OpenFile org.jruby.runtime.ThreadContext org.jruby.util.io.ChannelFD int top top java.lang.Throwable
      StackMap stack:
            aload 6
            athrow
        25: .line 1444
      StackMap locals: org.jruby.util.io.OpenFile org.jruby.runtime.ThreadContext org.jruby.util.io.ChannelFD int
      StackMap stack:
            iload 3 /* locked */
            ifeq 26
            aload 0 /* this */
            invokevirtual org.jruby.util.io.OpenFile.unlock:()V
        26: .line 1448
      StackMap locals:
      StackMap stack:
            iconst_0
            ireturn
        end local 3 // boolean locked
        end local 2 // org.jruby.util.io.ChannelFD fd
        end local 1 // org.jruby.runtime.ThreadContext context
        end local 0 // org.jruby.util.io.OpenFile this
      LocalVariableTable:
        Start  End  Slot     Name  Signature
            0   27     0     this  Lorg/jruby/util/io/OpenFile;
            0   27     1  context  Lorg/jruby/runtime/ThreadContext;
            0   27     2       fd  Lorg/jruby/util/io/ChannelFD;
            2   27     3   locked  Z
      Exception table:
        from    to  target  type
          12    13      16  any
           2     4      22  any
           6     8      22  any
          10    14      22  any
          16    20      22  any
    MethodParameters:
         Name  Flags
      context  
      fd       

  public org.jcodings.Encoding readEncoding(org.jruby.Ruby);
    descriptor: (Lorg/jruby/Ruby;)Lorg/jcodings/Encoding;
    flags: (0x0001) ACC_PUBLIC
    Code:
      stack=1, locals=2, args_size=2
        start local 0 // org.jruby.util.io.OpenFile this
        start local 1 // org.jruby.Ruby runtime
         0: .line 1473
            aload 0 /* this */
            getfield org.jruby.util.io.OpenFile.encs:Lorg/jruby/util/io/IOEncodable$ConvConfig;
            getfield org.jruby.util.io.IOEncodable$ConvConfig.enc:Lorg/jcodings/Encoding;
            ifnull 1
            aload 0 /* this */
            getfield org.jruby.util.io.OpenFile.encs:Lorg/jruby/util/io/IOEncodable$ConvConfig;
            getfield org.jruby.util.io.IOEncodable$ConvConfig.enc:Lorg/jcodings/Encoding;
            goto 2
      StackMap locals:
      StackMap stack:
         1: aload 1 /* runtime */
            invokestatic org.jruby.util.io.EncodingUtils.defaultExternalEncoding:(Lorg/jruby/Ruby;)Lorg/jcodings/Encoding;
      StackMap locals:
      StackMap stack: org.jcodings.Encoding
         2: areturn
        end local 1 // org.jruby.Ruby runtime
        end local 0 // org.jruby.util.io.OpenFile this
      LocalVariableTable:
        Start  End  Slot     Name  Signature
            0    3     0     this  Lorg/jruby/util/io/OpenFile;
            0    3     1  runtime  Lorg/jruby/Ruby;
    MethodParameters:
         Name  Flags
      runtime  

  public org.jcodings.Encoding inputEncoding(org.jruby.Ruby);
    descriptor: (Lorg/jruby/Ruby;)Lorg/jcodings/Encoding;
    flags: (0x0001) ACC_PUBLIC
    Code:
      stack=2, locals=2, args_size=2
        start local 0 // org.jruby.util.io.OpenFile this
        start local 1 // org.jruby.Ruby runtime
         0: .line 1478
            aload 0 /* this */
            getfield org.jruby.util.io.OpenFile.encs:Lorg/jruby/util/io/IOEncodable$ConvConfig;
            getfield org.jruby.util.io.IOEncodable$ConvConfig.enc2:Lorg/jcodings/Encoding;
            ifnull 1
            aload 0 /* this */
            getfield org.jruby.util.io.OpenFile.encs:Lorg/jruby/util/io/IOEncodable$ConvConfig;
            getfield org.jruby.util.io.IOEncodable$ConvConfig.enc2:Lorg/jcodings/Encoding;
            goto 2
      StackMap locals:
      StackMap stack:
         1: aload 0 /* this */
            aload 1 /* runtime */
            invokevirtual org.jruby.util.io.OpenFile.readEncoding:(Lorg/jruby/Ruby;)Lorg/jcodings/Encoding;
      StackMap locals:
      StackMap stack: org.jcodings.Encoding
         2: areturn
        end local 1 // org.jruby.Ruby runtime
        end local 0 // org.jruby.util.io.OpenFile this
      LocalVariableTable:
        Start  End  Slot     Name  Signature
            0    3     0     this  Lorg/jruby/util/io/OpenFile;
            0    3     1  runtime  Lorg/jruby/Ruby;
    MethodParameters:
         Name  Flags
      runtime  

  public boolean swallow(org.jruby.runtime.ThreadContext, int);
    descriptor: (Lorg/jruby/runtime/ThreadContext;I)Z
    flags: (0x0001) ACC_PUBLIC
    Code:
      stack=5, locals=13, args_size=3
        start local 0 // org.jruby.util.io.OpenFile this
        start local 1 // org.jruby.runtime.ThreadContext context
        start local 2 // int term
         0: .line 1483
            aload 1 /* context */
            getfield org.jruby.runtime.ThreadContext.runtime:Lorg/jruby/Ruby;
            astore 3 /* runtime */
        start local 3 // org.jruby.Ruby runtime
         1: .line 1485
            aload 0 /* this */
            invokevirtual org.jruby.util.io.OpenFile.lock:()Z
            istore 4 /* locked */
        start local 4 // boolean locked
         2: .line 1487
            aload 0 /* this */
            invokevirtual org.jruby.util.io.OpenFile.needsReadConversion:()Z
            ifeq 33
         3: .line 1488
            aload 0 /* this */
            aload 3 /* runtime */
            invokevirtual org.jruby.util.io.OpenFile.readEncoding:(Lorg/jruby/Ruby;)Lorg/jcodings/Encoding;
            astore 5 /* enc */
        start local 5 // org.jcodings.Encoding enc
         4: .line 1489
            aload 5 /* enc */
            invokevirtual org.jcodings.Encoding.minLength:()I
            iconst_1
            if_icmpeq 5
            iconst_1
            goto 6
      StackMap locals: org.jruby.Ruby int org.jcodings.Encoding
      StackMap stack:
         5: iconst_0
      StackMap locals:
      StackMap stack: int
         6: istore 6 /* needconv */
        start local 6 // boolean needconv
         7: .line 1490
            aload 0 /* this */
            invokevirtual org.jruby.util.io.OpenFile.SET_BINARY_MODE:()V
         8: .line 1491
            aload 0 /* this */
            aload 1 /* context */
            invokevirtual org.jruby.util.io.OpenFile.makeReadConversion:(Lorg/jruby/runtime/ThreadContext;)V
         9: .line 1494
      StackMap locals: int
      StackMap stack:
            iconst_1
            newarray 10
            astore 8 /* i */
        start local 8 // int[] i
        10: .line 1495
            goto 28
        start local 7 // int cnt
        11: .line 1496
      StackMap locals: int int[]
      StackMap stack:
            aload 0 /* this */
            invokevirtual org.jruby.util.io.OpenFile.READ_CHAR_PENDING_PTR:()[B
            astore 9 /* pBytes */
        start local 9 // byte[] pBytes
        12: .line 1497
            aload 0 /* this */
            invokevirtual org.jruby.util.io.OpenFile.READ_CHAR_PENDING_OFF:()I
            istore 10 /* p */
        start local 10 // int p
        13: .line 1498
            aload 8 /* i */
            iconst_0
            iconst_0
            iastore
        14: .line 1499
            iload 6 /* needconv */
            ifne 21
        15: .line 1500
            aload 9 /* pBytes */
            iload 10 /* p */
            baload
            iload 2 /* term */
            if_icmpeq 18
        16: .line 1533
            iload 4 /* locked */
            ifeq 17
            aload 0 /* this */
            invokevirtual org.jruby.util.io.OpenFile.unlock:()V
        17: .line 1500
      StackMap locals: byte[] int
      StackMap stack:
            iconst_1
            ireturn
        18: .line 1501
      StackMap locals:
      StackMap stack:
            aload 8 /* i */
            iconst_0
            iload 7 /* cnt */
            iastore
        19: .line 1502
      StackMap locals:
      StackMap stack:
            aload 8 /* i */
            iconst_0
            dup2
            iaload
            iconst_1
            isub
            dup_x2
            iastore
            ifeq 27
            aload 9 /* pBytes */
            iinc 10 /* p */ 1
            iload 10 /* p */
            baload
            iload 2 /* term */
            if_icmpeq 19
        20: .line 1503
            goto 27
        21: .line 1504
      StackMap locals:
      StackMap stack:
            iload 10 /* p */
            iload 7 /* cnt */
            iadd
            istore 11 /* e */
        start local 11 // int e
        22: .line 1505
            aload 9 /* pBytes */
            iload 10 /* p */
            iload 11 /* e */
            aload 8 /* i */
            aload 5 /* enc */
            invokestatic org.jruby.util.io.EncodingUtils.encAscget:([BII[ILorg/jcodings/Encoding;)I
            iload 2 /* term */
            if_icmpeq 25
        23: .line 1533
            iload 4 /* locked */
            ifeq 24
            aload 0 /* this */
            invokevirtual org.jruby.util.io.OpenFile.unlock:()V
        24: .line 1505
      StackMap locals: int
      StackMap stack:
            iconst_1
            ireturn
        25: .line 1506
      StackMap locals:
      StackMap stack:
            iload 10 /* p */
            aload 8 /* i */
            iconst_0
            iaload
            iadd
            dup
            istore 10 /* p */
            iload 11 /* e */
            if_icmpge 26
            aload 9 /* pBytes */
            iload 10 /* p */
            iload 11 /* e */
            aload 8 /* i */
            aload 5 /* enc */
            invokestatic org.jruby.util.io.EncodingUtils.encAscget:([BII[ILorg/jcodings/Encoding;)I
            iload 2 /* term */
            if_icmpeq 25
        26: .line 1507
      StackMap locals:
      StackMap stack:
            aload 8 /* i */
            iconst_0
            iload 11 /* e */
            iload 10 /* p */
            isub
            iastore
        end local 11 // int e
        27: .line 1509
      StackMap locals:
      StackMap stack:
            aload 0 /* this */
            aload 1 /* context */
            iload 7 /* cnt */
            aload 8 /* i */
            iconst_0
            iaload
            isub
            aconst_null
            invokevirtual org.jruby.util.io.OpenFile.shiftCbuf:(Lorg/jruby/runtime/ThreadContext;ILorg/jruby/runtime/builtin/IRubyObject;)Lorg/jruby/runtime/builtin/IRubyObject;
            pop
        end local 10 // int p
        end local 9 // byte[] pBytes
        end local 7 // int cnt
        28: .line 1495
      StackMap locals: org.jruby.util.io.OpenFile org.jruby.runtime.ThreadContext int org.jruby.Ruby int org.jcodings.Encoding int top int[]
      StackMap stack:
            aload 0 /* this */
            invokevirtual org.jruby.util.io.OpenFile.READ_CHAR_PENDING_COUNT:()I
            dup
            istore 7 /* cnt */
        start local 7 // int cnt
        29: ifgt 11
        end local 8 // int[] i
        end local 7 // int cnt
        30: .line 1511
            aload 0 /* this */
            aload 1 /* context */
            invokevirtual org.jruby.util.io.OpenFile.moreChar:(Lorg/jruby/runtime/ThreadContext;)I
            iconst_1
            if_icmpne 9
        31: .line 1533
            iload 4 /* locked */
            ifeq 32
            aload 0 /* this */
            invokevirtual org.jruby.util.io.OpenFile.unlock:()V
        32: .line 1512
      StackMap locals: org.jruby.util.io.OpenFile org.jruby.runtime.ThreadContext int org.jruby.Ruby int org.jcodings.Encoding int
      StackMap stack:
            iconst_0
            ireturn
        end local 6 // boolean needconv
        end local 5 // org.jcodings.Encoding enc
        33: .line 1515
      StackMap locals:
      StackMap stack:
            aload 0 /* this */
            invokevirtual org.jruby.util.io.OpenFile.NEED_NEWLINE_DECORATOR_ON_READ_CHECK:()V
        34: .line 1518
            goto 46
        start local 5 // int cnt
        35: .line 1519
      StackMap locals: int
      StackMap stack:
            sipush 1024
            newarray 8
            astore 6 /* buf */
        start local 6 // byte[] buf
        36: .line 1520
            aload 0 /* this */
            invokevirtual org.jruby.util.io.OpenFile.READ_DATA_PENDING_PTR:()[B
            astore 7 /* pBytes */
        start local 7 // byte[] pBytes
        37: .line 1521
            aload 0 /* this */
            invokevirtual org.jruby.util.io.OpenFile.READ_DATA_PENDING_OFF:()I
            istore 8 /* p */
        start local 8 // int p
        38: .line 1523
            iload 5 /* cnt */
            aload 6 /* buf */
            arraylength
            if_icmple 39
            aload 6 /* buf */
            arraylength
            istore 5 /* cnt */
        39: .line 1524
      StackMap locals: byte[] byte[] int
      StackMap stack:
            aload 7 /* pBytes */
            iload 8 /* p */
            baload
            sipush 255
            iand
            iload 2 /* term */
            if_icmpeq 42
        40: .line 1533
            iload 4 /* locked */
            ifeq 41
            aload 0 /* this */
            invokevirtual org.jruby.util.io.OpenFile.unlock:()V
        41: .line 1524
      StackMap locals:
      StackMap stack:
            iconst_1
            ireturn
        42: .line 1525
      StackMap locals:
      StackMap stack:
            iload 5 /* cnt */
            istore 9 /* i */
        start local 9 // int i
        43: .line 1526
      StackMap locals: int
      StackMap stack:
            iinc 9 /* i */ -1
            iload 9 /* i */
            ifeq 44
            aload 7 /* pBytes */
            iinc 8 /* p */ 1
            iload 8 /* p */
            baload
            sipush 255
            iand
            iload 2 /* term */
            if_icmpeq 43
        44: .line 1527
      StackMap locals:
      StackMap stack:
            aload 0 /* this */
            aload 6 /* buf */
            iconst_0
            iload 5 /* cnt */
            iload 9 /* i */
            isub
            invokevirtual org.jruby.util.io.OpenFile.readBufferedData:([BII)I
            ifne 46
        45: .line 1528
            aload 1 /* context */
            getfield org.jruby.runtime.ThreadContext.runtime:Lorg/jruby/Ruby;
            ldc "failure copying buffered IO bytes"
            invokevirtual org.jruby.Ruby.newRuntimeError:(Ljava/lang/String;)Lorg/jruby/exceptions/RaiseException;
            athrow
        end local 9 // int i
        end local 8 // int p
        end local 7 // byte[] pBytes
        end local 6 // byte[] buf
        end local 5 // int cnt
        46: .line 1518
      StackMap locals: org.jruby.util.io.OpenFile org.jruby.runtime.ThreadContext int org.jruby.Ruby int
      StackMap stack:
            aload 0 /* this */
            invokevirtual org.jruby.util.io.OpenFile.READ_DATA_PENDING_COUNT:()I
            dup
            istore 5 /* cnt */
        start local 5 // int cnt
        47: ifgt 35
        48: .line 1530
            aload 0 /* this */
            aload 1 /* context */
            invokevirtual org.jruby.util.io.OpenFile.READ_CHECK:(Lorg/jruby/runtime/ThreadContext;)V
        end local 5 // int cnt
        49: .line 1531
            aload 0 /* this */
            aload 1 /* context */
            invokevirtual org.jruby.util.io.OpenFile.fillbuf:(Lorg/jruby/runtime/ThreadContext;)I
            ifeq 46
        50: .line 1532
            goto 54
      StackMap locals:
      StackMap stack: java.lang.Throwable
        51: astore 12
        52: .line 1533
            iload 4 /* locked */
            ifeq 53
            aload 0 /* this */
            invokevirtual org.jruby.util.io.OpenFile.unlock:()V
        53: .line 1534
      StackMap locals: org.jruby.util.io.OpenFile org.jruby.runtime.ThreadContext int org.jruby.Ruby int top top top top top top top java.lang.Throwable
      StackMap stack:
            aload 12
            athrow
        54: .line 1533
      StackMap locals: org.jruby.util.io.OpenFile org.jruby.runtime.ThreadContext int org.jruby.Ruby int
      StackMap stack:
            iload 4 /* locked */
            ifeq 55
            aload 0 /* this */
            invokevirtual org.jruby.util.io.OpenFile.unlock:()V
        55: .line 1536
      StackMap locals:
      StackMap stack:
            iconst_0
            ireturn
        end local 4 // boolean locked
        end local 3 // org.jruby.Ruby runtime
        end local 2 // int term
        end local 1 // org.jruby.runtime.ThreadContext context
        end local 0 // org.jruby.util.io.OpenFile this
      LocalVariableTable:
        Start  End  Slot      Name  Signature
            0   56     0      this  Lorg/jruby/util/io/OpenFile;
            0   56     1   context  Lorg/jruby/runtime/ThreadContext;
            0   56     2      term  I
            1   56     3   runtime  Lorg/jruby/Ruby;
            2   56     4    locked  Z
            4   33     5       enc  Lorg/jcodings/Encoding;
            7   33     6  needconv  Z
           11   28     7       cnt  I
           29   30     7       cnt  I
           10   30     8         i  [I
           12   28     9    pBytes  [B
           13   28    10         p  I
           22   27    11         e  I
           35   46     5       cnt  I
           47   49     5       cnt  I
           36   46     6       buf  [B
           37   46     7    pBytes  [B
           38   46     8         p  I
           43   46     9         i  I
      Exception table:
        from    to  target  type
           2    16      51  any
          18    23      51  any
          25    31      51  any
          33    40      51  any
          42    51      51  any
    MethodParameters:
         Name  Flags
      context  
      term     

  public org.jruby.runtime.builtin.IRubyObject shiftCbuf(org.jruby.runtime.ThreadContext, int, org.jruby.runtime.builtin.IRubyObject);
    descriptor: (Lorg/jruby/runtime/ThreadContext;ILorg/jruby/runtime/builtin/IRubyObject;)Lorg/jruby/runtime/builtin/IRubyObject;
    flags: (0x0001) ACC_PUBLIC
    Code:
      stack=5, locals=8, args_size=4
        start local 0 // org.jruby.util.io.OpenFile this
        start local 1 // org.jruby.runtime.ThreadContext context
        start local 2 // int len
        start local 3 // org.jruby.runtime.builtin.IRubyObject strp
         0: .line 1541
            aload 0 /* this */
            invokevirtual org.jruby.util.io.OpenFile.lock:()Z
            istore 4 /* locked */
        start local 4 // boolean locked
         1: .line 1543
            aconst_null
            astore 5 /* str */
        start local 5 // org.jruby.runtime.builtin.IRubyObject str
         2: .line 1544
            aload 3 /* strp */
            ifnull 10
         3: .line 1545
            aload 3 /* strp */
            astore 5 /* str */
         4: .line 1546
            aload 5 /* str */
            invokeinterface org.jruby.runtime.builtin.IRubyObject.isNil:()Z
            ifeq 7
         5: .line 1547
            aload 1 /* context */
            getfield org.jruby.runtime.ThreadContext.runtime:Lorg/jruby/Ruby;
            aload 0 /* this */
            getfield org.jruby.util.io.OpenFile.cbuf:Lorg/jruby/util/io/OpenFile$Buffer;
            getfield org.jruby.util.io.OpenFile$Buffer.ptr:[B
            aload 0 /* this */
            getfield org.jruby.util.io.OpenFile.cbuf:Lorg/jruby/util/io/OpenFile$Buffer;
            getfield org.jruby.util.io.OpenFile$Buffer.off:I
            iload 2 /* len */
            invokestatic org.jruby.RubyString.newString:(Lorg/jruby/Ruby;[BII)Lorg/jruby/RubyString;
            astore 5 /* str */
         6: .line 1548
            goto 8
         7: .line 1549
      StackMap locals: int org.jruby.runtime.builtin.IRubyObject
      StackMap stack:
            aload 5 /* str */
            checkcast org.jruby.RubyString
            aload 0 /* this */
            getfield org.jruby.util.io.OpenFile.cbuf:Lorg/jruby/util/io/OpenFile$Buffer;
            getfield org.jruby.util.io.OpenFile$Buffer.ptr:[B
            aload 0 /* this */
            getfield org.jruby.util.io.OpenFile.cbuf:Lorg/jruby/util/io/OpenFile$Buffer;
            getfield org.jruby.util.io.OpenFile$Buffer.off:I
            iload 2 /* len */
            invokevirtual org.jruby.RubyString.cat:([BII)Lorg/jruby/RubyString;
            pop
         8: .line 1551
      StackMap locals:
      StackMap stack:
            aload 5 /* str */
            iconst_1
            invokeinterface org.jruby.runtime.builtin.IRubyObject.setTaint:(Z)V
         9: .line 1552
            aload 5 /* str */
            aload 0 /* this */
            getfield org.jruby.util.io.OpenFile.encs:Lorg/jruby/util/io/IOEncodable$ConvConfig;
            getfield org.jruby.util.io.IOEncodable$ConvConfig.enc:Lorg/jcodings/Encoding;
            invokestatic org.jruby.util.io.EncodingUtils.encAssociateIndex:(Lorg/jruby/runtime/builtin/IRubyObject;Lorg/jcodings/Encoding;)Lorg/jruby/runtime/builtin/IRubyObject;
            pop
        10: .line 1554
      StackMap locals:
      StackMap stack:
            aload 0 /* this */
            getfield org.jruby.util.io.OpenFile.cbuf:Lorg/jruby/util/io/OpenFile$Buffer;
            dup
            getfield org.jruby.util.io.OpenFile$Buffer.off:I
            iload 2 /* len */
            iadd
            putfield org.jruby.util.io.OpenFile$Buffer.off:I
        11: .line 1555
            aload 0 /* this */
            getfield org.jruby.util.io.OpenFile.cbuf:Lorg/jruby/util/io/OpenFile$Buffer;
            dup
            getfield org.jruby.util.io.OpenFile$Buffer.len:I
            iload 2 /* len */
            isub
            putfield org.jruby.util.io.OpenFile$Buffer.len:I
        12: .line 1557
            aload 0 /* this */
            getfield org.jruby.util.io.OpenFile.cbuf:Lorg/jruby/util/io/OpenFile$Buffer;
            getfield org.jruby.util.io.OpenFile$Buffer.len:I
            ifne 14
        13: .line 1558
            aload 0 /* this */
            getfield org.jruby.util.io.OpenFile.cbuf:Lorg/jruby/util/io/OpenFile$Buffer;
            iconst_0
            putfield org.jruby.util.io.OpenFile$Buffer.off:I
            goto 17
        14: .line 1559
      StackMap locals:
      StackMap stack:
            aload 0 /* this */
            getfield org.jruby.util.io.OpenFile.cbuf:Lorg/jruby/util/io/OpenFile$Buffer;
            getfield org.jruby.util.io.OpenFile$Buffer.capa:I
            iconst_2
            idiv
            aload 0 /* this */
            getfield org.jruby.util.io.OpenFile.cbuf:Lorg/jruby/util/io/OpenFile$Buffer;
            getfield org.jruby.util.io.OpenFile$Buffer.off:I
            if_icmpge 17
        15: .line 1560
            aload 0 /* this */
            getfield org.jruby.util.io.OpenFile.cbuf:Lorg/jruby/util/io/OpenFile$Buffer;
            getfield org.jruby.util.io.OpenFile$Buffer.ptr:[B
            aload 0 /* this */
            getfield org.jruby.util.io.OpenFile.cbuf:Lorg/jruby/util/io/OpenFile$Buffer;
            getfield org.jruby.util.io.OpenFile$Buffer.off:I
            aload 0 /* this */
            getfield org.jruby.util.io.OpenFile.cbuf:Lorg/jruby/util/io/OpenFile$Buffer;
            getfield org.jruby.util.io.OpenFile$Buffer.ptr:[B
            iconst_0
            aload 0 /* this */
            getfield org.jruby.util.io.OpenFile.cbuf:Lorg/jruby/util/io/OpenFile$Buffer;
            getfield org.jruby.util.io.OpenFile$Buffer.len:I
            invokestatic java.lang.System.arraycopy:(Ljava/lang/Object;ILjava/lang/Object;II)V
        16: .line 1561
            aload 0 /* this */
            getfield org.jruby.util.io.OpenFile.cbuf:Lorg/jruby/util/io/OpenFile$Buffer;
            iconst_0
            putfield org.jruby.util.io.OpenFile$Buffer.off:I
        17: .line 1563
      StackMap locals:
      StackMap stack:
            aload 5 /* str */
            astore 7
        18: .line 1565
            iload 4 /* locked */
            ifeq 19
            aload 0 /* this */
            invokevirtual org.jruby.util.io.OpenFile.unlock:()V
        19: .line 1563
      StackMap locals: org.jruby.util.io.OpenFile org.jruby.runtime.ThreadContext int org.jruby.runtime.builtin.IRubyObject int org.jruby.runtime.builtin.IRubyObject top org.jruby.runtime.builtin.IRubyObject
      StackMap stack:
            aload 7
            areturn
        end local 5 // org.jruby.runtime.builtin.IRubyObject str
        20: .line 1564
      StackMap locals: org.jruby.util.io.OpenFile org.jruby.runtime.ThreadContext int org.jruby.runtime.builtin.IRubyObject int
      StackMap stack: java.lang.Throwable
            astore 6
        21: .line 1565
            iload 4 /* locked */
            ifeq 22
            aload 0 /* this */
            invokevirtual org.jruby.util.io.OpenFile.unlock:()V
        22: .line 1566
      StackMap locals: org.jruby.util.io.OpenFile org.jruby.runtime.ThreadContext int org.jruby.runtime.builtin.IRubyObject int top java.lang.Throwable
      StackMap stack:
            aload 6
            athrow
        end local 4 // boolean locked
        end local 3 // org.jruby.runtime.builtin.IRubyObject strp
        end local 2 // int len
        end local 1 // org.jruby.runtime.ThreadContext context
        end local 0 // org.jruby.util.io.OpenFile this
      LocalVariableTable:
        Start  End  Slot     Name  Signature
            0   23     0     this  Lorg/jruby/util/io/OpenFile;
            0   23     1  context  Lorg/jruby/runtime/ThreadContext;
            0   23     2      len  I
            0   23     3     strp  Lorg/jruby/runtime/builtin/IRubyObject;
            1   23     4   locked  Z
            2   20     5      str  Lorg/jruby/runtime/builtin/IRubyObject;
      Exception table:
        from    to  target  type
           1    18      20  any
    MethodParameters:
         Name  Flags
      context  
      len      final
      strp     final

  public org.jruby.runtime.builtin.IRubyObject getlineFast(org.jruby.runtime.ThreadContext, org.jcodings.Encoding, org.jruby.RubyIO, boolean);
    descriptor: (Lorg/jruby/runtime/ThreadContext;Lorg/jcodings/Encoding;Lorg/jruby/RubyIO;Z)Lorg/jruby/runtime/builtin/IRubyObject;
    flags: (0x0001) ACC_PUBLIC
    Code:
      stack=7, locals=20, args_size=5
        start local 0 // org.jruby.util.io.OpenFile this
        start local 1 // org.jruby.runtime.ThreadContext context
        start local 2 // org.jcodings.Encoding enc
        start local 3 // org.jruby.RubyIO io
        start local 4 // boolean chomp
         0: .line 1571
            aload 1 /* context */
            getfield org.jruby.runtime.ThreadContext.runtime:Lorg/jruby/Ruby;
            astore 5 /* runtime */
        start local 5 // org.jruby.Ruby runtime
         1: .line 1572
            aconst_null
            astore 6 /* str */
        start local 6 // org.jruby.RubyString str
         2: .line 1574
            iconst_0
            istore 8 /* len */
        start local 8 // int len
         3: .line 1575
            iconst_0
            istore 9 /* pos */
        start local 9 // int pos
         4: .line 1576
            iconst_0
            istore 10 /* cr */
        start local 10 // int cr
         5: .line 1578
            aload 0 /* this */
            invokevirtual org.jruby.util.io.OpenFile.lock:()Z
            istore 11 /* locked */
        start local 11 // boolean locked
         6: .line 1581
      StackMap locals: org.jruby.util.io.OpenFile org.jruby.runtime.ThreadContext org.jcodings.Encoding org.jruby.RubyIO int org.jruby.Ruby org.jruby.RubyString top int int int int
      StackMap stack:
            aload 0 /* this */
            invokevirtual org.jruby.util.io.OpenFile.READ_DATA_PENDING_COUNT:()I
            istore 12 /* pending */
        start local 12 // int pending
         7: .line 1583
            iload 12 /* pending */
            ifle 32
         8: .line 1584
            aload 0 /* this */
            invokevirtual org.jruby.util.io.OpenFile.READ_DATA_PENDING_PTR:()[B
            astore 13 /* pBytes */
        start local 13 // byte[] pBytes
         9: .line 1585
            aload 0 /* this */
            invokevirtual org.jruby.util.io.OpenFile.READ_DATA_PENDING_OFF:()I
            istore 14 /* p */
        start local 14 // int p
        10: .line 1587
            iconst_0
            istore 16 /* chomplen */
        start local 16 // int chomplen
        11: .line 1589
            aload 13 /* pBytes */
            iload 14 /* p */
            bipush 10
            iload 12 /* pending */
            invokestatic org.jruby.util.io.OpenFile.memchr:([BIII)I
            istore 15 /* e */
        start local 15 // int e
        12: .line 1590
            iload 15 /* e */
            iconst_m1
            if_icmpeq 17
        13: .line 1591
            iload 15 /* e */
            iload 14 /* p */
            isub
            iconst_1
            iadd
            istore 12 /* pending */
        14: .line 1592
            iload 4 /* chomp */
            ifeq 17
            iload 12 /* pending */
            iconst_1
            if_icmple 15
            aload 13 /* pBytes */
            iload 15 /* e */
            iconst_1
            isub
            baload
            bipush 13
            if_icmpne 15
            iconst_1
            goto 16
      StackMap locals: org.jruby.util.io.OpenFile org.jruby.runtime.ThreadContext org.jcodings.Encoding org.jruby.RubyIO int org.jruby.Ruby org.jruby.RubyString top int int int int int byte[] int int int
      StackMap stack:
        15: iconst_0
      StackMap locals:
      StackMap stack: int
        16: iconst_1
            iadd
            istore 16 /* chomplen */
        17: .line 1594
      StackMap locals:
      StackMap stack:
            aload 6 /* str */
            ifnonnull 23
        18: .line 1595
            aload 5 /* runtime */
            aload 13 /* pBytes */
            iload 14 /* p */
            iload 12 /* pending */
            iload 16 /* chomplen */
            isub
            invokestatic org.jruby.RubyString.newString:(Lorg/jruby/Ruby;[BII)Lorg/jruby/RubyString;
            astore 6 /* str */
        19: .line 1596
            aload 6 /* str */
            invokevirtual org.jruby.RubyString.getByteList:()Lorg/jruby/util/ByteList;
            astore 7 /* strByteList */
        start local 7 // org.jruby.util.ByteList strByteList
        20: .line 1597
            aload 0 /* this */
            getfield org.jruby.util.io.OpenFile.rbuf:Lorg/jruby/util/io/OpenFile$Buffer;
            dup
            getfield org.jruby.util.io.OpenFile$Buffer.off:I
            iload 12 /* pending */
            iadd
            putfield org.jruby.util.io.OpenFile$Buffer.off:I
        21: .line 1598
            aload 0 /* this */
            getfield org.jruby.util.io.OpenFile.rbuf:Lorg/jruby/util/io/OpenFile$Buffer;
            dup
            getfield org.jruby.util.io.OpenFile$Buffer.len:I
            iload 12 /* pending */
            isub
            putfield org.jruby.util.io.OpenFile$Buffer.len:I
        22: .line 1599
            goto 28
        end local 7 // org.jruby.util.ByteList strByteList
        23: .line 1600
      StackMap locals:
      StackMap stack:
            aload 6 /* str */
            iload 8 /* len */
            iload 12 /* pending */
            iadd
            iload 16 /* chomplen */
            isub
            invokevirtual org.jruby.RubyString.resize:(I)V
        24: .line 1601
            aload 6 /* str */
            invokevirtual org.jruby.RubyString.getByteList:()Lorg/jruby/util/ByteList;
            astore 7 /* strByteList */
        start local 7 // org.jruby.util.ByteList strByteList
        25: .line 1602
            aload 0 /* this */
            aload 7 /* strByteList */
            invokevirtual org.jruby.util.ByteList.unsafeBytes:()[B
            aload 7 /* strByteList */
            invokevirtual org.jruby.util.ByteList.begin:()I
            iload 8 /* len */
            iadd
            iload 12 /* pending */
            iload 16 /* chomplen */
            isub
            invokevirtual org.jruby.util.io.OpenFile.readBufferedData:([BII)I
            pop
        26: .line 1603
            aload 0 /* this */
            getfield org.jruby.util.io.OpenFile.rbuf:Lorg/jruby/util/io/OpenFile$Buffer;
            dup
            getfield org.jruby.util.io.OpenFile$Buffer.off:I
            iload 16 /* chomplen */
            iadd
            putfield org.jruby.util.io.OpenFile$Buffer.off:I
        27: .line 1604
            aload 0 /* this */
            getfield org.jruby.util.io.OpenFile.rbuf:Lorg/jruby/util/io/OpenFile$Buffer;
            dup
            getfield org.jruby.util.io.OpenFile$Buffer.len:I
            iload 16 /* chomplen */
            isub
            putfield org.jruby.util.io.OpenFile$Buffer.len:I
        28: .line 1606
      StackMap locals: org.jruby.util.io.OpenFile org.jruby.runtime.ThreadContext org.jcodings.Encoding org.jruby.RubyIO int org.jruby.Ruby org.jruby.RubyString org.jruby.util.ByteList int int int int int byte[] int int int
      StackMap stack:
            iload 8 /* len */
            iload 12 /* pending */
            iload 16 /* chomplen */
            isub
            iadd
            istore 8 /* len */
        29: .line 1608
            aload 7 /* strByteList */
            invokevirtual org.jruby.util.ByteList.begin:()I
            istore 17 /* beg */
        start local 17 // int beg
        30: .line 1609
            iload 9 /* pos */
            i2l
            aload 2 /* enc */
            aload 7 /* strByteList */
            invokevirtual org.jruby.util.ByteList.unsafeBytes:()[B
            iload 17 /* beg */
            iload 9 /* pos */
            iadd
            iload 17 /* beg */
            iload 8 /* len */
            iadd
            iload 10 /* cr */
            invokestatic org.jruby.util.StringSupport.codeRangeScanRestartable:(Lorg/jcodings/Encoding;[BIII)J
            ladd
            l2i
            istore 9 /* pos */
        31: .line 1611
            iload 15 /* e */
            iconst_m1
            if_icmpeq 32
            goto 35
        end local 17 // int beg
        end local 16 // int chomplen
        end local 15 // int e
        end local 14 // int p
        end local 13 // byte[] pBytes
        end local 7 // org.jruby.util.ByteList strByteList
        32: .line 1613
      StackMap locals: org.jruby.util.io.OpenFile org.jruby.runtime.ThreadContext org.jcodings.Encoding org.jruby.RubyIO int org.jruby.Ruby org.jruby.RubyString top int int int int int
      StackMap stack:
            aload 0 /* this */
            aload 1 /* context */
            invokevirtual org.jruby.util.io.OpenFile.READ_CHECK:(Lorg/jruby/runtime/ThreadContext;)V
        end local 12 // int pending
        33: .line 1614
            aload 0 /* this */
            aload 1 /* context */
            invokevirtual org.jruby.util.io.OpenFile.fillbuf:(Lorg/jruby/runtime/ThreadContext;)I
        34: .line 1580
            ifge 6
        35: .line 1615
      StackMap locals:
      StackMap stack:
            aload 6 /* str */
            ifnonnull 38
            aload 1 /* context */
            getfield org.jruby.runtime.ThreadContext.nil:Lorg/jruby/runtime/builtin/IRubyObject;
            astore 19
        36: .line 1620
            iload 11 /* locked */
            ifeq 37
            aload 0 /* this */
            invokevirtual org.jruby.util.io.OpenFile.unlock:()V
      StackMap locals: org.jruby.util.io.OpenFile org.jruby.runtime.ThreadContext org.jcodings.Encoding org.jruby.RubyIO int org.jruby.Ruby org.jruby.RubyString top int int int int top top top top top top top org.jruby.runtime.builtin.IRubyObject
      StackMap stack:
        37: aload 19
            areturn
        38: .line 1616
      StackMap locals: org.jruby.util.io.OpenFile org.jruby.runtime.ThreadContext org.jcodings.Encoding org.jruby.RubyIO int org.jruby.Ruby org.jruby.RubyString top int int int int
      StackMap stack:
            aload 5 /* runtime */
            aload 6 /* str */
            aload 0 /* this */
            invokestatic org.jruby.util.io.EncodingUtils.ioEncStr:(Lorg/jruby/Ruby;Lorg/jruby/runtime/builtin/IRubyObject;Lorg/jruby/util/io/OpenFile;)Lorg/jruby/runtime/builtin/IRubyObject;
            checkcast org.jruby.RubyString
            astore 6 /* str */
        39: .line 1617
            aload 6 /* str */
            iload 10 /* cr */
            invokevirtual org.jruby.RubyString.setCodeRange:(I)V
        40: .line 1618
            aload 0 /* this */
            aload 5 /* runtime */
            aload 3 /* io */
            invokevirtual org.jruby.util.io.OpenFile.incrementLineno:(Lorg/jruby/Ruby;Lorg/jruby/RubyIO;)V
        41: .line 1619
            goto 45
      StackMap locals:
      StackMap stack: java.lang.Throwable
        42: astore 18
        43: .line 1620
            iload 11 /* locked */
            ifeq 44
            aload 0 /* this */
            invokevirtual org.jruby.util.io.OpenFile.unlock:()V
        44: .line 1621
      StackMap locals: org.jruby.util.io.OpenFile org.jruby.runtime.ThreadContext org.jcodings.Encoding org.jruby.RubyIO int org.jruby.Ruby org.jruby.RubyString top int int int int top top top top top top java.lang.Throwable
      StackMap stack:
            aload 18
            athrow
        45: .line 1620
      StackMap locals: org.jruby.util.io.OpenFile org.jruby.runtime.ThreadContext org.jcodings.Encoding org.jruby.RubyIO int org.jruby.Ruby org.jruby.RubyString top int int int int
      StackMap stack:
            iload 11 /* locked */
            ifeq 46
            aload 0 /* this */
            invokevirtual org.jruby.util.io.OpenFile.unlock:()V
        46: .line 1623
      StackMap locals:
      StackMap stack:
            aload 6 /* str */
            areturn
        end local 11 // boolean locked
        end local 10 // int cr
        end local 9 // int pos
        end local 8 // int len
        end local 6 // org.jruby.RubyString str
        end local 5 // org.jruby.Ruby runtime
        end local 4 // boolean chomp
        end local 3 // org.jruby.RubyIO io
        end local 2 // org.jcodings.Encoding enc
        end local 1 // org.jruby.runtime.ThreadContext context
        end local 0 // org.jruby.util.io.OpenFile this
      LocalVariableTable:
        Start  End  Slot         Name  Signature
            0   47     0         this  Lorg/jruby/util/io/OpenFile;
            0   47     1      context  Lorg/jruby/runtime/ThreadContext;
            0   47     2          enc  Lorg/jcodings/Encoding;
            0   47     3           io  Lorg/jruby/RubyIO;
            0   47     4        chomp  Z
            1   47     5      runtime  Lorg/jruby/Ruby;
            2   47     6          str  Lorg/jruby/RubyString;
           20   23     7  strByteList  Lorg/jruby/util/ByteList;
           25   32     7  strByteList  Lorg/jruby/util/ByteList;
            3   47     8          len  I
            4   47     9          pos  I
            5   47    10           cr  I
            6   47    11       locked  Z
            7   33    12      pending  I
            9   32    13       pBytes  [B
           10   32    14            p  I
           12   32    15            e  I
           11   32    16     chomplen  I
           30   32    17          beg  I
      Exception table:
        from    to  target  type
           6    36      42  any
          38    42      42  any
    MethodParameters:
         Name  Flags
      context  
      enc      
      io       
      chomp    

  public void incrementLineno(org.jruby.Ruby, org.jruby.RubyIO);
    descriptor: (Lorg/jruby/Ruby;Lorg/jruby/RubyIO;)V
    flags: (0x0001) ACC_PUBLIC
    Code:
      stack=3, locals=5, args_size=3
        start local 0 // org.jruby.util.io.OpenFile this
        start local 1 // org.jruby.Ruby runtime
        start local 2 // org.jruby.RubyIO io
         0: .line 1627
            aload 0 /* this */
            invokevirtual org.jruby.util.io.OpenFile.lock:()Z
            istore 3 /* locked */
        start local 3 // boolean locked
         1: .line 1629
            aload 0 /* this */
            dup
            getfield org.jruby.util.io.OpenFile.lineno:I
            iconst_1
            iadd
            putfield org.jruby.util.io.OpenFile.lineno:I
         2: .line 1630
            aload 1 /* runtime */
            invokestatic org.jruby.RubyArgsFile$ArgsFileData.getArgsFileData:(Lorg/jruby/Ruby;)Lorg/jruby/RubyArgsFile$ArgsFileData;
            aload 2 /* io */
            invokevirtual org.jruby.RubyArgsFile$ArgsFileData.isCurrentFile:(Lorg/jruby/RubyIO;)Z
            ifeq 5
         3: .line 1631
            aload 1 /* runtime */
            aload 1 /* runtime */
            invokevirtual org.jruby.Ruby.getCurrentLine:()I
            iconst_1
            iadd
            invokevirtual org.jruby.Ruby.setCurrentLine:(I)V
         4: .line 1632
            goto 10
         5: .line 1633
      StackMap locals: int
      StackMap stack:
            aload 1 /* runtime */
            aload 0 /* this */
            getfield org.jruby.util.io.OpenFile.lineno:I
            invokevirtual org.jruby.Ruby.setCurrentLine:(I)V
         6: .line 1635
            goto 10
      StackMap locals:
      StackMap stack: java.lang.Throwable
         7: astore 4
         8: .line 1636
            iload 3 /* locked */
            ifeq 9
            aload 0 /* this */
            invokevirtual org.jruby.util.io.OpenFile.unlock:()V
         9: .line 1637
      StackMap locals: java.lang.Throwable
      StackMap stack:
            aload 4
            athrow
        10: .line 1636
      StackMap locals:
      StackMap stack:
            iload 3 /* locked */
            ifeq 11
            aload 0 /* this */
            invokevirtual org.jruby.util.io.OpenFile.unlock:()V
        11: .line 1638
      StackMap locals:
      StackMap stack:
            return
        end local 3 // boolean locked
        end local 2 // org.jruby.RubyIO io
        end local 1 // org.jruby.Ruby runtime
        end local 0 // org.jruby.util.io.OpenFile this
      LocalVariableTable:
        Start  End  Slot     Name  Signature
            0   12     0     this  Lorg/jruby/util/io/OpenFile;
            0   12     1  runtime  Lorg/jruby/Ruby;
            0   12     2       io  Lorg/jruby/RubyIO;
            1   12     3   locked  Z
      Exception table:
        from    to  target  type
           1     7       7  any
    MethodParameters:
         Name  Flags
      runtime  
      io       

  public void incrementLineno(org.jruby.Ruby);
    descriptor: (Lorg/jruby/Ruby;)V
    flags: (0x0001) ACC_PUBLIC
    Code:
      stack=3, locals=4, args_size=2
        start local 0 // org.jruby.util.io.OpenFile this
        start local 1 // org.jruby.Ruby runtime
         0: .line 1642
            aload 0 /* this */
            invokevirtual org.jruby.util.io.OpenFile.lock:()Z
            istore 2 /* locked */
        start local 2 // boolean locked
         1: .line 1644
            aload 0 /* this */
            dup
            getfield org.jruby.util.io.OpenFile.lineno:I
            iconst_1
            iadd
            putfield org.jruby.util.io.OpenFile.lineno:I
         2: .line 1645
            goto 6
      StackMap locals: org.jruby.util.io.OpenFile org.jruby.Ruby int
      StackMap stack: java.lang.Throwable
         3: astore 3
         4: .line 1646
            iload 2 /* locked */
            ifeq 5
            aload 0 /* this */
            invokevirtual org.jruby.util.io.OpenFile.unlock:()V
         5: .line 1647
      StackMap locals: java.lang.Throwable
      StackMap stack:
            aload 3
            athrow
         6: .line 1646
      StackMap locals:
      StackMap stack:
            iload 2 /* locked */
            ifeq 7
            aload 0 /* this */
            invokevirtual org.jruby.util.io.OpenFile.unlock:()V
         7: .line 1648
      StackMap locals:
      StackMap stack:
            return
        end local 2 // boolean locked
        end local 1 // org.jruby.Ruby runtime
        end local 0 // org.jruby.util.io.OpenFile this
      LocalVariableTable:
        Start  End  Slot     Name  Signature
            0    8     0     this  Lorg/jruby/util/io/OpenFile;
            0    8     1  runtime  Lorg/jruby/Ruby;
            1    8     2   locked  Z
      Exception table:
        from    to  target  type
           1     3       3  any
    RuntimeVisibleAnnotations: 
      java.lang.Deprecated()
    MethodParameters:
         Name  Flags
      runtime  

  public org.jruby.runtime.builtin.IRubyObject readAll(org.jruby.runtime.ThreadContext, int, org.jruby.runtime.builtin.IRubyObject);
    descriptor: (Lorg/jruby/runtime/ThreadContext;ILorg/jruby/runtime/builtin/IRubyObject;)Lorg/jruby/runtime/builtin/IRubyObject;
    flags: (0x0001) ACC_PUBLIC
    Code:
      stack=7, locals=15, args_size=4
        start local 0 // org.jruby.util.io.OpenFile this
        start local 1 // org.jruby.runtime.ThreadContext context
        start local 2 // int siz
        start local 3 // org.jruby.runtime.builtin.IRubyObject str
         0: .line 1652
            aload 1 /* context */
            getfield org.jruby.runtime.ThreadContext.runtime:Lorg/jruby/Ruby;
            astore 4 /* runtime */
        start local 4 // org.jruby.Ruby runtime
         1: .line 1659
            aload 0 /* this */
            invokevirtual org.jruby.util.io.OpenFile.lock:()Z
            istore 10 /* locked */
        start local 10 // boolean locked
         2: .line 1661
            aload 0 /* this */
            invokevirtual org.jruby.util.io.OpenFile.needsReadConversion:()Z
            ifeq 18
         3: .line 1662
            aload 0 /* this */
            invokevirtual org.jruby.util.io.OpenFile.SET_BINARY_MODE:()V
         4: .line 1663
            aload 4 /* runtime */
            aload 3 /* str */
            iconst_0
            invokestatic org.jruby.util.io.EncodingUtils.setStrBuf:(Lorg/jruby/Ruby;Lorg/jruby/runtime/builtin/IRubyObject;I)Lorg/jruby/RubyString;
            astore 3 /* str */
         5: .line 1664
            aload 0 /* this */
            aload 1 /* context */
            invokevirtual org.jruby.util.io.OpenFile.makeReadConversion:(Lorg/jruby/runtime/ThreadContext;)V
         6: .line 1667
      StackMap locals: org.jruby.util.io.OpenFile org.jruby.runtime.ThreadContext int org.jruby.runtime.builtin.IRubyObject org.jruby.Ruby top top top top top int
      StackMap stack:
            aload 0 /* this */
            getfield org.jruby.util.io.OpenFile.cbuf:Lorg/jruby/util/io/OpenFile$Buffer;
            getfield org.jruby.util.io.OpenFile$Buffer.len:I
            ifeq 8
         7: .line 1668
            aload 0 /* this */
            aload 1 /* context */
            aload 0 /* this */
            getfield org.jruby.util.io.OpenFile.cbuf:Lorg/jruby/util/io/OpenFile$Buffer;
            getfield org.jruby.util.io.OpenFile$Buffer.len:I
            aload 3 /* str */
            invokevirtual org.jruby.util.io.OpenFile.shiftCbuf:(Lorg/jruby/runtime/ThreadContext;ILorg/jruby/runtime/builtin/IRubyObject;)Lorg/jruby/runtime/builtin/IRubyObject;
            astore 3 /* str */
         8: .line 1670
      StackMap locals:
      StackMap stack:
            aload 0 /* this */
            aload 1 /* context */
            iconst_0
            invokevirtual org.jruby.util.io.OpenFile.fillCbuf:(Lorg/jruby/runtime/ThreadContext;I)Ljava/lang/Object;
            astore 11 /* v */
        start local 11 // java.lang.Object v
         9: .line 1671
            aload 11 /* v */
            iconst_0
            invokestatic java.lang.Integer.valueOf:(I)Ljava/lang/Integer;
            invokevirtual java.lang.Object.equals:(Ljava/lang/Object;)Z
            ifne 13
            aload 11 /* v */
            iconst_1
            invokestatic java.lang.Integer.valueOf:(I)Ljava/lang/Integer;
            invokevirtual java.lang.Object.equals:(Ljava/lang/Object;)Z
            ifne 13
        10: .line 1672
            aload 0 /* this */
            getfield org.jruby.util.io.OpenFile.cbuf:Lorg/jruby/util/io/OpenFile$Buffer;
            getfield org.jruby.util.io.OpenFile$Buffer.len:I
            ifeq 12
        11: .line 1673
            aload 0 /* this */
            aload 1 /* context */
            aload 0 /* this */
            getfield org.jruby.util.io.OpenFile.cbuf:Lorg/jruby/util/io/OpenFile$Buffer;
            getfield org.jruby.util.io.OpenFile$Buffer.len:I
            aload 3 /* str */
            invokevirtual org.jruby.util.io.OpenFile.shiftCbuf:(Lorg/jruby/runtime/ThreadContext;ILorg/jruby/runtime/builtin/IRubyObject;)Lorg/jruby/runtime/builtin/IRubyObject;
            astore 3 /* str */
        12: .line 1675
      StackMap locals: java.lang.Object
      StackMap stack:
            aload 11 /* v */
            checkcast org.jruby.exceptions.RaiseException
            athrow
        13: .line 1677
      StackMap locals:
      StackMap stack:
            aload 11 /* v */
            iconst_1
            invokestatic java.lang.Integer.valueOf:(I)Ljava/lang/Integer;
            invokevirtual java.lang.Object.equals:(Ljava/lang/Object;)Z
            ifeq 6
        14: .line 1678
            aload 0 /* this */
            invokevirtual org.jruby.util.io.OpenFile.clearReadConversion:()V
        15: .line 1679
            aload 4 /* runtime */
            aload 3 /* str */
            aload 0 /* this */
            invokestatic org.jruby.util.io.EncodingUtils.ioEncStr:(Lorg/jruby/Ruby;Lorg/jruby/runtime/builtin/IRubyObject;Lorg/jruby/util/io/OpenFile;)Lorg/jruby/runtime/builtin/IRubyObject;
            astore 14
        16: .line 1713
            iload 10 /* locked */
            ifeq 17
            aload 0 /* this */
            invokevirtual org.jruby.util.io.OpenFile.unlock:()V
        17: .line 1679
      StackMap locals: org.jruby.util.io.OpenFile org.jruby.runtime.ThreadContext int org.jruby.runtime.builtin.IRubyObject org.jruby.Ruby top top top top top int java.lang.Object top top org.jruby.runtime.builtin.IRubyObject
      StackMap stack:
            aload 14
            areturn
        end local 11 // java.lang.Object v
        18: .line 1684
      StackMap locals: org.jruby.util.io.OpenFile org.jruby.runtime.ThreadContext int org.jruby.runtime.builtin.IRubyObject org.jruby.Ruby top top top top top int
      StackMap stack:
            aload 0 /* this */
            invokevirtual org.jruby.util.io.OpenFile.NEED_NEWLINE_DECORATOR_ON_READ_CHECK:()V
        19: .line 1685
            iconst_0
            istore 5 /* bytes */
        start local 5 // int bytes
        20: .line 1686
            iconst_0
            istore 7 /* pos */
        start local 7 // int pos
        21: .line 1688
            aload 0 /* this */
            aload 4 /* runtime */
            invokevirtual org.jruby.util.io.OpenFile.readEncoding:(Lorg/jruby/Ruby;)Lorg/jcodings/Encoding;
            astore 8 /* enc */
        start local 8 // org.jcodings.Encoding enc
        22: .line 1689
            iconst_0
            istore 9 /* cr */
        start local 9 // int cr
        23: .line 1691
            iload 2 /* siz */
            ifne 24
            sipush 1024
            istore 2 /* siz */
        24: .line 1692
      StackMap locals: org.jruby.util.io.OpenFile org.jruby.runtime.ThreadContext int org.jruby.runtime.builtin.IRubyObject org.jruby.Ruby int top int org.jcodings.Encoding int int
      StackMap stack:
            aload 4 /* runtime */
            aload 3 /* str */
            iload 2 /* siz */
            invokestatic org.jruby.util.io.EncodingUtils.setStrBuf:(Lorg/jruby/Ruby;Lorg/jruby/runtime/builtin/IRubyObject;I)Lorg/jruby/RubyString;
            astore 3 /* str */
        25: .line 1694
      StackMap locals:
      StackMap stack:
            aload 0 /* this */
            aload 1 /* context */
            invokevirtual org.jruby.util.io.OpenFile.READ_CHECK:(Lorg/jruby/runtime/ThreadContext;)V
        26: .line 1695
            aload 0 /* this */
            aload 1 /* context */
            aload 3 /* str */
            iload 5 /* bytes */
            iload 2 /* siz */
            iload 5 /* bytes */
            isub
            invokevirtual org.jruby.util.io.OpenFile.fread:(Lorg/jruby/runtime/ThreadContext;Lorg/jruby/runtime/builtin/IRubyObject;II)I
            istore 6 /* n */
        start local 6 // int n
        27: .line 1696
            iload 6 /* n */
            ifne 30
            iload 5 /* bytes */
            ifne 30
        28: .line 1697
            aload 3 /* str */
            checkcast org.jruby.RubyString
            iconst_0
            invokevirtual org.jruby.RubyString.resize:(I)V
        29: .line 1698
            goto 39
        30: .line 1700
      StackMap locals: org.jruby.util.io.OpenFile org.jruby.runtime.ThreadContext int org.jruby.runtime.builtin.IRubyObject org.jruby.Ruby int int int org.jcodings.Encoding int int
      StackMap stack:
            iload 5 /* bytes */
            iload 6 /* n */
            iadd
            istore 5 /* bytes */
        31: .line 1701
            aload 3 /* str */
            checkcast org.jruby.RubyString
            invokevirtual org.jruby.RubyString.getByteList:()Lorg/jruby/util/ByteList;
            astore 11 /* strByteList */
        start local 11 // org.jruby.util.ByteList strByteList
        32: .line 1702
            aload 11 /* strByteList */
            iload 5 /* bytes */
            invokevirtual org.jruby.util.ByteList.setRealSize:(I)V
        33: .line 1704
            aload 11 /* strByteList */
            invokevirtual org.jruby.util.ByteList.begin:()I
            istore 12 /* beg */
        start local 12 // int beg
        34: .line 1705
            iload 7 /* pos */
            i2l
            aload 8 /* enc */
            aload 11 /* strByteList */
            invokevirtual org.jruby.util.ByteList.unsafeBytes:()[B
            iload 12 /* beg */
            iload 7 /* pos */
            iadd
            iload 12 /* beg */
            iload 5 /* bytes */
            iadd
            iload 9 /* cr */
            invokestatic org.jruby.util.StringSupport.codeRangeScanRestartable:(Lorg/jcodings/Encoding;[BIII)J
            ladd
            l2i
            istore 7 /* pos */
        35: .line 1707
            iload 5 /* bytes */
            iload 2 /* siz */
            if_icmpge 36
            goto 39
        36: .line 1708
      StackMap locals: org.jruby.util.ByteList int
      StackMap stack:
            iinc 2 /* siz */ 1024
        37: .line 1709
            aload 3 /* str */
            checkcast org.jruby.RubyString
            sipush 1024
            invokevirtual org.jruby.RubyString.modify:(I)V
        end local 12 // int beg
        end local 11 // org.jruby.util.ByteList strByteList
        end local 6 // int n
        38: .line 1693
            goto 25
        start local 6 // int n
        39: .line 1711
      StackMap locals:
      StackMap stack:
            aload 4 /* runtime */
            aload 3 /* str */
            aload 0 /* this */
            invokestatic org.jruby.util.io.EncodingUtils.ioEncStr:(Lorg/jruby/Ruby;Lorg/jruby/runtime/builtin/IRubyObject;Lorg/jruby/util/io/OpenFile;)Lorg/jruby/runtime/builtin/IRubyObject;
            astore 3 /* str */
        40: .line 1712
            goto 44
        end local 9 // int cr
        end local 8 // org.jcodings.Encoding enc
        end local 7 // int pos
        end local 6 // int n
        end local 5 // int bytes
      StackMap locals: org.jruby.util.io.OpenFile org.jruby.runtime.ThreadContext int org.jruby.runtime.builtin.IRubyObject org.jruby.Ruby top top top top top int
      StackMap stack: java.lang.Throwable
        41: astore 13
        42: .line 1713
            iload 10 /* locked */
            ifeq 43
            aload 0 /* this */
            invokevirtual org.jruby.util.io.OpenFile.unlock:()V
        43: .line 1714
      StackMap locals: org.jruby.util.io.OpenFile org.jruby.runtime.ThreadContext int org.jruby.runtime.builtin.IRubyObject org.jruby.Ruby top top top top top int top top java.lang.Throwable
      StackMap stack:
            aload 13
            athrow
        start local 5 // int bytes
        start local 6 // int n
        start local 7 // int pos
        start local 8 // org.jcodings.Encoding enc
        start local 9 // int cr
        44: .line 1713
      StackMap locals: org.jruby.util.io.OpenFile org.jruby.runtime.ThreadContext int org.jruby.runtime.builtin.IRubyObject org.jruby.Ruby int int int org.jcodings.Encoding int int
      StackMap stack:
            iload 10 /* locked */
            ifeq 45
            aload 0 /* this */
            invokevirtual org.jruby.util.io.OpenFile.unlock:()V
        45: .line 1716
      StackMap locals:
      StackMap stack:
            aload 3 /* str */
            checkcast org.jruby.RubyString
            iload 9 /* cr */
            invokevirtual org.jruby.RubyString.setCodeRange:(I)V
        46: .line 1718
            aload 3 /* str */
            areturn
        end local 10 // boolean locked
        end local 9 // int cr
        end local 8 // org.jcodings.Encoding enc
        end local 7 // int pos
        end local 6 // int n
        end local 5 // int bytes
        end local 4 // org.jruby.Ruby runtime
        end local 3 // org.jruby.runtime.builtin.IRubyObject str
        end local 2 // int siz
        end local 1 // org.jruby.runtime.ThreadContext context
        end local 0 // org.jruby.util.io.OpenFile this
      LocalVariableTable:
        Start  End  Slot         Name  Signature
            0   47     0         this  Lorg/jruby/util/io/OpenFile;
            0   47     1      context  Lorg/jruby/runtime/ThreadContext;
            0   47     2          siz  I
            0   47     3          str  Lorg/jruby/runtime/builtin/IRubyObject;
            1   47     4      runtime  Lorg/jruby/Ruby;
           20   41     5        bytes  I
           44   47     5        bytes  I
           27   38     6            n  I
           39   41     6            n  I
           44   47     6            n  I
           21   41     7          pos  I
           44   47     7          pos  I
           22   41     8          enc  Lorg/jcodings/Encoding;
           44   47     8          enc  Lorg/jcodings/Encoding;
           23   41     9           cr  I
           44   47     9           cr  I
            2   47    10       locked  Z
            9   18    11            v  Ljava/lang/Object;
           32   38    11  strByteList  Lorg/jruby/util/ByteList;
           34   38    12          beg  I
      Exception table:
        from    to  target  type
           2    16      41  any
          18    41      41  any
    MethodParameters:
         Name  Flags
      context  
      siz      
      str      

  private int ioBufread(org.jruby.runtime.ThreadContext, byte[], int, int);
    descriptor: (Lorg/jruby/runtime/ThreadContext;[BII)I
    flags: (0x0002) ACC_PRIVATE
    Code:
      stack=6, locals=11, args_size=5
        start local 0 // org.jruby.util.io.OpenFile this
        start local 1 // org.jruby.runtime.ThreadContext context
        start local 2 // byte[] ptrBytes
        start local 3 // int ptr
        start local 4 // int len
         0: .line 1723
            iconst_0
            istore 5 /* offset */
        start local 5 // int offset
         1: .line 1724
            iload 4 /* len */
            istore 6 /* n */
        start local 6 // int n
         2: .line 1727
            aload 0 /* this */
            invokevirtual org.jruby.util.io.OpenFile.lock:()Z
            istore 8 /* locked */
        start local 8 // boolean locked
         3: .line 1729
            aload 0 /* this */
            invokevirtual org.jruby.util.io.OpenFile.READ_DATA_PENDING:()Z
            ifne 25
         4: .line 1731
            goto 14
         5: .line 1734
      StackMap locals: org.jruby.util.io.OpenFile org.jruby.runtime.ThreadContext byte[] int int int int top int
      StackMap stack:
            aload 1 /* context */
            aload 0 /* this */
            aload 0 /* this */
            getfield org.jruby.util.io.OpenFile.fd:Lorg/jruby/util/io/ChannelFD;
            aload 2 /* ptrBytes */
            iload 3 /* ptr */
            iload 5 /* offset */
            iadd
            iload 6 /* n */
            invokestatic org.jruby.util.io.OpenFile.readInternal:(Lorg/jruby/runtime/ThreadContext;Lorg/jruby/util/io/OpenFile;Lorg/jruby/util/io/ChannelFD;[BII)I
            istore 7 /* c */
        start local 7 // int c
         6: .line 1735
            iload 7 /* c */
            ifne 7
            goto 15
         7: .line 1736
      StackMap locals: org.jruby.util.io.OpenFile org.jruby.runtime.ThreadContext byte[] int int int int int int
      StackMap stack:
            iload 7 /* c */
            ifge 12
         8: .line 1737
            aload 0 /* this */
            aload 1 /* context */
            aload 0 /* this */
            getfield org.jruby.util.io.OpenFile.fd:Lorg/jruby/util/io/ChannelFD;
            invokevirtual org.jruby.util.io.OpenFile.waitReadable:(Lorg/jruby/runtime/ThreadContext;Lorg/jruby/util/io/ChannelFD;)Z
            ifeq 10
         9: .line 1738
            goto 5
        10: .line 1761
      StackMap locals:
      StackMap stack:
            iload 8 /* locked */
            ifeq 11
            aload 0 /* this */
            invokevirtual org.jruby.util.io.OpenFile.unlock:()V
        11: .line 1739
      StackMap locals:
      StackMap stack:
            iconst_m1
            ireturn
        12: .line 1743
      StackMap locals:
      StackMap stack:
            iload 5 /* offset */
            iload 7 /* c */
            iadd
            istore 5 /* offset */
        13: .line 1744
            iload 6 /* n */
            iload 7 /* c */
            isub
            dup
            istore 6 /* n */
            ifgt 14
            goto 15
        end local 7 // int c
        14: .line 1731
      StackMap locals: org.jruby.util.io.OpenFile org.jruby.runtime.ThreadContext byte[] int int int int top int
      StackMap stack:
            iload 6 /* n */
            ifgt 5
        15: .line 1746
      StackMap locals:
      StackMap stack:
            iload 4 /* len */
            iload 6 /* n */
            isub
            istore 10
        16: .line 1761
            iload 8 /* locked */
            ifeq 17
            aload 0 /* this */
            invokevirtual org.jruby.util.io.OpenFile.unlock:()V
        17: .line 1746
      StackMap locals: org.jruby.util.io.OpenFile org.jruby.runtime.ThreadContext byte[] int int int int top int top int
      StackMap stack:
            iload 10
            ireturn
        18: .line 1750
      StackMap locals: org.jruby.util.io.OpenFile org.jruby.runtime.ThreadContext byte[] int int int int top int
      StackMap stack:
            aload 0 /* this */
            aload 2 /* ptrBytes */
            iload 3 /* ptr */
            iload 5 /* offset */
            iadd
            iload 6 /* n */
            invokevirtual org.jruby.util.io.OpenFile.readBufferedData:([BII)I
            istore 7 /* c */
        start local 7 // int c
        19: .line 1751
            iload 7 /* c */
            ifle 22
        20: .line 1752
            iload 5 /* offset */
            iload 7 /* c */
            iadd
            istore 5 /* offset */
        21: .line 1753
            iload 6 /* n */
            iload 7 /* c */
            isub
            dup
            istore 6 /* n */
            ifgt 22
            goto 30
        22: .line 1755
      StackMap locals: org.jruby.util.io.OpenFile org.jruby.runtime.ThreadContext byte[] int int int int int int
      StackMap stack:
            aload 0 /* this */
            invokevirtual org.jruby.util.io.OpenFile.checkClosed:()V
        23: .line 1756
            aload 0 /* this */
            aload 1 /* context */
            invokevirtual org.jruby.util.io.OpenFile.fillbuf:(Lorg/jruby/runtime/ThreadContext;)I
            ifge 25
        24: .line 1757
            goto 30
        end local 7 // int c
        25: .line 1749
      StackMap locals: org.jruby.util.io.OpenFile org.jruby.runtime.ThreadContext byte[] int int int int top int
      StackMap stack:
            iload 6 /* n */
            ifgt 18
        26: .line 1760
            goto 30
      StackMap locals:
      StackMap stack: java.lang.Throwable
        27: astore 9
        28: .line 1761
            iload 8 /* locked */
            ifeq 29
            aload 0 /* this */
            invokevirtual org.jruby.util.io.OpenFile.unlock:()V
        29: .line 1762
      StackMap locals: java.lang.Throwable
      StackMap stack:
            aload 9
            athrow
        30: .line 1761
      StackMap locals:
      StackMap stack:
            iload 8 /* locked */
            ifeq 31
            aload 0 /* this */
            invokevirtual org.jruby.util.io.OpenFile.unlock:()V
        31: .line 1763
      StackMap locals:
      StackMap stack:
            iload 4 /* len */
            iload 6 /* n */
            isub
            ireturn
        end local 8 // boolean locked
        end local 6 // int n
        end local 5 // int offset
        end local 4 // int len
        end local 3 // int ptr
        end local 2 // byte[] ptrBytes
        end local 1 // org.jruby.runtime.ThreadContext context
        end local 0 // org.jruby.util.io.OpenFile this
      LocalVariableTable:
        Start  End  Slot      Name  Signature
            0   32     0      this  Lorg/jruby/util/io/OpenFile;
            0   32     1   context  Lorg/jruby/runtime/ThreadContext;
            0   32     2  ptrBytes  [B
            0   32     3       ptr  I
            0   32     4       len  I
            1   32     5    offset  I
            2   32     6         n  I
            6   14     7         c  I
           19   25     7         c  I
            3   32     8    locked  Z
      Exception table:
        from    to  target  type
           3    10      27  any
          12    16      27  any
          18    27      27  any
    MethodParameters:
          Name  Flags
      context   
      ptrBytes  
      ptr       
      len       

  static org.jruby.runtime.builtin.IRubyObject bufreadCall(org.jruby.runtime.ThreadContext, org.jruby.util.io.OpenFile$BufreadArg);
    descriptor: (Lorg/jruby/runtime/ThreadContext;Lorg/jruby/util/io/OpenFile$BufreadArg;)Lorg/jruby/runtime/builtin/IRubyObject;
    flags: (0x0008) ACC_STATIC
    Code:
      stack=6, locals=2, args_size=2
        start local 0 // org.jruby.runtime.ThreadContext context
        start local 1 // org.jruby.util.io.OpenFile$BufreadArg p
         0: .line 1774
            aload 1 /* p */
            aload 1 /* p */
            getfield org.jruby.util.io.OpenFile$BufreadArg.fptr:Lorg/jruby/util/io/OpenFile;
            aload 0 /* context */
            aload 1 /* p */
            getfield org.jruby.util.io.OpenFile$BufreadArg.strPtrBytes:[B
            aload 1 /* p */
            getfield org.jruby.util.io.OpenFile$BufreadArg.strPtr:I
            aload 1 /* p */
            getfield org.jruby.util.io.OpenFile$BufreadArg.len:I
            invokevirtual org.jruby.util.io.OpenFile.ioBufread:(Lorg/jruby/runtime/ThreadContext;[BII)I
            putfield org.jruby.util.io.OpenFile$BufreadArg.len:I
         1: .line 1775
            getstatic org.jruby.RubyBasicObject.UNDEF:Lorg/jruby/runtime/builtin/IRubyObject;
            areturn
        end local 1 // org.jruby.util.io.OpenFile$BufreadArg p
        end local 0 // org.jruby.runtime.ThreadContext context
      LocalVariableTable:
        Start  End  Slot     Name  Signature
            0    2     0  context  Lorg/jruby/runtime/ThreadContext;
            0    2     1        p  Lorg/jruby/util/io/OpenFile$BufreadArg;
    MethodParameters:
         Name  Flags
      context  
      p        

  public int fread(org.jruby.runtime.ThreadContext, org.jruby.runtime.builtin.IRubyObject, int, int);
    descriptor: (Lorg/jruby/runtime/ThreadContext;Lorg/jruby/runtime/builtin/IRubyObject;II)I
    flags: (0x0001) ACC_PUBLIC
    Code:
      stack=4, locals=8, args_size=5
        start local 0 // org.jruby.util.io.OpenFile this
        start local 1 // org.jruby.runtime.ThreadContext context
        start local 2 // org.jruby.runtime.builtin.IRubyObject str
        start local 3 // int offset
        start local 4 // int size
         0: .line 1781
            new org.jruby.util.io.OpenFile$BufreadArg
            dup
            invokespecial org.jruby.util.io.OpenFile$BufreadArg.<init>:()V
            astore 6 /* arg */
        start local 6 // org.jruby.util.io.OpenFile$BufreadArg arg
         1: .line 1783
            aload 1 /* context */
            getfield org.jruby.runtime.ThreadContext.runtime:Lorg/jruby/Ruby;
            aload 2 /* str */
            iload 3 /* offset */
            iload 4 /* size */
            iadd
            invokestatic org.jruby.util.io.EncodingUtils.setStrBuf:(Lorg/jruby/Ruby;Lorg/jruby/runtime/builtin/IRubyObject;I)Lorg/jruby/RubyString;
            astore 2 /* str */
         2: .line 1784
            aload 2 /* str */
            checkcast org.jruby.RubyString
            invokevirtual org.jruby.RubyString.getByteList:()Lorg/jruby/util/ByteList;
            astore 7 /* strByteList */
        start local 7 // org.jruby.util.ByteList strByteList
         3: .line 1785
            aload 6 /* arg */
            aload 7 /* strByteList */
            invokevirtual org.jruby.util.ByteList.unsafeBytes:()[B
            putfield org.jruby.util.io.OpenFile$BufreadArg.strPtrBytes:[B
         4: .line 1786
            aload 6 /* arg */
            aload 7 /* strByteList */
            invokevirtual org.jruby.util.ByteList.begin:()I
            iload 3 /* offset */
            iadd
            putfield org.jruby.util.io.OpenFile$BufreadArg.strPtr:I
         5: .line 1787
            aload 6 /* arg */
            iload 4 /* size */
            putfield org.jruby.util.io.OpenFile$BufreadArg.len:I
         6: .line 1788
            aload 6 /* arg */
            aload 0 /* this */
            putfield org.jruby.util.io.OpenFile$BufreadArg.fptr:Lorg/jruby/util/io/OpenFile;
         7: .line 1791
            aload 1 /* context */
            aload 6 /* arg */
            invokestatic org.jruby.util.io.OpenFile.bufreadCall:(Lorg/jruby/runtime/ThreadContext;Lorg/jruby/util/io/OpenFile$BufreadArg;)Lorg/jruby/runtime/builtin/IRubyObject;
            pop
         8: .line 1792
            aload 6 /* arg */
            getfield org.jruby.util.io.OpenFile$BufreadArg.len:I
            istore 5 /* len */
        start local 5 // int len
         9: .line 1794
            iload 5 /* len */
            ifge 10
            aload 1 /* context */
            getfield org.jruby.runtime.ThreadContext.runtime:Lorg/jruby/Ruby;
            aload 0 /* this */
            getfield org.jruby.util.io.OpenFile.posix:Lorg/jruby/util/io/PosixShim;
            invokevirtual org.jruby.util.io.PosixShim.getErrno:()Ljnr/constants/platform/Errno;
            aload 0 /* this */
            getfield org.jruby.util.io.OpenFile.pathv:Ljava/lang/String;
            invokevirtual org.jruby.Ruby.newErrnoFromErrno:(Ljnr/constants/platform/Errno;Ljava/lang/String;)Lorg/jruby/exceptions/RaiseException;
            athrow
        10: .line 1795
      StackMap locals: int org.jruby.util.io.OpenFile$BufreadArg org.jruby.util.ByteList
      StackMap stack:
            iload 5 /* len */
            ireturn
        end local 7 // org.jruby.util.ByteList strByteList
        end local 6 // org.jruby.util.io.OpenFile$BufreadArg arg
        end local 5 // int len
        end local 4 // int size
        end local 3 // int offset
        end local 2 // org.jruby.runtime.builtin.IRubyObject str
        end local 1 // org.jruby.runtime.ThreadContext context
        end local 0 // org.jruby.util.io.OpenFile this
      LocalVariableTable:
        Start  End  Slot         Name  Signature
            0   11     0         this  Lorg/jruby/util/io/OpenFile;
            0   11     1      context  Lorg/jruby/runtime/ThreadContext;
            0   11     2          str  Lorg/jruby/runtime/builtin/IRubyObject;
            0   11     3       offset  I
            0   11     4         size  I
            9   11     5          len  I
            1   11     6          arg  Lorg/jruby/util/io/OpenFile$BufreadArg;
            3   11     7  strByteList  Lorg/jruby/util/ByteList;
    MethodParameters:
         Name  Flags
      context  
      str      
      offset   
      size     

  public void ungetbyte(org.jruby.runtime.ThreadContext, org.jruby.runtime.builtin.IRubyObject);
    descriptor: (Lorg/jruby/runtime/ThreadContext;Lorg/jruby/runtime/builtin/IRubyObject;)V
    flags: (0x0001) ACC_PUBLIC
    Code:
      stack=5, locals=7, args_size=3
        start local 0 // org.jruby.util.io.OpenFile this
        start local 1 // org.jruby.runtime.ThreadContext context
        start local 2 // org.jruby.runtime.builtin.IRubyObject str
         0: .line 1799
            aload 2 /* str */
            checkcast org.jruby.RubyString
            invokevirtual org.jruby.RubyString.size:()I
            istore 3 /* len */
        start local 3 // int len
         1: .line 1801
            aload 0 /* this */
            invokevirtual org.jruby.util.io.OpenFile.lock:()Z
            istore 4 /* locked */
        start local 4 // boolean locked
         2: .line 1803
            aload 0 /* this */
            getfield org.jruby.util.io.OpenFile.rbuf:Lorg/jruby/util/io/OpenFile$Buffer;
            getfield org.jruby.util.io.OpenFile$Buffer.ptr:[B
            ifnonnull 10
         3: .line 1804
            aload 0 /* this */
            invokevirtual org.jruby.util.io.OpenFile.IO_RBUF_CAPA_FOR:()I
            istore 5 /* min_capa */
        start local 5 // int min_capa
         4: .line 1805
            aload 0 /* this */
            getfield org.jruby.util.io.OpenFile.rbuf:Lorg/jruby/util/io/OpenFile$Buffer;
            iconst_0
            putfield org.jruby.util.io.OpenFile$Buffer.off:I
         5: .line 1806
            aload 0 /* this */
            getfield org.jruby.util.io.OpenFile.rbuf:Lorg/jruby/util/io/OpenFile$Buffer;
            iconst_0
            putfield org.jruby.util.io.OpenFile$Buffer.len:I
         6: .line 1811
            iload 3 /* len */
            iload 5 /* min_capa */
            if_icmple 8
         7: .line 1812
            aload 0 /* this */
            getfield org.jruby.util.io.OpenFile.rbuf:Lorg/jruby/util/io/OpenFile$Buffer;
            iload 3 /* len */
            putfield org.jruby.util.io.OpenFile$Buffer.capa:I
            goto 9
         8: .line 1814
      StackMap locals: int int int
      StackMap stack:
            aload 0 /* this */
            getfield org.jruby.util.io.OpenFile.rbuf:Lorg/jruby/util/io/OpenFile$Buffer;
            iload 5 /* min_capa */
            putfield org.jruby.util.io.OpenFile$Buffer.capa:I
         9: .line 1815
      StackMap locals:
      StackMap stack:
            aload 0 /* this */
            getfield org.jruby.util.io.OpenFile.rbuf:Lorg/jruby/util/io/OpenFile$Buffer;
            aload 0 /* this */
            getfield org.jruby.util.io.OpenFile.rbuf:Lorg/jruby/util/io/OpenFile$Buffer;
            getfield org.jruby.util.io.OpenFile$Buffer.capa:I
            newarray 8
            putfield org.jruby.util.io.OpenFile$Buffer.ptr:[B
        end local 5 // int min_capa
        10: .line 1817
      StackMap locals:
      StackMap stack:
            aload 0 /* this */
            getfield org.jruby.util.io.OpenFile.rbuf:Lorg/jruby/util/io/OpenFile$Buffer;
            getfield org.jruby.util.io.OpenFile$Buffer.capa:I
            iload 3 /* len */
            aload 0 /* this */
            getfield org.jruby.util.io.OpenFile.rbuf:Lorg/jruby/util/io/OpenFile$Buffer;
            getfield org.jruby.util.io.OpenFile$Buffer.len:I
            iadd
            if_icmpge 12
        11: .line 1818
            aload 1 /* context */
            getfield org.jruby.runtime.ThreadContext.runtime:Lorg/jruby/Ruby;
            ldc "ungetbyte failed"
            invokevirtual org.jruby.Ruby.newIOError:(Ljava/lang/String;)Lorg/jruby/exceptions/RaiseException;
            athrow
        12: .line 1820
      StackMap locals:
      StackMap stack:
            aload 0 /* this */
            getfield org.jruby.util.io.OpenFile.rbuf:Lorg/jruby/util/io/OpenFile$Buffer;
            getfield org.jruby.util.io.OpenFile$Buffer.off:I
            iload 3 /* len */
            if_icmpge 15
        13: .line 1821
            aload 0 /* this */
            getfield org.jruby.util.io.OpenFile.rbuf:Lorg/jruby/util/io/OpenFile$Buffer;
            getfield org.jruby.util.io.OpenFile$Buffer.ptr:[B
            aload 0 /* this */
            getfield org.jruby.util.io.OpenFile.rbuf:Lorg/jruby/util/io/OpenFile$Buffer;
            getfield org.jruby.util.io.OpenFile$Buffer.off:I
            aload 0 /* this */
            getfield org.jruby.util.io.OpenFile.rbuf:Lorg/jruby/util/io/OpenFile$Buffer;
            getfield org.jruby.util.io.OpenFile$Buffer.ptr:[B
            aload 0 /* this */
            getfield org.jruby.util.io.OpenFile.rbuf:Lorg/jruby/util/io/OpenFile$Buffer;
            getfield org.jruby.util.io.OpenFile$Buffer.capa:I
            aload 0 /* this */
            getfield org.jruby.util.io.OpenFile.rbuf:Lorg/jruby/util/io/OpenFile$Buffer;
            getfield org.jruby.util.io.OpenFile$Buffer.len:I
            isub
            aload 0 /* this */
            getfield org.jruby.util.io.OpenFile.rbuf:Lorg/jruby/util/io/OpenFile$Buffer;
            getfield org.jruby.util.io.OpenFile$Buffer.len:I
            invokestatic java.lang.System.arraycopy:(Ljava/lang/Object;ILjava/lang/Object;II)V
        14: .line 1822
            aload 0 /* this */
            getfield org.jruby.util.io.OpenFile.rbuf:Lorg/jruby/util/io/OpenFile$Buffer;
            aload 0 /* this */
            getfield org.jruby.util.io.OpenFile.rbuf:Lorg/jruby/util/io/OpenFile$Buffer;
            getfield org.jruby.util.io.OpenFile$Buffer.capa:I
            aload 0 /* this */
            getfield org.jruby.util.io.OpenFile.rbuf:Lorg/jruby/util/io/OpenFile$Buffer;
            getfield org.jruby.util.io.OpenFile$Buffer.len:I
            isub
            putfield org.jruby.util.io.OpenFile$Buffer.off:I
        15: .line 1824
      StackMap locals:
      StackMap stack:
            aload 0 /* this */
            getfield org.jruby.util.io.OpenFile.rbuf:Lorg/jruby/util/io/OpenFile$Buffer;
            dup
            getfield org.jruby.util.io.OpenFile$Buffer.off:I
            iload 3 /* len */
            isub
            putfield org.jruby.util.io.OpenFile$Buffer.off:I
        16: .line 1825
            aload 0 /* this */
            getfield org.jruby.util.io.OpenFile.rbuf:Lorg/jruby/util/io/OpenFile$Buffer;
            dup
            getfield org.jruby.util.io.OpenFile$Buffer.len:I
            iload 3 /* len */
            iadd
            putfield org.jruby.util.io.OpenFile$Buffer.len:I
        17: .line 1826
            aload 2 /* str */
            checkcast org.jruby.RubyString
            invokevirtual org.jruby.RubyString.getByteList:()Lorg/jruby/util/ByteList;
            astore 5 /* strByteList */
        start local 5 // org.jruby.util.ByteList strByteList
        18: .line 1827
            aload 5 /* strByteList */
            invokevirtual org.jruby.util.ByteList.unsafeBytes:()[B
            aload 5 /* strByteList */
            invokevirtual org.jruby.util.ByteList.begin:()I
            aload 0 /* this */
            getfield org.jruby.util.io.OpenFile.rbuf:Lorg/jruby/util/io/OpenFile$Buffer;
            getfield org.jruby.util.io.OpenFile$Buffer.ptr:[B
            aload 0 /* this */
            getfield org.jruby.util.io.OpenFile.rbuf:Lorg/jruby/util/io/OpenFile$Buffer;
            getfield org.jruby.util.io.OpenFile$Buffer.off:I
            iload 3 /* len */
            invokestatic java.lang.System.arraycopy:(Ljava/lang/Object;ILjava/lang/Object;II)V
        end local 5 // org.jruby.util.ByteList strByteList
        19: .line 1828
            goto 23
      StackMap locals:
      StackMap stack: java.lang.Throwable
        20: astore 6
        21: .line 1829
            iload 4 /* locked */
            ifeq 22
            aload 0 /* this */
            invokevirtual org.jruby.util.io.OpenFile.unlock:()V
        22: .line 1830
      StackMap locals: org.jruby.util.io.OpenFile org.jruby.runtime.ThreadContext org.jruby.runtime.builtin.IRubyObject int int top java.lang.Throwable
      StackMap stack:
            aload 6
            athrow
        23: .line 1829
      StackMap locals: org.jruby.util.io.OpenFile org.jruby.runtime.ThreadContext org.jruby.runtime.builtin.IRubyObject int int
      StackMap stack:
            iload 4 /* locked */
            ifeq 24
            aload 0 /* this */
            invokevirtual org.jruby.util.io.OpenFile.unlock:()V
        24: .line 1831
      StackMap locals:
      StackMap stack:
            return
        end local 4 // boolean locked
        end local 3 // int len
        end local 2 // org.jruby.runtime.builtin.IRubyObject str
        end local 1 // org.jruby.runtime.ThreadContext context
        end local 0 // org.jruby.util.io.OpenFile this
      LocalVariableTable:
        Start  End  Slot         Name  Signature
            0   25     0         this  Lorg/jruby/util/io/OpenFile;
            0   25     1      context  Lorg/jruby/runtime/ThreadContext;
            0   25     2          str  Lorg/jruby/runtime/builtin/IRubyObject;
            1   25     3          len  I
            2   25     4       locked  Z
            4   10     5     min_capa  I
           18   19     5  strByteList  Lorg/jruby/util/ByteList;
      Exception table:
        from    to  target  type
           2    20      20  any
    MethodParameters:
         Name  Flags
      context  
      str      

  public org.jruby.runtime.builtin.IRubyObject getc(org.jruby.runtime.ThreadContext, org.jcodings.Encoding);
    descriptor: (Lorg/jruby/runtime/ThreadContext;Lorg/jcodings/Encoding;)Lorg/jruby/runtime/builtin/IRubyObject;
    flags: (0x0001) ACC_PUBLIC
    Code:
      stack=5, locals=12, args_size=3
        start local 0 // org.jruby.util.io.OpenFile this
        start local 1 // org.jruby.runtime.ThreadContext context
        start local 2 // org.jcodings.Encoding enc
         0: .line 1835
            aload 1 /* context */
            getfield org.jruby.runtime.ThreadContext.runtime:Lorg/jruby/Ruby;
            astore 3 /* runtime */
        start local 3 // org.jruby.Ruby runtime
         1: .line 1836
            iconst_0
            istore 6 /* cr */
        start local 6 // int cr
         2: .line 1839
            aload 0 /* this */
            invokevirtual org.jruby.util.io.OpenFile.lock:()Z
            istore 8 /* locked */
        start local 8 // boolean locked
         3: .line 1841
            aload 0 /* this */
            invokevirtual org.jruby.util.io.OpenFile.needsReadConversion:()Z
            ifeq 43
         4: .line 1842
            aload 1 /* context */
            getfield org.jruby.runtime.ThreadContext.nil:Lorg/jruby/runtime/builtin/IRubyObject;
            astore 7 /* str */
        start local 7 // org.jruby.runtime.builtin.IRubyObject str
         5: .line 1843
            aload 0 /* this */
            aload 3 /* runtime */
            invokevirtual org.jruby.util.io.OpenFile.readEncoding:(Lorg/jruby/Ruby;)Lorg/jcodings/Encoding;
            astore 9 /* read_enc */
        start local 9 // org.jcodings.Encoding read_enc
         6: .line 1845
            aload 0 /* this */
            invokevirtual org.jruby.util.io.OpenFile.SET_BINARY_MODE:()V
         7: .line 1846
            aload 0 /* this */
            aload 1 /* context */
            iconst_0
            invokevirtual org.jruby.util.io.OpenFile.makeReadConversion:(Lorg/jruby/runtime/ThreadContext;I)V
         8: .line 1849
      StackMap locals: org.jruby.util.io.OpenFile org.jruby.runtime.ThreadContext org.jcodings.Encoding org.jruby.Ruby top top int org.jruby.runtime.builtin.IRubyObject int org.jcodings.Encoding
      StackMap stack:
            aload 0 /* this */
            getfield org.jruby.util.io.OpenFile.cbuf:Lorg/jruby/util/io/OpenFile$Buffer;
            getfield org.jruby.util.io.OpenFile$Buffer.len:I
            ifeq 14
         9: .line 1850
            aload 9 /* read_enc */
            aload 0 /* this */
            getfield org.jruby.util.io.OpenFile.cbuf:Lorg/jruby/util/io/OpenFile$Buffer;
            getfield org.jruby.util.io.OpenFile$Buffer.ptr:[B
            aload 0 /* this */
            getfield org.jruby.util.io.OpenFile.cbuf:Lorg/jruby/util/io/OpenFile$Buffer;
            getfield org.jruby.util.io.OpenFile$Buffer.off:I
            aload 0 /* this */
            getfield org.jruby.util.io.OpenFile.cbuf:Lorg/jruby/util/io/OpenFile$Buffer;
            getfield org.jruby.util.io.OpenFile$Buffer.off:I
            aload 0 /* this */
            getfield org.jruby.util.io.OpenFile.cbuf:Lorg/jruby/util/io/OpenFile$Buffer;
            getfield org.jruby.util.io.OpenFile$Buffer.len:I
            iadd
            invokestatic org.jruby.util.StringSupport.preciseLength:(Lorg/jcodings/Encoding;[BII)I
            istore 4 /* r */
        start local 4 // int r
        10: .line 1851
            iload 4 /* r */
            invokestatic org.jruby.util.StringSupport.MBCLEN_NEEDMORE_P:(I)Z
            ifne 12
        11: .line 1852
            goto 28
        12: .line 1853
      StackMap locals: org.jruby.util.io.OpenFile org.jruby.runtime.ThreadContext org.jcodings.Encoding org.jruby.Ruby int top int org.jruby.runtime.builtin.IRubyObject int org.jcodings.Encoding
      StackMap stack:
            aload 0 /* this */
            getfield org.jruby.util.io.OpenFile.cbuf:Lorg/jruby/util/io/OpenFile$Buffer;
            getfield org.jruby.util.io.OpenFile$Buffer.len:I
            aload 0 /* this */
            getfield org.jruby.util.io.OpenFile.cbuf:Lorg/jruby/util/io/OpenFile$Buffer;
            getfield org.jruby.util.io.OpenFile$Buffer.capa:I
            if_icmpne 14
        13: .line 1854
            aload 3 /* runtime */
            ldc "too long character"
            invokevirtual org.jruby.Ruby.newIOError:(Ljava/lang/String;)Lorg/jruby/exceptions/RaiseException;
            athrow
        end local 4 // int r
        14: .line 1858
      StackMap locals: org.jruby.util.io.OpenFile org.jruby.runtime.ThreadContext org.jcodings.Encoding org.jruby.Ruby top top int org.jruby.runtime.builtin.IRubyObject int org.jcodings.Encoding
      StackMap stack:
            aload 0 /* this */
            aload 1 /* context */
            invokevirtual org.jruby.util.io.OpenFile.moreChar:(Lorg/jruby/runtime/ThreadContext;)I
            iconst_1
            if_icmpne 8
        15: .line 1859
            aload 0 /* this */
            getfield org.jruby.util.io.OpenFile.cbuf:Lorg/jruby/util/io/OpenFile$Buffer;
            getfield org.jruby.util.io.OpenFile$Buffer.len:I
            ifne 20
        16: .line 1860
            aload 0 /* this */
            invokevirtual org.jruby.util.io.OpenFile.clearReadConversion:()V
        17: .line 1861
            aload 1 /* context */
            getfield org.jruby.runtime.ThreadContext.nil:Lorg/jruby/runtime/builtin/IRubyObject;
            astore 11
        18: .line 1939
            iload 8 /* locked */
            ifeq 19
            aload 0 /* this */
            invokevirtual org.jruby.util.io.OpenFile.unlock:()V
        19: .line 1861
      StackMap locals: org.jruby.util.io.OpenFile org.jruby.runtime.ThreadContext org.jcodings.Encoding org.jruby.Ruby top top int org.jruby.runtime.builtin.IRubyObject int org.jcodings.Encoding top org.jruby.runtime.builtin.IRubyObject
      StackMap stack:
            aload 11
            areturn
        20: .line 1864
      StackMap locals: org.jruby.util.io.OpenFile org.jruby.runtime.ThreadContext org.jcodings.Encoding org.jruby.Ruby top top int org.jruby.runtime.builtin.IRubyObject int org.jcodings.Encoding
      StackMap stack:
            aload 3 /* runtime */
            aload 0 /* this */
            getfield org.jruby.util.io.OpenFile.cbuf:Lorg/jruby/util/io/OpenFile$Buffer;
            getfield org.jruby.util.io.OpenFile$Buffer.ptr:[B
            aload 0 /* this */
            getfield org.jruby.util.io.OpenFile.cbuf:Lorg/jruby/util/io/OpenFile$Buffer;
            getfield org.jruby.util.io.OpenFile$Buffer.off:I
            iconst_1
            aload 9 /* read_enc */
            invokestatic org.jruby.RubyString.newString:(Lorg/jruby/Ruby;[BIILorg/jcodings/Encoding;)Lorg/jruby/RubyString;
            astore 7 /* str */
        21: .line 1865
            aload 0 /* this */
            getfield org.jruby.util.io.OpenFile.cbuf:Lorg/jruby/util/io/OpenFile$Buffer;
            dup
            getfield org.jruby.util.io.OpenFile$Buffer.off:I
            iconst_1
            iadd
            putfield org.jruby.util.io.OpenFile$Buffer.off:I
        22: .line 1866
            aload 0 /* this */
            getfield org.jruby.util.io.OpenFile.cbuf:Lorg/jruby/util/io/OpenFile$Buffer;
            dup
            getfield org.jruby.util.io.OpenFile$Buffer.len:I
            iconst_1
            isub
            putfield org.jruby.util.io.OpenFile$Buffer.len:I
        23: .line 1867
            aload 0 /* this */
            getfield org.jruby.util.io.OpenFile.cbuf:Lorg/jruby/util/io/OpenFile$Buffer;
            getfield org.jruby.util.io.OpenFile$Buffer.len:I
            ifne 24
            aload 0 /* this */
            invokevirtual org.jruby.util.io.OpenFile.clearReadConversion:()V
        24: .line 1868
      StackMap locals:
      StackMap stack:
            aload 7 /* str */
            checkcast org.jruby.RubyString
            bipush 48
            invokevirtual org.jruby.RubyString.setCodeRange:(I)V
        25: .line 1869
            aload 7 /* str */
            astore 11
        26: .line 1939
            iload 8 /* locked */
            ifeq 27
            aload 0 /* this */
            invokevirtual org.jruby.util.io.OpenFile.unlock:()V
        27: .line 1869
      StackMap locals: org.jruby.util.io.OpenFile org.jruby.runtime.ThreadContext org.jcodings.Encoding org.jruby.Ruby top top int org.jruby.runtime.builtin.IRubyObject int org.jcodings.Encoding top org.jruby.runtime.builtin.IRubyObject
      StackMap stack:
            aload 11
            areturn
        start local 4 // int r
        28: .line 1872
      StackMap locals: org.jruby.util.io.OpenFile org.jruby.runtime.ThreadContext org.jcodings.Encoding org.jruby.Ruby int top int org.jruby.runtime.builtin.IRubyObject int org.jcodings.Encoding
      StackMap stack:
            iload 4 /* r */
            invokestatic org.jruby.util.StringSupport.MBCLEN_INVALID_P:(I)Z
            ifeq 33
        29: .line 1873
            aload 9 /* read_enc */
            aload 0 /* this */
            getfield org.jruby.util.io.OpenFile.cbuf:Lorg/jruby/util/io/OpenFile$Buffer;
            getfield org.jruby.util.io.OpenFile$Buffer.ptr:[B
            aload 0 /* this */
            getfield org.jruby.util.io.OpenFile.cbuf:Lorg/jruby/util/io/OpenFile$Buffer;
            getfield org.jruby.util.io.OpenFile$Buffer.off:I
            aload 0 /* this */
            getfield org.jruby.util.io.OpenFile.cbuf:Lorg/jruby/util/io/OpenFile$Buffer;
            getfield org.jruby.util.io.OpenFile$Buffer.off:I
            aload 0 /* this */
            getfield org.jruby.util.io.OpenFile.cbuf:Lorg/jruby/util/io/OpenFile$Buffer;
            getfield org.jruby.util.io.OpenFile$Buffer.len:I
            iadd
            invokevirtual org.jcodings.Encoding.length:([BII)I
            istore 4 /* r */
        30: .line 1874
            aload 0 /* this */
            aload 1 /* context */
            iload 4 /* r */
            aload 7 /* str */
            invokevirtual org.jruby.util.io.OpenFile.shiftCbuf:(Lorg/jruby/runtime/ThreadContext;ILorg/jruby/runtime/builtin/IRubyObject;)Lorg/jruby/runtime/builtin/IRubyObject;
            astore 7 /* str */
        31: .line 1875
            bipush 48
            istore 6 /* cr */
        32: .line 1876
            goto 38
        33: .line 1877
      StackMap locals:
      StackMap stack:
            aload 0 /* this */
            aload 1 /* context */
            iload 4 /* r */
            invokestatic org.jruby.util.StringSupport.MBCLEN_CHARFOUND_LEN:(I)I
            aload 7 /* str */
            invokevirtual org.jruby.util.io.OpenFile.shiftCbuf:(Lorg/jruby/runtime/ThreadContext;ILorg/jruby/runtime/builtin/IRubyObject;)Lorg/jruby/runtime/builtin/IRubyObject;
            astore 7 /* str */
        34: .line 1878
            bipush 32
            istore 6 /* cr */
        35: .line 1879
            iload 4 /* r */
            invokestatic org.jruby.util.StringSupport.MBCLEN_CHARFOUND_LEN:(I)I
            iconst_1
            if_icmpne 38
            aload 9 /* read_enc */
            invokevirtual org.jcodings.Encoding.isAsciiCompatible:()Z
            ifeq 38
        36: .line 1880
            aload 7 /* str */
            checkcast org.jruby.RubyString
            invokevirtual org.jruby.RubyString.getByteList:()Lorg/jruby/util/ByteList;
            iconst_0
            invokevirtual org.jruby.util.ByteList.get:(I)I
            invokestatic org.jcodings.Encoding.isAscii:(I)Z
            ifeq 38
        37: .line 1881
            bipush 16
            istore 6 /* cr */
        38: .line 1884
      StackMap locals:
      StackMap stack:
            aload 3 /* runtime */
            aload 7 /* str */
            aload 0 /* this */
            invokestatic org.jruby.util.io.EncodingUtils.ioEncStr:(Lorg/jruby/Ruby;Lorg/jruby/runtime/builtin/IRubyObject;Lorg/jruby/util/io/OpenFile;)Lorg/jruby/runtime/builtin/IRubyObject;
            astore 7 /* str */
        39: .line 1886
            aload 7 /* str */
            checkcast org.jruby.RubyString
            iload 6 /* cr */
            invokevirtual org.jruby.RubyString.setCodeRange:(I)V
        40: .line 1888
            aload 7 /* str */
            astore 11
        41: .line 1939
            iload 8 /* locked */
            ifeq 42
            aload 0 /* this */
            invokevirtual org.jruby.util.io.OpenFile.unlock:()V
        42: .line 1888
      StackMap locals: org.jruby.util.io.OpenFile org.jruby.runtime.ThreadContext org.jcodings.Encoding org.jruby.Ruby int top int org.jruby.runtime.builtin.IRubyObject int org.jcodings.Encoding top org.jruby.runtime.builtin.IRubyObject
      StackMap stack:
            aload 11
            areturn
        end local 9 // org.jcodings.Encoding read_enc
        end local 7 // org.jruby.runtime.builtin.IRubyObject str
        end local 4 // int r
        43: .line 1891
      StackMap locals: org.jruby.util.io.OpenFile org.jruby.runtime.ThreadContext org.jcodings.Encoding org.jruby.Ruby top top int top int
      StackMap stack:
            aload 0 /* this */
            invokevirtual org.jruby.util.io.OpenFile.NEED_NEWLINE_DECORATOR_ON_READ_CHECK:()V
        44: .line 1892
            aload 0 /* this */
            aload 1 /* context */
            invokevirtual org.jruby.util.io.OpenFile.fillbuf:(Lorg/jruby/runtime/ThreadContext;)I
            ifge 48
        45: .line 1893
            aload 1 /* context */
            getfield org.jruby.runtime.ThreadContext.nil:Lorg/jruby/runtime/builtin/IRubyObject;
            astore 11
        46: .line 1939
            iload 8 /* locked */
            ifeq 47
            aload 0 /* this */
            invokevirtual org.jruby.util.io.OpenFile.unlock:()V
        47: .line 1893
      StackMap locals: org.jruby.util.io.OpenFile org.jruby.runtime.ThreadContext org.jcodings.Encoding org.jruby.Ruby top top int top int top top org.jruby.runtime.builtin.IRubyObject
      StackMap stack:
            aload 11
            areturn
        48: .line 1895
      StackMap locals: org.jruby.util.io.OpenFile org.jruby.runtime.ThreadContext org.jcodings.Encoding org.jruby.Ruby top top int top int
      StackMap stack:
            aload 2 /* enc */
            invokevirtual org.jcodings.Encoding.isAsciiCompatible:()Z
            ifeq 54
            aload 0 /* this */
            getfield org.jruby.util.io.OpenFile.rbuf:Lorg/jruby/util/io/OpenFile$Buffer;
            getfield org.jruby.util.io.OpenFile$Buffer.ptr:[B
            aload 0 /* this */
            getfield org.jruby.util.io.OpenFile.rbuf:Lorg/jruby/util/io/OpenFile$Buffer;
            getfield org.jruby.util.io.OpenFile$Buffer.off:I
            baload
            invokestatic org.jcodings.Encoding.isAscii:(B)Z
            ifeq 54
        49: .line 1896
            aload 3 /* runtime */
            aload 0 /* this */
            getfield org.jruby.util.io.OpenFile.rbuf:Lorg/jruby/util/io/OpenFile$Buffer;
            getfield org.jruby.util.io.OpenFile$Buffer.ptr:[B
            aload 0 /* this */
            getfield org.jruby.util.io.OpenFile.rbuf:Lorg/jruby/util/io/OpenFile$Buffer;
            getfield org.jruby.util.io.OpenFile$Buffer.off:I
            iconst_1
            invokestatic org.jruby.RubyString.newString:(Lorg/jruby/Ruby;[BII)Lorg/jruby/RubyString;
            astore 7 /* str */
        start local 7 // org.jruby.runtime.builtin.IRubyObject str
        50: .line 1897
            aload 0 /* this */
            getfield org.jruby.util.io.OpenFile.rbuf:Lorg/jruby/util/io/OpenFile$Buffer;
            dup
            getfield org.jruby.util.io.OpenFile$Buffer.off:I
            iconst_1
            iadd
            putfield org.jruby.util.io.OpenFile$Buffer.off:I
        51: .line 1898
            aload 0 /* this */
            getfield org.jruby.util.io.OpenFile.rbuf:Lorg/jruby/util/io/OpenFile$Buffer;
            dup
            getfield org.jruby.util.io.OpenFile$Buffer.len:I
            iconst_1
            isub
            putfield org.jruby.util.io.OpenFile$Buffer.len:I
        52: .line 1899
            bipush 16
            istore 6 /* cr */
        53: .line 1900
            goto 80
        end local 7 // org.jruby.runtime.builtin.IRubyObject str
        54: .line 1902
      StackMap locals:
      StackMap stack:
            aload 2 /* enc */
            aload 0 /* this */
            getfield org.jruby.util.io.OpenFile.rbuf:Lorg/jruby/util/io/OpenFile$Buffer;
            getfield org.jruby.util.io.OpenFile$Buffer.ptr:[B
            aload 0 /* this */
            getfield org.jruby.util.io.OpenFile.rbuf:Lorg/jruby/util/io/OpenFile$Buffer;
            getfield org.jruby.util.io.OpenFile$Buffer.off:I
            aload 0 /* this */
            getfield org.jruby.util.io.OpenFile.rbuf:Lorg/jruby/util/io/OpenFile$Buffer;
            getfield org.jruby.util.io.OpenFile$Buffer.off:I
            aload 0 /* this */
            getfield org.jruby.util.io.OpenFile.rbuf:Lorg/jruby/util/io/OpenFile$Buffer;
            getfield org.jruby.util.io.OpenFile$Buffer.len:I
            iadd
            invokestatic org.jruby.util.StringSupport.preciseLength:(Lorg/jcodings/Encoding;[BII)I
            istore 4 /* r */
        start local 4 // int r
        55: .line 1903
            iload 4 /* r */
            invokestatic org.jruby.util.StringSupport.MBCLEN_CHARFOUND_P:(I)Z
            ifeq 63
        56: .line 1904
            iload 4 /* r */
            invokestatic org.jruby.util.StringSupport.MBCLEN_CHARFOUND_LEN:(I)I
            dup
            istore 5 /* n */
        start local 5 // int n
        57: aload 0 /* this */
            getfield org.jruby.util.io.OpenFile.rbuf:Lorg/jruby/util/io/OpenFile$Buffer;
            getfield org.jruby.util.io.OpenFile$Buffer.len:I
            if_icmpgt 63
        58: .line 1905
            aload 3 /* runtime */
            aload 0 /* this */
            getfield org.jruby.util.io.OpenFile.rbuf:Lorg/jruby/util/io/OpenFile$Buffer;
            getfield org.jruby.util.io.OpenFile$Buffer.ptr:[B
            aload 0 /* this */
            getfield org.jruby.util.io.OpenFile.rbuf:Lorg/jruby/util/io/OpenFile$Buffer;
            getfield org.jruby.util.io.OpenFile$Buffer.off:I
            iload 5 /* n */
            invokestatic org.jruby.RubyString.newString:(Lorg/jruby/Ruby;[BII)Lorg/jruby/RubyString;
            astore 7 /* str */
        start local 7 // org.jruby.runtime.builtin.IRubyObject str
        59: .line 1906
            aload 0 /* this */
            getfield org.jruby.util.io.OpenFile.rbuf:Lorg/jruby/util/io/OpenFile$Buffer;
            dup
            getfield org.jruby.util.io.OpenFile$Buffer.off:I
            iload 5 /* n */
            iadd
            putfield org.jruby.util.io.OpenFile$Buffer.off:I
        60: .line 1907
            aload 0 /* this */
            getfield org.jruby.util.io.OpenFile.rbuf:Lorg/jruby/util/io/OpenFile$Buffer;
            dup
            getfield org.jruby.util.io.OpenFile$Buffer.len:I
            iload 5 /* n */
            isub
            putfield org.jruby.util.io.OpenFile$Buffer.len:I
        61: .line 1908
            bipush 32
            istore 6 /* cr */
        62: .line 1909
            goto 80
        end local 7 // org.jruby.runtime.builtin.IRubyObject str
        end local 5 // int n
        63: .line 1910
      StackMap locals: org.jruby.util.io.OpenFile org.jruby.runtime.ThreadContext org.jcodings.Encoding org.jruby.Ruby int top int top int
      StackMap stack:
            iload 4 /* r */
            invokestatic org.jruby.util.StringSupport.MBCLEN_NEEDMORE_P:(I)Z
            ifeq 77
        64: .line 1911
            aload 3 /* runtime */
            aload 0 /* this */
            getfield org.jruby.util.io.OpenFile.rbuf:Lorg/jruby/util/io/OpenFile$Buffer;
            getfield org.jruby.util.io.OpenFile$Buffer.ptr:[B
            aload 0 /* this */
            getfield org.jruby.util.io.OpenFile.rbuf:Lorg/jruby/util/io/OpenFile$Buffer;
            getfield org.jruby.util.io.OpenFile$Buffer.off:I
            aload 0 /* this */
            getfield org.jruby.util.io.OpenFile.rbuf:Lorg/jruby/util/io/OpenFile$Buffer;
            getfield org.jruby.util.io.OpenFile$Buffer.len:I
            invokestatic org.jruby.RubyString.newString:(Lorg/jruby/Ruby;[BII)Lorg/jruby/RubyString;
            astore 7 /* str */
        start local 7 // org.jruby.runtime.builtin.IRubyObject str
        65: .line 1912
            aload 0 /* this */
            getfield org.jruby.util.io.OpenFile.rbuf:Lorg/jruby/util/io/OpenFile$Buffer;
            iconst_0
            putfield org.jruby.util.io.OpenFile$Buffer.len:I
        66: .line 1914
      StackMap locals: org.jruby.util.io.OpenFile org.jruby.runtime.ThreadContext org.jcodings.Encoding org.jruby.Ruby int top int org.jruby.runtime.builtin.IRubyObject int
      StackMap stack:
            aload 0 /* this */
            aload 1 /* context */
            invokevirtual org.jruby.util.io.OpenFile.fillbuf:(Lorg/jruby/runtime/ThreadContext;)I
            iconst_m1
            if_icmpeq 80
        67: .line 1915
            aload 7 /* str */
            checkcast org.jruby.RubyString
            aload 0 /* this */
            getfield org.jruby.util.io.OpenFile.rbuf:Lorg/jruby/util/io/OpenFile$Buffer;
            getfield org.jruby.util.io.OpenFile$Buffer.ptr:[B
            aload 0 /* this */
            getfield org.jruby.util.io.OpenFile.rbuf:Lorg/jruby/util/io/OpenFile$Buffer;
            getfield org.jruby.util.io.OpenFile$Buffer.off:I
            baload
            invokevirtual org.jruby.RubyString.cat:(B)Lorg/jruby/RubyString;
            pop
        68: .line 1916
            aload 0 /* this */
            getfield org.jruby.util.io.OpenFile.rbuf:Lorg/jruby/util/io/OpenFile$Buffer;
            dup
            getfield org.jruby.util.io.OpenFile$Buffer.off:I
            iconst_1
            iadd
            putfield org.jruby.util.io.OpenFile$Buffer.off:I
        69: .line 1917
            aload 0 /* this */
            getfield org.jruby.util.io.OpenFile.rbuf:Lorg/jruby/util/io/OpenFile$Buffer;
            dup
            getfield org.jruby.util.io.OpenFile$Buffer.len:I
            iconst_1
            isub
            putfield org.jruby.util.io.OpenFile$Buffer.len:I
        70: .line 1918
            aload 7 /* str */
            checkcast org.jruby.RubyString
            invokevirtual org.jruby.RubyString.getByteList:()Lorg/jruby/util/ByteList;
            astore 9 /* strByteList */
        start local 9 // org.jruby.util.ByteList strByteList
        71: .line 1919
            aload 2 /* enc */
            aload 9 /* strByteList */
            invokevirtual org.jruby.util.ByteList.unsafeBytes:()[B
            aload 9 /* strByteList */
            invokevirtual org.jruby.util.ByteList.getBegin:()I
            aload 9 /* strByteList */
            invokevirtual org.jruby.util.ByteList.getBegin:()I
            aload 9 /* strByteList */
            invokevirtual org.jruby.util.ByteList.length:()I
            iadd
            invokestatic org.jruby.util.StringSupport.preciseLength:(Lorg/jcodings/Encoding;[BII)I
            istore 4 /* r */
        72: .line 1920
            iload 4 /* r */
            invokestatic org.jruby.util.StringSupport.MBCLEN_NEEDMORE_P:(I)Z
            ifeq 74
        73: .line 1921
            goto 66
        74: .line 1923
      StackMap locals: org.jruby.util.ByteList
      StackMap stack:
            iload 4 /* r */
            invokestatic org.jruby.util.StringSupport.MBCLEN_CHARFOUND_P:(I)Z
            ifeq 80
        75: .line 1924
            bipush 32
            istore 6 /* cr */
        end local 9 // org.jruby.util.ByteList strByteList
        76: .line 1929
            goto 80
        end local 7 // org.jruby.runtime.builtin.IRubyObject str
        77: .line 1931
      StackMap locals: org.jruby.util.io.OpenFile org.jruby.runtime.ThreadContext org.jcodings.Encoding org.jruby.Ruby int top int top int
      StackMap stack:
            aload 3 /* runtime */
            aload 0 /* this */
            getfield org.jruby.util.io.OpenFile.rbuf:Lorg/jruby/util/io/OpenFile$Buffer;
            getfield org.jruby.util.io.OpenFile$Buffer.ptr:[B
            aload 0 /* this */
            getfield org.jruby.util.io.OpenFile.rbuf:Lorg/jruby/util/io/OpenFile$Buffer;
            getfield org.jruby.util.io.OpenFile$Buffer.off:I
            iconst_1
            invokestatic org.jruby.RubyString.newString:(Lorg/jruby/Ruby;[BII)Lorg/jruby/RubyString;
            astore 7 /* str */
        start local 7 // org.jruby.runtime.builtin.IRubyObject str
        78: .line 1932
            aload 0 /* this */
            getfield org.jruby.util.io.OpenFile.rbuf:Lorg/jruby/util/io/OpenFile$Buffer;
            dup
            getfield org.jruby.util.io.OpenFile$Buffer.off:I
            iconst_1
            iadd
            putfield org.jruby.util.io.OpenFile$Buffer.off:I
        79: .line 1933
            aload 0 /* this */
            getfield org.jruby.util.io.OpenFile.rbuf:Lorg/jruby/util/io/OpenFile$Buffer;
            dup
            getfield org.jruby.util.io.OpenFile$Buffer.len:I
            iconst_1
            isub
            putfield org.jruby.util.io.OpenFile$Buffer.len:I
        end local 4 // int r
        80: .line 1936
      StackMap locals: org.jruby.util.io.OpenFile org.jruby.runtime.ThreadContext org.jcodings.Encoding org.jruby.Ruby top top int org.jruby.runtime.builtin.IRubyObject int
      StackMap stack:
            iload 6 /* cr */
            ifne 81
            bipush 48
            istore 6 /* cr */
        81: .line 1937
      StackMap locals:
      StackMap stack:
            aload 3 /* runtime */
            aload 7 /* str */
            aload 0 /* this */
            invokestatic org.jruby.util.io.EncodingUtils.ioEncStr:(Lorg/jruby/Ruby;Lorg/jruby/runtime/builtin/IRubyObject;Lorg/jruby/util/io/OpenFile;)Lorg/jruby/runtime/builtin/IRubyObject;
            astore 7 /* str */
        82: .line 1938
            goto 86
        end local 7 // org.jruby.runtime.builtin.IRubyObject str
      StackMap locals: org.jruby.util.io.OpenFile org.jruby.runtime.ThreadContext org.jcodings.Encoding org.jruby.Ruby top top int top int
      StackMap stack: java.lang.Throwable
        83: astore 10
        84: .line 1939
            iload 8 /* locked */
            ifeq 85
            aload 0 /* this */
            invokevirtual org.jruby.util.io.OpenFile.unlock:()V
        85: .line 1940
      StackMap locals: org.jruby.util.io.OpenFile org.jruby.runtime.ThreadContext org.jcodings.Encoding org.jruby.Ruby top top int top int top java.lang.Throwable
      StackMap stack:
            aload 10
            athrow
        start local 7 // org.jruby.runtime.builtin.IRubyObject str
        86: .line 1939
      StackMap locals: org.jruby.util.io.OpenFile org.jruby.runtime.ThreadContext org.jcodings.Encoding org.jruby.Ruby top top int org.jruby.runtime.builtin.IRubyObject int
      StackMap stack:
            iload 8 /* locked */
            ifeq 87
            aload 0 /* this */
            invokevirtual org.jruby.util.io.OpenFile.unlock:()V
        87: .line 1942
      StackMap locals:
      StackMap stack:
            aload 7 /* str */
            checkcast org.jruby.RubyString
            iload 6 /* cr */
            invokevirtual org.jruby.RubyString.setCodeRange:(I)V
        88: .line 1944
            aload 7 /* str */
            areturn
        end local 8 // boolean locked
        end local 7 // org.jruby.runtime.builtin.IRubyObject str
        end local 6 // int cr
        end local 3 // org.jruby.Ruby runtime
        end local 2 // org.jcodings.Encoding enc
        end local 1 // org.jruby.runtime.ThreadContext context
        end local 0 // org.jruby.util.io.OpenFile this
      LocalVariableTable:
        Start  End  Slot         Name  Signature
            0   89     0         this  Lorg/jruby/util/io/OpenFile;
            0   89     1      context  Lorg/jruby/runtime/ThreadContext;
            0   89     2          enc  Lorg/jcodings/Encoding;
            1   89     3      runtime  Lorg/jruby/Ruby;
           10   14     4            r  I
           28   43     4            r  I
           55   80     4            r  I
           57   63     5            n  I
            2   89     6           cr  I
            5   43     7          str  Lorg/jruby/runtime/builtin/IRubyObject;
           50   54     7          str  Lorg/jruby/runtime/builtin/IRubyObject;
           59   63     7          str  Lorg/jruby/runtime/builtin/IRubyObject;
           65   77     7          str  Lorg/jruby/runtime/builtin/IRubyObject;
           78   83     7          str  Lorg/jruby/runtime/builtin/IRubyObject;
           86   89     7          str  Lorg/jruby/runtime/builtin/IRubyObject;
            3   89     8       locked  Z
            6   43     9     read_enc  Lorg/jcodings/Encoding;
           71   76     9  strByteList  Lorg/jruby/util/ByteList;
      Exception table:
        from    to  target  type
           3    18      83  any
          20    26      83  any
          28    41      83  any
          43    46      83  any
          48    83      83  any
    MethodParameters:
         Name  Flags
      context  
      enc      

  public synchronized long tell(org.jruby.runtime.ThreadContext);
    descriptor: (Lorg/jruby/runtime/ThreadContext;)J
    flags: (0x0021) ACC_PUBLIC, ACC_SYNCHRONIZED
    Code:
      stack=5, locals=2, args_size=2
        start local 0 // org.jruby.util.io.OpenFile this
        start local 1 // org.jruby.runtime.ThreadContext context
         0: .line 1949
            aload 0 /* this */
            aload 1 /* context */
            invokevirtual org.jruby.util.io.OpenFile.flushBeforeSeek:(Lorg/jruby/runtime/ThreadContext;)V
         1: .line 1950
            aload 0 /* this */
            getfield org.jruby.util.io.OpenFile.posix:Lorg/jruby/util/io/PosixShim;
            aload 0 /* this */
            getfield org.jruby.util.io.OpenFile.fd:Lorg/jruby/util/io/ChannelFD;
            lconst_0
            iconst_1
            invokevirtual org.jruby.util.io.PosixShim.lseek:(Lorg/jruby/util/io/ChannelFD;JI)J
            lreturn
        end local 1 // org.jruby.runtime.ThreadContext context
        end local 0 // org.jruby.util.io.OpenFile this
      LocalVariableTable:
        Start  End  Slot     Name  Signature
            0    2     0     this  Lorg/jruby/util/io/OpenFile;
            0    2     1  context  Lorg/jruby/runtime/ThreadContext;
    MethodParameters:
         Name  Flags
      context  

  public synchronized void unread(org.jruby.runtime.ThreadContext);
    descriptor: (Lorg/jruby/runtime/ThreadContext;)V
    flags: (0x0021) ACC_PUBLIC, ACC_SYNCHRONIZED
    Code:
      stack=2, locals=2, args_size=2
        start local 0 // org.jruby.util.io.OpenFile this
        start local 1 // org.jruby.runtime.ThreadContext context
         0: .line 1954
            getstatic org.jruby.platform.Platform.IS_WINDOWS:Z
            ifeq 3
         1: .line 1955
            aload 0 /* this */
            aload 1 /* context */
            invokevirtual org.jruby.util.io.OpenFile.unreadWindows:(Lorg/jruby/runtime/ThreadContext;)V
         2: .line 1956
            goto 4
         3: .line 1957
      StackMap locals:
      StackMap stack:
            aload 0 /* this */
            invokevirtual org.jruby.util.io.OpenFile.unreadPosix:()V
         4: .line 1959
      StackMap locals:
      StackMap stack:
            return
        end local 1 // org.jruby.runtime.ThreadContext context
        end local 0 // org.jruby.util.io.OpenFile this
      LocalVariableTable:
        Start  End  Slot     Name  Signature
            0    5     0     this  Lorg/jruby/util/io/OpenFile;
            0    5     1  context  Lorg/jruby/runtime/ThreadContext;
    MethodParameters:
         Name  Flags
      context  

  private void unreadPosix();
    descriptor: ()V
    flags: (0x0002) ACC_PRIVATE
    Code:
      stack=5, locals=5, args_size=1
        start local 0 // org.jruby.util.io.OpenFile this
         0: .line 1964
            aload 0 /* this */
            invokevirtual org.jruby.util.io.OpenFile.lock:()Z
            istore 3 /* locked */
        start local 3 // boolean locked
         1: .line 1966
            aload 0 /* this */
            invokevirtual org.jruby.util.io.OpenFile.checkClosed:()V
         2: .line 1967
            aload 0 /* this */
            getfield org.jruby.util.io.OpenFile.rbuf:Lorg/jruby/util/io/OpenFile$Buffer;
            getfield org.jruby.util.io.OpenFile$Buffer.len:I
            ifeq 3
            aload 0 /* this */
            getfield org.jruby.util.io.OpenFile.mode:I
            bipush 32
            iand
            ifeq 5
         3: .line 1980
      StackMap locals: org.jruby.util.io.OpenFile top top int
      StackMap stack:
            iload 3 /* locked */
            ifeq 4
            aload 0 /* this */
            invokevirtual org.jruby.util.io.OpenFile.unlock:()V
         4: .line 1968
      StackMap locals:
      StackMap stack:
            return
         5: .line 1970
      StackMap locals:
      StackMap stack:
            aload 0 /* this */
            getfield org.jruby.util.io.OpenFile.posix:Lorg/jruby/util/io/PosixShim;
            aconst_null
            invokevirtual org.jruby.util.io.PosixShim.setErrno:(Ljnr/constants/platform/Errno;)V
         6: .line 1971
            aload 0 /* this */
            getfield org.jruby.util.io.OpenFile.posix:Lorg/jruby/util/io/PosixShim;
            aload 0 /* this */
            getfield org.jruby.util.io.OpenFile.fd:Lorg/jruby/util/io/ChannelFD;
            aload 0 /* this */
            getfield org.jruby.util.io.OpenFile.rbuf:Lorg/jruby/util/io/OpenFile$Buffer;
            getfield org.jruby.util.io.OpenFile$Buffer.len:I
            ineg
            i2l
            iconst_1
            invokevirtual org.jruby.util.io.PosixShim.lseek:(Lorg/jruby/util/io/ChannelFD;JI)J
            lstore 1 /* r */
        start local 1 // long r
         7: .line 1972
            lload 1 /* r */
            ldc -1
            lcmp
            ifne 12
            aload 0 /* this */
            getfield org.jruby.util.io.OpenFile.posix:Lorg/jruby/util/io/PosixShim;
            invokevirtual org.jruby.util.io.PosixShim.getErrno:()Ljnr/constants/platform/Errno;
            ifnull 12
         8: .line 1973
            aload 0 /* this */
            getfield org.jruby.util.io.OpenFile.posix:Lorg/jruby/util/io/PosixShim;
            invokevirtual org.jruby.util.io.PosixShim.getErrno:()Ljnr/constants/platform/Errno;
            getstatic jnr.constants.platform.Errno.ESPIPE:Ljnr/constants/platform/Errno;
            if_acmpne 10
         9: .line 1974
            aload 0 /* this */
            dup
            getfield org.jruby.util.io.OpenFile.mode:I
            bipush 32
            ior
            putfield org.jruby.util.io.OpenFile.mode:I
        10: .line 1980
      StackMap locals: org.jruby.util.io.OpenFile long int
      StackMap stack:
            iload 3 /* locked */
            ifeq 11
            aload 0 /* this */
            invokevirtual org.jruby.util.io.OpenFile.unlock:()V
        11: .line 1975
      StackMap locals:
      StackMap stack:
            return
        12: .line 1977
      StackMap locals:
      StackMap stack:
            aload 0 /* this */
            getfield org.jruby.util.io.OpenFile.rbuf:Lorg/jruby/util/io/OpenFile$Buffer;
            iconst_0
            putfield org.jruby.util.io.OpenFile$Buffer.off:I
        13: .line 1978
            aload 0 /* this */
            getfield org.jruby.util.io.OpenFile.rbuf:Lorg/jruby/util/io/OpenFile$Buffer;
            iconst_0
            putfield org.jruby.util.io.OpenFile$Buffer.len:I
        14: .line 1979
            goto 18
        end local 1 // long r
      StackMap locals: org.jruby.util.io.OpenFile top top int
      StackMap stack: java.lang.Throwable
        15: astore 4
        16: .line 1980
            iload 3 /* locked */
            ifeq 17
            aload 0 /* this */
            invokevirtual org.jruby.util.io.OpenFile.unlock:()V
        17: .line 1981
      StackMap locals: java.lang.Throwable
      StackMap stack:
            aload 4
            athrow
        start local 1 // long r
        18: .line 1980
      StackMap locals: org.jruby.util.io.OpenFile long int
      StackMap stack:
            iload 3 /* locked */
            ifeq 19
            aload 0 /* this */
            invokevirtual org.jruby.util.io.OpenFile.unlock:()V
        19: .line 1982
      StackMap locals:
      StackMap stack:
            return
        end local 3 // boolean locked
        end local 1 // long r
        end local 0 // org.jruby.util.io.OpenFile this
      LocalVariableTable:
        Start  End  Slot    Name  Signature
            0   20     0    this  Lorg/jruby/util/io/OpenFile;
            7   15     1       r  J
           18   20     1       r  J
            1   20     3  locked  Z
      Exception table:
        from    to  target  type
           1     3      15  any
           5    10      15  any
          12    15      15  any

  private void unreadWindows(org.jruby.runtime.ThreadContext);
    descriptor: (Lorg/jruby/runtime/ThreadContext;)V
    flags: (0x0002) ACC_PRIVATE
    Code:
      stack=7, locals=19, args_size=2
        start local 0 // org.jruby.util.io.OpenFile this
        start local 1 // org.jruby.runtime.ThreadContext context
         0: .line 1986
            aload 1 /* context */
            getfield org.jruby.runtime.ThreadContext.runtime:Lorg/jruby/Ruby;
            astore 2 /* runtime */
        start local 2 // org.jruby.Ruby runtime
         1: .line 1990
            iconst_0
            istore 10 /* newlines */
        start local 10 // int newlines
         2: .line 1995
            iconst_0
            istore 16 /* buf */
        start local 16 // int buf
         3: .line 1997
            aload 0 /* this */
            invokevirtual org.jruby.util.io.OpenFile.lock:()Z
            istore 17 /* locked */
        start local 17 // boolean locked
         4: .line 1999
            aload 0 /* this */
            invokevirtual org.jruby.util.io.OpenFile.checkClosed:()V
         5: .line 2000
            aload 0 /* this */
            getfield org.jruby.util.io.OpenFile.rbuf:Lorg/jruby/util/io/OpenFile$Buffer;
            getfield org.jruby.util.io.OpenFile$Buffer.len:I
            ifeq 6
            aload 0 /* this */
            getfield org.jruby.util.io.OpenFile.mode:I
            bipush 32
            iand
            ifeq 8
         6: .line 2063
      StackMap locals: org.jruby.util.io.OpenFile org.jruby.runtime.ThreadContext org.jruby.Ruby top top top top top top top int top top top top top int int
      StackMap stack:
            iload 17 /* locked */
            ifeq 7
            aload 0 /* this */
            invokevirtual org.jruby.util.io.OpenFile.unlock:()V
         7: .line 2001
      StackMap locals:
      StackMap stack:
            return
         8: .line 2018
      StackMap locals:
      StackMap stack:
            aload 0 /* this */
            getfield org.jruby.util.io.OpenFile.posix:Lorg/jruby/util/io/PosixShim;
            aload 0 /* this */
            getfield org.jruby.util.io.OpenFile.fd:Lorg/jruby/util/io/ChannelFD;
            lconst_0
            iconst_1
            invokevirtual org.jruby.util.io.PosixShim.lseek:(Lorg/jruby/util/io/ChannelFD;JI)J
            lstore 5 /* pos */
        start local 5 // long pos
         9: .line 2019
            lload 5 /* pos */
            ldc -1
            lcmp
            ifne 14
            aload 0 /* this */
            getfield org.jruby.util.io.OpenFile.posix:Lorg/jruby/util/io/PosixShim;
            invokevirtual org.jruby.util.io.PosixShim.getErrno:()Ljnr/constants/platform/Errno;
            ifnull 14
        10: .line 2020
            aload 0 /* this */
            getfield org.jruby.util.io.OpenFile.posix:Lorg/jruby/util/io/PosixShim;
            invokevirtual org.jruby.util.io.PosixShim.getErrno:()Ljnr/constants/platform/Errno;
            getstatic jnr.constants.platform.Errno.ESPIPE:Ljnr/constants/platform/Errno;
            if_acmpne 12
        11: .line 2021
            aload 0 /* this */
            dup
            getfield org.jruby.util.io.OpenFile.mode:I
            bipush 32
            ior
            putfield org.jruby.util.io.OpenFile.mode:I
        12: .line 2063
      StackMap locals: org.jruby.util.io.OpenFile org.jruby.runtime.ThreadContext org.jruby.Ruby top top long top top top int top top top top top int int
      StackMap stack:
            iload 17 /* locked */
            ifeq 13
            aload 0 /* this */
            invokevirtual org.jruby.util.io.OpenFile.unlock:()V
        13: .line 2022
      StackMap locals:
      StackMap stack:
            return
        14: .line 2026
      StackMap locals:
      StackMap stack:
            lload 5 /* pos */
            aload 0 /* this */
            getfield org.jruby.util.io.OpenFile.rbuf:Lorg/jruby/util/io/OpenFile$Buffer;
            getfield org.jruby.util.io.OpenFile$Buffer.len:I
            i2l
            lsub
            lstore 11 /* extra_max */
        start local 11 // long extra_max
        15: .line 2027
            aload 0 /* this */
            getfield org.jruby.util.io.OpenFile.rbuf:Lorg/jruby/util/io/OpenFile$Buffer;
            getfield org.jruby.util.io.OpenFile$Buffer.ptr:[B
            astore 13 /* pBytes */
        start local 13 // byte[] pBytes
        16: .line 2028
            aload 0 /* this */
            getfield org.jruby.util.io.OpenFile.rbuf:Lorg/jruby/util/io/OpenFile$Buffer;
            getfield org.jruby.util.io.OpenFile$Buffer.off:I
            istore 14 /* p */
        start local 14 // int p
        17: .line 2031
            aload 0 /* this */
            getfield org.jruby.util.io.OpenFile.rbuf:Lorg/jruby/util/io/OpenFile$Buffer;
            getfield org.jruby.util.io.OpenFile$Buffer.ptr:[B
            aload 0 /* this */
            getfield org.jruby.util.io.OpenFile.rbuf:Lorg/jruby/util/io/OpenFile$Buffer;
            getfield org.jruby.util.io.OpenFile$Buffer.capa:I
            iconst_1
            isub
            baload
            bipush 13
            if_icmpne 19
        18: .line 2032
            iinc 10 /* newlines */ 1
        19: .line 2035
      StackMap locals: org.jruby.util.io.OpenFile org.jruby.runtime.ThreadContext org.jruby.Ruby top top long top top top int long byte[] int top int int
      StackMap stack:
            lconst_0
            lstore 8 /* i */
        start local 8 // long i
        20: goto 25
        21: .line 2036
      StackMap locals: org.jruby.util.io.OpenFile org.jruby.runtime.ThreadContext org.jruby.Ruby top top long top long int long byte[] int top int int
      StackMap stack:
            aload 13 /* pBytes */
            iload 14 /* p */
            baload
            bipush 10
            if_icmpne 22
            iinc 10 /* newlines */ 1
        22: .line 2037
      StackMap locals:
      StackMap stack:
            lload 11 /* extra_max */
            iload 10 /* newlines */
            i2l
            lcmp
            ifne 23
            goto 26
        23: .line 2038
      StackMap locals:
      StackMap stack:
            iinc 14 /* p */ 1
        24: .line 2035
            lload 8 /* i */
            lconst_1
            ladd
            lstore 8 /* i */
      StackMap locals:
      StackMap stack:
        25: lload 8 /* i */
            aload 0 /* this */
            getfield org.jruby.util.io.OpenFile.rbuf:Lorg/jruby/util/io/OpenFile$Buffer;
            getfield org.jruby.util.io.OpenFile$Buffer.len:I
            i2l
            lcmp
            iflt 21
        26: .line 2041
      StackMap locals:
      StackMap stack:
            aload 0 /* this */
            getfield org.jruby.util.io.OpenFile.rbuf:Lorg/jruby/util/io/OpenFile$Buffer;
            getfield org.jruby.util.io.OpenFile$Buffer.len:I
            iload 10 /* newlines */
            iadd
            newarray 8
            astore 15 /* bufBytes */
        start local 15 // byte[] bufBytes
        27: .line 2042
            goto 40
        28: .line 2043
      StackMap locals: org.jruby.util.io.OpenFile org.jruby.runtime.ThreadContext org.jruby.Ruby top top long top long int long byte[] int byte[] int int
      StackMap stack:
            aload 0 /* this */
            getfield org.jruby.util.io.OpenFile.posix:Lorg/jruby/util/io/PosixShim;
            aload 0 /* this */
            getfield org.jruby.util.io.OpenFile.fd:Lorg/jruby/util/io/ChannelFD;
            lload 5 /* pos */
            aload 0 /* this */
            getfield org.jruby.util.io.OpenFile.rbuf:Lorg/jruby/util/io/OpenFile$Buffer;
            getfield org.jruby.util.io.OpenFile$Buffer.len:I
            i2l
            lsub
            iload 10 /* newlines */
            i2l
            lsub
            iconst_0
            invokevirtual org.jruby.util.io.PosixShim.lseek:(Lorg/jruby/util/io/ChannelFD;JI)J
            lstore 3 /* r */
        start local 3 // long r
        29: .line 2044
            iload 10 /* newlines */
            ifne 30
            goto 41
        30: .line 2045
      StackMap locals: org.jruby.util.io.OpenFile org.jruby.runtime.ThreadContext org.jruby.Ruby long long top long int long byte[] int byte[] int int
      StackMap stack:
            lload 3 /* r */
            ldc -1
            lcmp
            ifne 33
        31: .line 2046
            iinc 10 /* newlines */ -1
        32: .line 2047
            goto 40
        33: .line 2049
      StackMap locals:
      StackMap stack:
            aload 1 /* context */
            aload 0 /* this */
            aload 0 /* this */
            getfield org.jruby.util.io.OpenFile.fd:Lorg/jruby/util/io/ChannelFD;
            aload 15 /* bufBytes */
            iload 16 /* buf */
            aload 0 /* this */
            getfield org.jruby.util.io.OpenFile.rbuf:Lorg/jruby/util/io/OpenFile$Buffer;
            getfield org.jruby.util.io.OpenFile$Buffer.len:I
            iload 10 /* newlines */
            iadd
            invokestatic org.jruby.util.io.OpenFile.readInternal:(Lorg/jruby/runtime/ThreadContext;Lorg/jruby/util/io/OpenFile;Lorg/jruby/util/io/ChannelFD;[BII)I
            istore 7 /* read_size */
        start local 7 // int read_size
        34: .line 2050
            iload 7 /* read_size */
            ifge 36
        35: .line 2051
            aload 2 /* runtime */
            aload 0 /* this */
            getfield org.jruby.util.io.OpenFile.posix:Lorg/jruby/util/io/PosixShim;
            invokevirtual org.jruby.util.io.PosixShim.getErrno:()Ljnr/constants/platform/Errno;
            aload 0 /* this */
            getfield org.jruby.util.io.OpenFile.pathv:Ljava/lang/String;
            invokevirtual org.jruby.Ruby.newErrnoFromErrno:(Ljnr/constants/platform/Errno;Ljava/lang/String;)Lorg/jruby/exceptions/RaiseException;
            athrow
        36: .line 2053
      StackMap locals: org.jruby.util.io.OpenFile org.jruby.runtime.ThreadContext org.jruby.Ruby long long int long int long byte[] int byte[] int int
      StackMap stack:
            iload 7 /* read_size */
            aload 0 /* this */
            getfield org.jruby.util.io.OpenFile.rbuf:Lorg/jruby/util/io/OpenFile$Buffer;
            getfield org.jruby.util.io.OpenFile$Buffer.len:I
            if_icmpne 39
        37: .line 2054
            aload 0 /* this */
            getfield org.jruby.util.io.OpenFile.posix:Lorg/jruby/util/io/PosixShim;
            aload 0 /* this */
            getfield org.jruby.util.io.OpenFile.fd:Lorg/jruby/util/io/ChannelFD;
            lload 3 /* r */
            iconst_0
            invokevirtual org.jruby.util.io.PosixShim.lseek:(Lorg/jruby/util/io/ChannelFD;JI)J
            pop2
        38: .line 2055
            goto 41
        39: .line 2057
      StackMap locals:
      StackMap stack:
            iinc 10 /* newlines */ -1
        end local 7 // int read_size
        end local 3 // long r
        40: .line 2042
      StackMap locals: org.jruby.util.io.OpenFile org.jruby.runtime.ThreadContext org.jruby.Ruby top top long top long int long byte[] int byte[] int int
      StackMap stack:
            iload 10 /* newlines */
            ifge 28
        41: .line 2060
      StackMap locals:
      StackMap stack:
            aload 0 /* this */
            getfield org.jruby.util.io.OpenFile.rbuf:Lorg/jruby/util/io/OpenFile$Buffer;
            iconst_0
            putfield org.jruby.util.io.OpenFile$Buffer.off:I
        42: .line 2061
            aload 0 /* this */
            getfield org.jruby.util.io.OpenFile.rbuf:Lorg/jruby/util/io/OpenFile$Buffer;
            iconst_0
            putfield org.jruby.util.io.OpenFile$Buffer.len:I
        43: .line 2062
            goto 47
        end local 15 // byte[] bufBytes
        end local 14 // int p
        end local 13 // byte[] pBytes
        end local 11 // long extra_max
        end local 8 // long i
        end local 5 // long pos
      StackMap locals: org.jruby.util.io.OpenFile org.jruby.runtime.ThreadContext org.jruby.Ruby top top top top top top top int top top top top top int int
      StackMap stack: java.lang.Throwable
        44: astore 18
        45: .line 2063
            iload 17 /* locked */
            ifeq 46
            aload 0 /* this */
            invokevirtual org.jruby.util.io.OpenFile.unlock:()V
        46: .line 2064
      StackMap locals: java.lang.Throwable
      StackMap stack:
            aload 18
            athrow
        start local 5 // long pos
        start local 8 // long i
        start local 11 // long extra_max
        start local 13 // byte[] pBytes
        start local 14 // int p
        start local 15 // byte[] bufBytes
        47: .line 2063
      StackMap locals: org.jruby.util.io.OpenFile org.jruby.runtime.ThreadContext org.jruby.Ruby top top long top long int long byte[] int byte[] int int
      StackMap stack:
            iload 17 /* locked */
            ifeq 48
            aload 0 /* this */
            invokevirtual org.jruby.util.io.OpenFile.unlock:()V
        48: .line 2065
      StackMap locals:
      StackMap stack:
            return
        end local 17 // boolean locked
        end local 16 // int buf
        end local 15 // byte[] bufBytes
        end local 14 // int p
        end local 13 // byte[] pBytes
        end local 11 // long extra_max
        end local 10 // int newlines
        end local 8 // long i
        end local 5 // long pos
        end local 2 // org.jruby.Ruby runtime
        end local 1 // org.jruby.runtime.ThreadContext context
        end local 0 // org.jruby.util.io.OpenFile this
      LocalVariableTable:
        Start  End  Slot       Name  Signature
            0   49     0       this  Lorg/jruby/util/io/OpenFile;
            0   49     1    context  Lorg/jruby/runtime/ThreadContext;
            1   49     2    runtime  Lorg/jruby/Ruby;
           29   40     3          r  J
            9   44     5        pos  J
           47   49     5        pos  J
           34   40     7  read_size  I
           20   44     8          i  J
           47   49     8          i  J
            2   49    10   newlines  I
           15   44    11  extra_max  J
           47   49    11  extra_max  J
           16   44    13     pBytes  [B
           47   49    13     pBytes  [B
           17   44    14          p  I
           47   49    14          p  I
           27   44    15   bufBytes  [B
           47   49    15   bufBytes  [B
            3   49    16        buf  I
            4   49    17     locked  Z
      Exception table:
        from    to  target  type
           4     6      44  any
           8    12      44  any
          14    44      44  any
    MethodParameters:
         Name  Flags
      context  

  public long fwrite(org.jruby.runtime.ThreadContext, org.jruby.runtime.builtin.IRubyObject, boolean);
    descriptor: (Lorg/jruby/runtime/ThreadContext;Lorg/jruby/runtime/builtin/IRubyObject;Z)J
    flags: (0x0001) ACC_PUBLIC
    Code:
      stack=7, locals=5, args_size=4
        start local 0 // org.jruby.util.io.OpenFile this
        start local 1 // org.jruby.runtime.ThreadContext context
        start local 2 // org.jruby.runtime.builtin.IRubyObject str
        start local 3 // boolean nosync
         0: .line 2070
            getstatic org.jruby.platform.Platform.IS_WINDOWS:Z
            ifeq 2
            aload 0 /* this */
            invokevirtual org.jruby.util.io.OpenFile.isStdio:()Z
            ifeq 2
            invokestatic java.lang.System.console:()Ljava/io/Console;
            ifnull 2
         1: .line 2071
            aload 2 /* str */
            checkcast org.jruby.RubyString
            invokestatic org.jruby.util.io.OpenFile.rbW32WriteConsole:(Lorg/jruby/RubyString;)J
            lreturn
         2: .line 2074
      StackMap locals:
      StackMap stack:
            aload 0 /* this */
            aload 1 /* context */
            aload 2 /* str */
            invokevirtual org.jruby.util.io.OpenFile.doWriteconv:(Lorg/jruby/runtime/ThreadContext;Lorg/jruby/runtime/builtin/IRubyObject;)Lorg/jruby/runtime/builtin/IRubyObject;
            astore 2 /* str */
         3: .line 2075
            aload 2 /* str */
            checkcast org.jruby.RubyString
            invokevirtual org.jruby.RubyString.getByteList:()Lorg/jruby/util/ByteList;
            astore 4 /* strByteList */
        start local 4 // org.jruby.util.ByteList strByteList
         4: .line 2076
            aload 0 /* this */
            aload 1 /* context */
            aload 2 /* str */
            aload 4 /* strByteList */
            invokevirtual org.jruby.util.ByteList.unsafeBytes:()[B
            aload 4 /* strByteList */
            invokevirtual org.jruby.util.ByteList.begin:()I
            aload 4 /* strByteList */
            invokevirtual org.jruby.util.ByteList.length:()I
            iload 3 /* nosync */
            invokevirtual org.jruby.util.io.OpenFile.binwrite:(Lorg/jruby/runtime/ThreadContext;Lorg/jruby/runtime/builtin/IRubyObject;[BIIZ)J
            lreturn
        end local 4 // org.jruby.util.ByteList strByteList
        end local 3 // boolean nosync
        end local 2 // org.jruby.runtime.builtin.IRubyObject str
        end local 1 // org.jruby.runtime.ThreadContext context
        end local 0 // org.jruby.util.io.OpenFile this
      LocalVariableTable:
        Start  End  Slot         Name  Signature
            0    5     0         this  Lorg/jruby/util/io/OpenFile;
            0    5     1      context  Lorg/jruby/runtime/ThreadContext;
            0    5     2          str  Lorg/jruby/runtime/builtin/IRubyObject;
            0    5     3       nosync  Z
            4    5     4  strByteList  Lorg/jruby/util/ByteList;
    MethodParameters:
         Name  Flags
      context  
      str      
      nosync   

  public static long rbW32WriteConsole(org.jruby.RubyString);
    descriptor: (Lorg/jruby/RubyString;)J
    flags: (0x0009) ACC_PUBLIC, ACC_STATIC
    Code:
      stack=6, locals=1, args_size=1
        start local 0 // org.jruby.RubyString buffer
         0: .line 2083
            invokestatic java.lang.System.console:()Ljava/io/Console;
            ldc "%s"
            iconst_1
            anewarray java.lang.Object
            dup
            iconst_0
            aload 0 /* buffer */
            invokevirtual org.jruby.RubyString.asJavaString:()Ljava/lang/String;
            aastore
            invokevirtual java.io.Console.printf:(Ljava/lang/String;[Ljava/lang/Object;)Ljava/io/Console;
            pop
         1: .line 2085
            aload 0 /* buffer */
            invokevirtual org.jruby.RubyString.size:()I
            i2l
            lreturn
        end local 0 // org.jruby.RubyString buffer
      LocalVariableTable:
        Start  End  Slot    Name  Signature
            0    2     0  buffer  Lorg/jruby/RubyString;
    MethodParameters:
        Name  Flags
      buffer  

  public org.jruby.runtime.builtin.IRubyObject doWriteconv(org.jruby.runtime.ThreadContext, org.jruby.runtime.builtin.IRubyObject);
    descriptor: (Lorg/jruby/runtime/ThreadContext;Lorg/jruby/runtime/builtin/IRubyObject;)Lorg/jruby/runtime/builtin/IRubyObject;
    flags: (0x0001) ACC_PUBLIC
    Code:
      stack=5, locals=7, args_size=3
        start local 0 // org.jruby.util.io.OpenFile this
        start local 1 // org.jruby.runtime.ThreadContext context
        start local 2 // org.jruby.runtime.builtin.IRubyObject str
         0: .line 2090
            aload 0 /* this */
            invokevirtual org.jruby.util.io.OpenFile.lock:()Z
            istore 3 /* locked */
        start local 3 // boolean locked
         1: .line 2092
            aload 0 /* this */
            aload 1 /* context */
            invokevirtual org.jruby.util.io.OpenFile.needsWriteConversion:(Lorg/jruby/runtime/ThreadContext;)Z
            ifeq 23
         2: .line 2093
            aload 1 /* context */
            getfield org.jruby.runtime.ThreadContext.nil:Lorg/jruby/runtime/builtin/IRubyObject;
            astore 4 /* common_encoding */
        start local 4 // org.jruby.runtime.builtin.IRubyObject common_encoding
         3: .line 2094
            aload 0 /* this */
            invokevirtual org.jruby.util.io.OpenFile.SET_BINARY_MODE:()V
         4: .line 2096
            aload 0 /* this */
            aload 1 /* context */
            invokevirtual org.jruby.util.io.OpenFile.makeWriteConversion:(Lorg/jruby/runtime/ThreadContext;)V
         5: .line 2098
            aload 0 /* this */
            getfield org.jruby.util.io.OpenFile.writeconv:Lorg/jcodings/transcode/EConv;
            ifnull 11
         6: .line 2099
            aload 0 /* this */
            getfield org.jruby.util.io.OpenFile.mode:I
            istore 5 /* fmode */
        start local 5 // int fmode
         7: .line 2100
            aload 0 /* this */
            getfield org.jruby.util.io.OpenFile.writeconvAsciicompat:Lorg/jruby/runtime/builtin/IRubyObject;
            invokeinterface org.jruby.runtime.builtin.IRubyObject.isNil:()Z
            ifne 9
         8: .line 2101
            aload 0 /* this */
            getfield org.jruby.util.io.OpenFile.writeconvAsciicompat:Lorg/jruby/runtime/builtin/IRubyObject;
            astore 4 /* common_encoding */
            goto 15
         9: .line 2102
      StackMap locals: int org.jruby.runtime.builtin.IRubyObject int
      StackMap stack:
            iload 5 /* fmode */
            getstatic org.jruby.util.io.EncodingUtils.DEFAULT_TEXTMODE:I
            iconst_0
            iconst_1
            invokestatic org.jruby.util.io.EncodingUtils.MODE_BTMODE:(IIII)I
            ifeq 15
            aload 2 /* str */
            checkcast org.jruby.RubyString
            invokevirtual org.jruby.RubyString.getEncoding:()Lorg/jcodings/Encoding;
            invokevirtual org.jcodings.Encoding.isAsciiCompatible:()Z
            ifne 15
        10: .line 2103
            aload 1 /* context */
            getfield org.jruby.runtime.ThreadContext.runtime:Lorg/jruby/Ruby;
            new java.lang.StringBuilder
            dup
            ldc "ASCII incompatible string written for text mode IO without encoding conversion: %s"
            invokespecial java.lang.StringBuilder.<init>:(Ljava/lang/String;)V
            aload 2 /* str */
            checkcast org.jruby.RubyString
            invokevirtual org.jruby.RubyString.getEncoding:()Lorg/jcodings/Encoding;
            invokevirtual org.jcodings.Encoding.toString:()Ljava/lang/String;
            invokevirtual java.lang.StringBuilder.append:(Ljava/lang/String;)Ljava/lang/StringBuilder;
            invokevirtual java.lang.StringBuilder.toString:()Ljava/lang/String;
            invokevirtual org.jruby.Ruby.newArgumentError:(Ljava/lang/String;)Lorg/jruby/exceptions/RaiseException;
            athrow
        end local 5 // int fmode
        11: .line 2106
      StackMap locals:
      StackMap stack:
            aload 0 /* this */
            getfield org.jruby.util.io.OpenFile.encs:Lorg/jruby/util/io/IOEncodable$ConvConfig;
            getfield org.jruby.util.io.IOEncodable$ConvConfig.enc2:Lorg/jcodings/Encoding;
            ifnull 13
        12: .line 2107
            aload 1 /* context */
            getfield org.jruby.runtime.ThreadContext.runtime:Lorg/jruby/Ruby;
            invokevirtual org.jruby.Ruby.getEncodingService:()Lorg/jruby/runtime/encoding/EncodingService;
            aload 0 /* this */
            getfield org.jruby.util.io.OpenFile.encs:Lorg/jruby/util/io/IOEncodable$ConvConfig;
            getfield org.jruby.util.io.IOEncodable$ConvConfig.enc2:Lorg/jcodings/Encoding;
            invokevirtual org.jruby.runtime.encoding.EncodingService.convertEncodingToRubyEncoding:(Lorg/jcodings/Encoding;)Lorg/jruby/runtime/builtin/IRubyObject;
            astore 4 /* common_encoding */
            goto 15
        13: .line 2108
      StackMap locals:
      StackMap stack:
            aload 0 /* this */
            getfield org.jruby.util.io.OpenFile.encs:Lorg/jruby/util/io/IOEncodable$ConvConfig;
            getfield org.jruby.util.io.IOEncodable$ConvConfig.enc:Lorg/jcodings/Encoding;
            aload 1 /* context */
            getfield org.jruby.runtime.ThreadContext.runtime:Lorg/jruby/Ruby;
            invokestatic org.jruby.util.io.EncodingUtils.ascii8bitEncoding:(Lorg/jruby/Ruby;)Lorg/jcodings/Encoding;
            if_acmpeq 15
        14: .line 2109
            aload 1 /* context */
            getfield org.jruby.runtime.ThreadContext.runtime:Lorg/jruby/Ruby;
            invokevirtual org.jruby.Ruby.getEncodingService:()Lorg/jruby/runtime/encoding/EncodingService;
            aload 0 /* this */
            getfield org.jruby.util.io.OpenFile.encs:Lorg/jruby/util/io/IOEncodable$ConvConfig;
            getfield org.jruby.util.io.IOEncodable$ConvConfig.enc:Lorg/jcodings/Encoding;
            invokevirtual org.jruby.runtime.encoding.EncodingService.convertEncodingToRubyEncoding:(Lorg/jcodings/Encoding;)Lorg/jruby/runtime/builtin/IRubyObject;
            astore 4 /* common_encoding */
        15: .line 2112
      StackMap locals:
      StackMap stack:
            aload 4 /* common_encoding */
            invokeinterface org.jruby.runtime.builtin.IRubyObject.isNil:()Z
            ifne 17
        16: .line 2113
            aload 1 /* context */
            aload 2 /* str */
            aload 4 /* common_encoding */
            aload 0 /* this */
            getfield org.jruby.util.io.OpenFile.writeconvPreEcflags:I
            aload 0 /* this */
            getfield org.jruby.util.io.OpenFile.writeconvPreEcopts:Lorg/jruby/runtime/builtin/IRubyObject;
            invokestatic org.jruby.util.io.EncodingUtils.rbStrEncode:(Lorg/jruby/runtime/ThreadContext;Lorg/jruby/runtime/builtin/IRubyObject;Lorg/jruby/runtime/builtin/IRubyObject;ILorg/jruby/runtime/builtin/IRubyObject;)Lorg/jruby/runtime/builtin/IRubyObject;
            astore 2 /* str */
        17: .line 2116
      StackMap locals:
      StackMap stack:
            aload 0 /* this */
            getfield org.jruby.util.io.OpenFile.writeconv:Lorg/jcodings/transcode/EConv;
            ifnull 23
        18: .line 2117
            aload 1 /* context */
            getfield org.jruby.runtime.ThreadContext.runtime:Lorg/jruby/Ruby;
            aload 1 /* context */
            aload 0 /* this */
            getfield org.jruby.util.io.OpenFile.writeconv:Lorg/jcodings/transcode/EConv;
            aload 2 /* str */
            checkcast org.jruby.RubyString
            invokevirtual org.jruby.RubyString.getByteList:()Lorg/jruby/util/ByteList;
            ldc 65536
            invokestatic org.jruby.util.io.EncodingUtils.econvStrConvert:(Lorg/jruby/runtime/ThreadContext;Lorg/jcodings/transcode/EConv;Lorg/jruby/util/ByteList;I)Lorg/jruby/util/ByteList;
            invokevirtual org.jruby.Ruby.newString:(Lorg/jruby/util/ByteList;)Lorg/jruby/RubyString;
            astore 2 /* str */
        end local 4 // org.jruby.runtime.builtin.IRubyObject common_encoding
        19: .line 2137
            goto 23
      StackMap locals: org.jruby.util.io.OpenFile org.jruby.runtime.ThreadContext org.jruby.runtime.builtin.IRubyObject int
      StackMap stack: java.lang.Throwable
        20: astore 6
        21: .line 2138
            iload 3 /* locked */
            ifeq 22
            aload 0 /* this */
            invokevirtual org.jruby.util.io.OpenFile.unlock:()V
        22: .line 2139
      StackMap locals: org.jruby.util.io.OpenFile org.jruby.runtime.ThreadContext org.jruby.runtime.builtin.IRubyObject int top top java.lang.Throwable
      StackMap stack:
            aload 6
            athrow
        23: .line 2138
      StackMap locals: org.jruby.util.io.OpenFile org.jruby.runtime.ThreadContext org.jruby.runtime.builtin.IRubyObject int
      StackMap stack:
            iload 3 /* locked */
            ifeq 24
            aload 0 /* this */
            invokevirtual org.jruby.util.io.OpenFile.unlock:()V
        24: .line 2140
      StackMap locals:
      StackMap stack:
            aload 2 /* str */
            areturn
        end local 3 // boolean locked
        end local 2 // org.jruby.runtime.builtin.IRubyObject str
        end local 1 // org.jruby.runtime.ThreadContext context
        end local 0 // org.jruby.util.io.OpenFile this
      LocalVariableTable:
        Start  End  Slot             Name  Signature
            0   25     0             this  Lorg/jruby/util/io/OpenFile;
            0   25     1          context  Lorg/jruby/runtime/ThreadContext;
            0   25     2              str  Lorg/jruby/runtime/builtin/IRubyObject;
            1   25     3           locked  Z
            3   19     4  common_encoding  Lorg/jruby/runtime/builtin/IRubyObject;
            7   11     5            fmode  I
      Exception table:
        from    to  target  type
           1    20      20  any
    MethodParameters:
         Name  Flags
      context  
      str      

  public long binwrite(org.jruby.runtime.ThreadContext, org.jruby.runtime.builtin.IRubyObject, byte[], int, int, boolean);
    descriptor: (Lorg/jruby/runtime/ThreadContext;Lorg/jruby/runtime/builtin/IRubyObject;[BIIZ)J
    flags: (0x0001) ACC_PUBLIC
    Code:
      stack=6, locals=16, args_size=7
        start local 0 // org.jruby.util.io.OpenFile this
        start local 1 // org.jruby.runtime.ThreadContext context
        start local 2 // org.jruby.runtime.builtin.IRubyObject str
        start local 3 // byte[] ptrBytes
        start local 4 // int ptr
        start local 5 // int len
        start local 6 // boolean nosync
         0: .line 2153
            iconst_0
            istore 9 /* offset */
        start local 9 // int offset
         1: .line 2156
            aload 1 /* context */
            invokevirtual org.jruby.runtime.ThreadContext.pollThreadEvents:()V
         2: .line 2158
            aload 0 /* this */
            invokevirtual org.jruby.util.io.OpenFile.lock:()Z
            istore 10 /* locked */
        start local 10 // boolean locked
         3: .line 2160
            iload 5 /* len */
            dup
            istore 7 /* n */
        start local 7 // int n
         4: ifgt 7
            iload 7 /* n */
            i2l
            lstore 14
         5: .line 2235
            iload 10 /* locked */
            ifeq 6
            aload 0 /* this */
            invokevirtual org.jruby.util.io.OpenFile.unlock:()V
      StackMap locals: org.jruby.util.io.OpenFile org.jruby.runtime.ThreadContext org.jruby.runtime.builtin.IRubyObject byte[] int int int int top int int top top top long
      StackMap stack:
         6: lload 14
            lreturn
         7: .line 2161
      StackMap locals: org.jruby.util.io.OpenFile org.jruby.runtime.ThreadContext org.jruby.runtime.builtin.IRubyObject byte[] int int int int top int int
      StackMap stack:
            aload 0 /* this */
            getfield org.jruby.util.io.OpenFile.wbuf:Lorg/jruby/util/io/OpenFile$Buffer;
            getfield org.jruby.util.io.OpenFile$Buffer.ptr:[B
            ifnonnull 12
            iload 6 /* nosync */
            ifne 8
            aload 0 /* this */
            getfield org.jruby.util.io.OpenFile.mode:I
            bipush 8
            iand
            ifne 12
         8: .line 2162
      StackMap locals:
      StackMap stack:
            aload 0 /* this */
            getfield org.jruby.util.io.OpenFile.wbuf:Lorg/jruby/util/io/OpenFile$Buffer;
            iconst_0
            putfield org.jruby.util.io.OpenFile$Buffer.off:I
         9: .line 2163
            aload 0 /* this */
            getfield org.jruby.util.io.OpenFile.wbuf:Lorg/jruby/util/io/OpenFile$Buffer;
            iconst_0
            putfield org.jruby.util.io.OpenFile$Buffer.len:I
        10: .line 2164
            aload 0 /* this */
            getfield org.jruby.util.io.OpenFile.wbuf:Lorg/jruby/util/io/OpenFile$Buffer;
            sipush 8192
            putfield org.jruby.util.io.OpenFile$Buffer.capa:I
        11: .line 2165
            aload 0 /* this */
            getfield org.jruby.util.io.OpenFile.wbuf:Lorg/jruby/util/io/OpenFile$Buffer;
            aload 0 /* this */
            getfield org.jruby.util.io.OpenFile.wbuf:Lorg/jruby/util/io/OpenFile$Buffer;
            getfield org.jruby.util.io.OpenFile$Buffer.capa:I
            newarray 8
            putfield org.jruby.util.io.OpenFile$Buffer.ptr:[B
        12: .line 2173
      StackMap locals:
      StackMap stack:
            iload 6 /* nosync */
            ifne 13
            aload 0 /* this */
            getfield org.jruby.util.io.OpenFile.mode:I
            bipush 24
            iand
            ifne 14
        13: .line 2174
      StackMap locals:
      StackMap stack:
            aload 0 /* this */
            getfield org.jruby.util.io.OpenFile.wbuf:Lorg/jruby/util/io/OpenFile$Buffer;
            getfield org.jruby.util.io.OpenFile$Buffer.ptr:[B
            ifnull 58
            aload 0 /* this */
            getfield org.jruby.util.io.OpenFile.wbuf:Lorg/jruby/util/io/OpenFile$Buffer;
            getfield org.jruby.util.io.OpenFile$Buffer.capa:I
            aload 0 /* this */
            getfield org.jruby.util.io.OpenFile.wbuf:Lorg/jruby/util/io/OpenFile$Buffer;
            getfield org.jruby.util.io.OpenFile$Buffer.len:I
            iload 5 /* len */
            iadd
            if_icmpgt 58
        14: .line 2175
      StackMap locals:
      StackMap stack:
            new org.jruby.util.io.OpenFile$BinwriteArg
            dup
            invokespecial org.jruby.util.io.OpenFile$BinwriteArg.<init>:()V
            astore 11 /* arg */
        start local 11 // org.jruby.util.io.OpenFile$BinwriteArg arg
        15: .line 2177
            aload 0 /* this */
            getfield org.jruby.util.io.OpenFile.wbuf:Lorg/jruby/util/io/OpenFile$Buffer;
            getfield org.jruby.util.io.OpenFile$Buffer.len:I
            ifeq 22
            aload 0 /* this */
            getfield org.jruby.util.io.OpenFile.wbuf:Lorg/jruby/util/io/OpenFile$Buffer;
            getfield org.jruby.util.io.OpenFile$Buffer.len:I
            iload 5 /* len */
            iadd
            aload 0 /* this */
            getfield org.jruby.util.io.OpenFile.wbuf:Lorg/jruby/util/io/OpenFile$Buffer;
            getfield org.jruby.util.io.OpenFile$Buffer.capa:I
            if_icmpgt 22
        16: .line 2178
            aload 0 /* this */
            getfield org.jruby.util.io.OpenFile.wbuf:Lorg/jruby/util/io/OpenFile$Buffer;
            getfield org.jruby.util.io.OpenFile$Buffer.capa:I
            aload 0 /* this */
            getfield org.jruby.util.io.OpenFile.wbuf:Lorg/jruby/util/io/OpenFile$Buffer;
            getfield org.jruby.util.io.OpenFile$Buffer.off:I
            aload 0 /* this */
            getfield org.jruby.util.io.OpenFile.wbuf:Lorg/jruby/util/io/OpenFile$Buffer;
            getfield org.jruby.util.io.OpenFile$Buffer.len:I
            iadd
            iload 5 /* len */
            iadd
            if_icmpge 19
        17: .line 2179
            aload 0 /* this */
            getfield org.jruby.util.io.OpenFile.wbuf:Lorg/jruby/util/io/OpenFile$Buffer;
            getfield org.jruby.util.io.OpenFile$Buffer.ptr:[B
            aload 0 /* this */
            getfield org.jruby.util.io.OpenFile.wbuf:Lorg/jruby/util/io/OpenFile$Buffer;
            getfield org.jruby.util.io.OpenFile$Buffer.off:I
            aload 0 /* this */
            getfield org.jruby.util.io.OpenFile.wbuf:Lorg/jruby/util/io/OpenFile$Buffer;
            getfield org.jruby.util.io.OpenFile$Buffer.ptr:[B
            iconst_0
            aload 0 /* this */
            getfield org.jruby.util.io.OpenFile.wbuf:Lorg/jruby/util/io/OpenFile$Buffer;
            getfield org.jruby.util.io.OpenFile$Buffer.len:I
            invokestatic java.lang.System.arraycopy:(Ljava/lang/Object;ILjava/lang/Object;II)V
        18: .line 2180
            aload 0 /* this */
            getfield org.jruby.util.io.OpenFile.wbuf:Lorg/jruby/util/io/OpenFile$Buffer;
            iconst_0
            putfield org.jruby.util.io.OpenFile$Buffer.off:I
        19: .line 2182
      StackMap locals: org.jruby.util.io.OpenFile$BinwriteArg
      StackMap stack:
            aload 3 /* ptrBytes */
            iload 4 /* ptr */
            iload 9 /* offset */
            iadd
            aload 0 /* this */
            getfield org.jruby.util.io.OpenFile.wbuf:Lorg/jruby/util/io/OpenFile$Buffer;
            getfield org.jruby.util.io.OpenFile$Buffer.ptr:[B
            aload 0 /* this */
            getfield org.jruby.util.io.OpenFile.wbuf:Lorg/jruby/util/io/OpenFile$Buffer;
            getfield org.jruby.util.io.OpenFile$Buffer.off:I
            aload 0 /* this */
            getfield org.jruby.util.io.OpenFile.wbuf:Lorg/jruby/util/io/OpenFile$Buffer;
            getfield org.jruby.util.io.OpenFile$Buffer.len:I
            iadd
            iload 5 /* len */
            invokestatic java.lang.System.arraycopy:(Ljava/lang/Object;ILjava/lang/Object;II)V
        20: .line 2183
            aload 0 /* this */
            getfield org.jruby.util.io.OpenFile.wbuf:Lorg/jruby/util/io/OpenFile$Buffer;
            dup
            getfield org.jruby.util.io.OpenFile$Buffer.len:I
            iload 5 /* len */
            iadd
            putfield org.jruby.util.io.OpenFile$Buffer.len:I
        21: .line 2184
            iconst_0
            istore 7 /* n */
        22: .line 2187
      StackMap locals:
      StackMap stack:
            aload 0 /* this */
            aload 1 /* context */
            invokevirtual org.jruby.util.io.OpenFile.io_fflush:(Lorg/jruby/runtime/ThreadContext;)I
            ifge 25
        23: .line 2235
            iload 10 /* locked */
            ifeq 24
            aload 0 /* this */
            invokevirtual org.jruby.util.io.OpenFile.unlock:()V
        24: .line 2187
      StackMap locals:
      StackMap stack:
            ldc -1
            lreturn
        25: .line 2188
      StackMap locals:
      StackMap stack:
            iload 7 /* n */
            ifne 28
            iload 5 /* len */
            i2l
            lstore 14
        26: .line 2235
            iload 10 /* locked */
            ifeq 27
            aload 0 /* this */
            invokevirtual org.jruby.util.io.OpenFile.unlock:()V
      StackMap locals: org.jruby.util.io.OpenFile org.jruby.runtime.ThreadContext org.jruby.runtime.builtin.IRubyObject byte[] int int int int top int int org.jruby.util.io.OpenFile$BinwriteArg top top long
      StackMap stack:
        27: lload 14
            lreturn
        28: .line 2190
      StackMap locals: org.jruby.util.io.OpenFile org.jruby.runtime.ThreadContext org.jruby.runtime.builtin.IRubyObject byte[] int int int int top int int org.jruby.util.io.OpenFile$BinwriteArg
      StackMap stack:
            aload 0 /* this */
            invokevirtual org.jruby.util.io.OpenFile.checkClosed:()V
        29: .line 2191
            aload 11 /* arg */
            aload 0 /* this */
            putfield org.jruby.util.io.OpenFile$BinwriteArg.fptr:Lorg/jruby/util/io/OpenFile;
        30: .line 2192
            aload 11 /* arg */
            aload 2 /* str */
            putfield org.jruby.util.io.OpenFile$BinwriteArg.str:Lorg/jruby/runtime/builtin/IRubyObject;
        31: .line 2195
      StackMap locals:
      StackMap stack:
            aload 11 /* arg */
            aload 3 /* ptrBytes */
            putfield org.jruby.util.io.OpenFile$BinwriteArg.ptrBytes:[B
        32: .line 2196
            aload 11 /* arg */
            iload 4 /* ptr */
            iload 9 /* offset */
            iadd
            putfield org.jruby.util.io.OpenFile$BinwriteArg.ptr:I
        33: .line 2197
            aload 11 /* arg */
            iload 7 /* n */
            putfield org.jruby.util.io.OpenFile$BinwriteArg.length:I
        34: .line 2198
            aload 0 /* this */
            getfield org.jruby.util.io.OpenFile.write_lock:Ljava/util/concurrent/locks/ReentrantReadWriteLock;
            ifnull 43
        35: .line 2201
            aload 0 /* this */
            getfield org.jruby.util.io.OpenFile.write_lock:Ljava/util/concurrent/locks/ReentrantReadWriteLock;
            invokevirtual java.util.concurrent.locks.ReentrantReadWriteLock.writeLock:()Ljava/util/concurrent/locks/ReentrantReadWriteLock$WriteLock;
            invokevirtual java.util.concurrent.locks.ReentrantReadWriteLock$WriteLock.lock:()V
        36: .line 2203
            aload 1 /* context */
            aload 11 /* arg */
            invokestatic org.jruby.util.io.OpenFile.binwriteString:(Lorg/jruby/runtime/ThreadContext;Lorg/jruby/util/io/OpenFile$BinwriteArg;)I
            istore 8 /* r */
        start local 8 // int r
        37: .line 2204
            goto 41
        end local 8 // int r
      StackMap locals:
      StackMap stack: java.lang.Throwable
        38: astore 12
        39: .line 2205
            aload 0 /* this */
            getfield org.jruby.util.io.OpenFile.write_lock:Ljava/util/concurrent/locks/ReentrantReadWriteLock;
            invokevirtual java.util.concurrent.locks.ReentrantReadWriteLock.writeLock:()Ljava/util/concurrent/locks/ReentrantReadWriteLock$WriteLock;
            invokevirtual java.util.concurrent.locks.ReentrantReadWriteLock$WriteLock.unlock:()V
        40: .line 2206
            aload 12
            athrow
        start local 8 // int r
        41: .line 2205
      StackMap locals: org.jruby.util.io.OpenFile org.jruby.runtime.ThreadContext org.jruby.runtime.builtin.IRubyObject byte[] int int int int int int int org.jruby.util.io.OpenFile$BinwriteArg
      StackMap stack:
            aload 0 /* this */
            getfield org.jruby.util.io.OpenFile.write_lock:Ljava/util/concurrent/locks/ReentrantReadWriteLock;
            invokevirtual java.util.concurrent.locks.ReentrantReadWriteLock.writeLock:()Ljava/util/concurrent/locks/ReentrantReadWriteLock$WriteLock;
            invokevirtual java.util.concurrent.locks.ReentrantReadWriteLock$WriteLock.unlock:()V
        42: .line 2207
            goto 45
        end local 8 // int r
        43: .line 2208
      StackMap locals: org.jruby.util.io.OpenFile org.jruby.runtime.ThreadContext org.jruby.runtime.builtin.IRubyObject byte[] int int int int top int int org.jruby.util.io.OpenFile$BinwriteArg
      StackMap stack:
            aload 0 /* this */
            iload 7 /* n */
            invokevirtual org.jruby.util.io.OpenFile.writableLength:(I)I
            istore 12 /* l */
        start local 12 // int l
        44: .line 2209
            aload 1 /* context */
            aload 0 /* this */
            aload 0 /* this */
            getfield org.jruby.util.io.OpenFile.fd:Lorg/jruby/util/io/ChannelFD;
            aload 3 /* ptrBytes */
            iload 4 /* ptr */
            iload 9 /* offset */
            iadd
            iload 12 /* l */
            invokestatic org.jruby.util.io.OpenFile.writeInternal:(Lorg/jruby/runtime/ThreadContext;Lorg/jruby/util/io/OpenFile;Lorg/jruby/util/io/ChannelFD;[BII)I
            istore 8 /* r */
        end local 12 // int l
        start local 8 // int r
        45: .line 2212
      StackMap locals: org.jruby.util.io.OpenFile org.jruby.runtime.ThreadContext org.jruby.runtime.builtin.IRubyObject byte[] int int int int int int int org.jruby.util.io.OpenFile$BinwriteArg
      StackMap stack:
            iload 8 /* r */
            iload 7 /* n */
            if_icmpne 48
            iload 5 /* len */
            i2l
            lstore 14
        46: .line 2235
            iload 10 /* locked */
            ifeq 47
            aload 0 /* this */
            invokevirtual org.jruby.util.io.OpenFile.unlock:()V
      StackMap locals: org.jruby.util.io.OpenFile org.jruby.runtime.ThreadContext org.jruby.runtime.builtin.IRubyObject byte[] int int int int int int int org.jruby.util.io.OpenFile$BinwriteArg top top long
      StackMap stack:
        47: lload 14
            lreturn
        48: .line 2213
      StackMap locals: org.jruby.util.io.OpenFile org.jruby.runtime.ThreadContext org.jruby.runtime.builtin.IRubyObject byte[] int int int int int int int org.jruby.util.io.OpenFile$BinwriteArg
      StackMap stack:
            iload 8 /* r */
            iflt 52
        49: .line 2214
            iload 9 /* offset */
            iload 8 /* r */
            iadd
            istore 9 /* offset */
        50: .line 2215
            iload 7 /* n */
            iload 8 /* r */
            isub
            istore 7 /* n */
        51: .line 2216
            aload 0 /* this */
            getfield org.jruby.util.io.OpenFile.posix:Lorg/jruby/util/io/PosixShim;
            getstatic jnr.constants.platform.Errno.EAGAIN:Ljnr/constants/platform/Errno;
            invokevirtual org.jruby.util.io.PosixShim.setErrno:(Ljnr/constants/platform/Errno;)V
        52: .line 2218
      StackMap locals:
      StackMap stack:
            aload 0 /* this */
            aload 1 /* context */
            invokevirtual org.jruby.util.io.OpenFile.waitWritable:(Lorg/jruby/runtime/ThreadContext;)Z
            ifeq 56
        53: .line 2219
            aload 0 /* this */
            invokevirtual org.jruby.util.io.OpenFile.checkClosed:()V
        54: .line 2220
            iload 9 /* offset */
            iload 5 /* len */
            if_icmpge 56
        55: .line 2221
            goto 31
        56: .line 2235
      StackMap locals:
      StackMap stack:
            iload 10 /* locked */
            ifeq 57
            aload 0 /* this */
            invokevirtual org.jruby.util.io.OpenFile.unlock:()V
        57: .line 2223
      StackMap locals:
      StackMap stack:
            ldc -1
            lreturn
        end local 11 // org.jruby.util.io.OpenFile$BinwriteArg arg
        end local 8 // int r
        58: .line 2227
      StackMap locals: org.jruby.util.io.OpenFile org.jruby.runtime.ThreadContext org.jruby.runtime.builtin.IRubyObject byte[] int int int int top int int
      StackMap stack:
            aload 0 /* this */
            getfield org.jruby.util.io.OpenFile.wbuf:Lorg/jruby/util/io/OpenFile$Buffer;
            getfield org.jruby.util.io.OpenFile$Buffer.off:I
            ifeq 62
        59: .line 2228
            aload 0 /* this */
            getfield org.jruby.util.io.OpenFile.wbuf:Lorg/jruby/util/io/OpenFile$Buffer;
            getfield org.jruby.util.io.OpenFile$Buffer.len:I
            ifeq 61
        60: .line 2229
            aload 0 /* this */
            getfield org.jruby.util.io.OpenFile.wbuf:Lorg/jruby/util/io/OpenFile$Buffer;
            getfield org.jruby.util.io.OpenFile$Buffer.ptr:[B
            aload 0 /* this */
            getfield org.jruby.util.io.OpenFile.wbuf:Lorg/jruby/util/io/OpenFile$Buffer;
            getfield org.jruby.util.io.OpenFile$Buffer.off:I
            aload 0 /* this */
            getfield org.jruby.util.io.OpenFile.wbuf:Lorg/jruby/util/io/OpenFile$Buffer;
            getfield org.jruby.util.io.OpenFile$Buffer.ptr:[B
            iconst_0
            aload 0 /* this */
            getfield org.jruby.util.io.OpenFile.wbuf:Lorg/jruby/util/io/OpenFile$Buffer;
            getfield org.jruby.util.io.OpenFile$Buffer.len:I
            invokestatic java.lang.System.arraycopy:(Ljava/lang/Object;ILjava/lang/Object;II)V
        61: .line 2230
      StackMap locals:
      StackMap stack:
            aload 0 /* this */
            getfield org.jruby.util.io.OpenFile.wbuf:Lorg/jruby/util/io/OpenFile$Buffer;
            iconst_0
            putfield org.jruby.util.io.OpenFile$Buffer.off:I
        62: .line 2232
      StackMap locals:
      StackMap stack:
            aload 3 /* ptrBytes */
            iload 4 /* ptr */
            iload 9 /* offset */
            iadd
            aload 0 /* this */
            getfield org.jruby.util.io.OpenFile.wbuf:Lorg/jruby/util/io/OpenFile$Buffer;
            getfield org.jruby.util.io.OpenFile$Buffer.ptr:[B
            aload 0 /* this */
            getfield org.jruby.util.io.OpenFile.wbuf:Lorg/jruby/util/io/OpenFile$Buffer;
            getfield org.jruby.util.io.OpenFile$Buffer.off:I
            aload 0 /* this */
            getfield org.jruby.util.io.OpenFile.wbuf:Lorg/jruby/util/io/OpenFile$Buffer;
            getfield org.jruby.util.io.OpenFile$Buffer.len:I
            iadd
            iload 5 /* len */
            invokestatic java.lang.System.arraycopy:(Ljava/lang/Object;ILjava/lang/Object;II)V
        63: .line 2233
            aload 0 /* this */
            getfield org.jruby.util.io.OpenFile.wbuf:Lorg/jruby/util/io/OpenFile$Buffer;
            dup
            getfield org.jruby.util.io.OpenFile$Buffer.len:I
            iload 5 /* len */
            iadd
            putfield org.jruby.util.io.OpenFile$Buffer.len:I
        64: .line 2234
            goto 68
        end local 7 // int n
      StackMap locals: org.jruby.util.io.OpenFile org.jruby.runtime.ThreadContext org.jruby.runtime.builtin.IRubyObject byte[] int int int top top int int
      StackMap stack: java.lang.Throwable
        65: astore 13
        66: .line 2235
            iload 10 /* locked */
            ifeq 67
            aload 0 /* this */
            invokevirtual org.jruby.util.io.OpenFile.unlock:()V
        67: .line 2236
      StackMap locals: org.jruby.util.io.OpenFile org.jruby.runtime.ThreadContext org.jruby.runtime.builtin.IRubyObject byte[] int int int top top int int top top java.lang.Throwable
      StackMap stack:
            aload 13
            athrow
        start local 7 // int n
        68: .line 2235
      StackMap locals: org.jruby.util.io.OpenFile org.jruby.runtime.ThreadContext org.jruby.runtime.builtin.IRubyObject byte[] int int int int top int int
      StackMap stack:
            iload 10 /* locked */
            ifeq 69
            aload 0 /* this */
            invokevirtual org.jruby.util.io.OpenFile.unlock:()V
        69: .line 2237
      StackMap locals:
      StackMap stack:
            iload 5 /* len */
            i2l
            lreturn
        end local 10 // boolean locked
        end local 9 // int offset
        end local 7 // int n
        end local 6 // boolean nosync
        end local 5 // int len
        end local 4 // int ptr
        end local 3 // byte[] ptrBytes
        end local 2 // org.jruby.runtime.builtin.IRubyObject str
        end local 1 // org.jruby.runtime.ThreadContext context
        end local 0 // org.jruby.util.io.OpenFile this
      LocalVariableTable:
        Start  End  Slot      Name  Signature
            0   70     0      this  Lorg/jruby/util/io/OpenFile;
            0   70     1   context  Lorg/jruby/runtime/ThreadContext;
            0   70     2       str  Lorg/jruby/runtime/builtin/IRubyObject;
            0   70     3  ptrBytes  [B
            0   70     4       ptr  I
            0   70     5       len  I
            0   70     6    nosync  Z
            4   65     7         n  I
           68   70     7         n  I
           37   38     8         r  I
           41   43     8         r  I
           45   58     8         r  I
            1   70     9    offset  I
            3   70    10    locked  Z
           15   58    11       arg  Lorg/jruby/util/io/OpenFile$BinwriteArg;
           44   45    12         l  I
      Exception table:
        from    to  target  type
          36    38      38  any
           3     5      65  any
           7    23      65  any
          25    26      65  any
          28    46      65  any
          48    56      65  any
          58    65      65  any
    MethodParameters:
          Name  Flags
      context   
      str       
      ptrBytes  
      ptr       
      len       
      nosync    

  static int binwriteString(org.jruby.runtime.ThreadContext, org.jruby.util.io.OpenFile$BinwriteArg);
    descriptor: (Lorg/jruby/runtime/ThreadContext;Lorg/jruby/util/io/OpenFile$BinwriteArg;)I
    flags: (0x0008) ACC_STATIC
    Code:
      stack=5, locals=4, args_size=2
        start local 0 // org.jruby.runtime.ThreadContext context
        start local 1 // org.jruby.util.io.OpenFile$BinwriteArg arg
         0: .line 2242
            aload 1 /* arg */
            astore 2 /* p */
        start local 2 // org.jruby.util.io.OpenFile$BinwriteArg p
         1: .line 2243
            aload 2 /* p */
            getfield org.jruby.util.io.OpenFile$BinwriteArg.fptr:Lorg/jruby/util/io/OpenFile;
            aload 2 /* p */
            getfield org.jruby.util.io.OpenFile$BinwriteArg.length:I
            invokevirtual org.jruby.util.io.OpenFile.writableLength:(I)I
            istore 3 /* l */
        start local 3 // int l
         2: .line 2244
            aload 2 /* p */
            getfield org.jruby.util.io.OpenFile$BinwriteArg.fptr:Lorg/jruby/util/io/OpenFile;
            aload 2 /* p */
            getfield org.jruby.util.io.OpenFile$BinwriteArg.fptr:Lorg/jruby/util/io/OpenFile;
            getfield org.jruby.util.io.OpenFile.fd:Lorg/jruby/util/io/ChannelFD;
            aload 2 /* p */
            getfield org.jruby.util.io.OpenFile$BinwriteArg.ptrBytes:[B
            aload 2 /* p */
            getfield org.jruby.util.io.OpenFile$BinwriteArg.ptr:I
            iload 3 /* l */
            invokevirtual org.jruby.util.io.OpenFile.writeInternal2:(Lorg/jruby/util/io/ChannelFD;[BII)I
            ireturn
        end local 3 // int l
        end local 2 // org.jruby.util.io.OpenFile$BinwriteArg p
        end local 1 // org.jruby.util.io.OpenFile$BinwriteArg arg
        end local 0 // org.jruby.runtime.ThreadContext context
      LocalVariableTable:
        Start  End  Slot     Name  Signature
            0    3     0  context  Lorg/jruby/runtime/ThreadContext;
            0    3     1      arg  Lorg/jruby/util/io/OpenFile$BinwriteArg;
            1    3     2        p  Lorg/jruby/util/io/OpenFile$BinwriteArg;
            2    3     3        l  I
    MethodParameters:
         Name  Flags
      context  
      arg      

  public static int writeInternal(org.jruby.runtime.ThreadContext, org.jruby.util.io.OpenFile, org.jruby.util.io.ChannelFD, byte[], int, int);
    descriptor: (Lorg/jruby/runtime/ThreadContext;Lorg/jruby/util/io/OpenFile;Lorg/jruby/util/io/ChannelFD;[BII)I
    flags: (0x0009) ACC_PUBLIC, ACC_STATIC
    Code:
      stack=7, locals=7, args_size=6
        start local 0 // org.jruby.runtime.ThreadContext context
        start local 1 // org.jruby.util.io.OpenFile fptr
        start local 2 // org.jruby.util.io.ChannelFD fd
        start local 3 // byte[] bufBytes
        start local 4 // int buf
        start local 5 // int count
         0: .line 2265
            new org.jruby.util.io.OpenFile$InternalWriteStruct
            dup
            aload 1 /* fptr */
            aload 2 /* fd */
            aload 3 /* bufBytes */
            iload 4 /* buf */
            iload 5 /* count */
            invokespecial org.jruby.util.io.OpenFile$InternalWriteStruct.<init>:(Lorg/jruby/util/io/OpenFile;Lorg/jruby/util/io/ChannelFD;[BII)V
            astore 6 /* iis */
        start local 6 // org.jruby.util.io.OpenFile$InternalWriteStruct iis
         1: .line 2268
            aload 0 /* context */
            invokevirtual org.jruby.runtime.ThreadContext.getThread:()Lorg/jruby/RubyThread;
            aload 0 /* context */
            aload 6 /* iis */
            getstatic org.jruby.util.io.OpenFile.writeTask:Lorg/jruby/RubyThread$Task;
            invokevirtual org.jruby.RubyThread.executeTask:(Lorg/jruby/runtime/ThreadContext;Ljava/lang/Object;Lorg/jruby/RubyThread$Task;)Ljava/lang/Object;
            checkcast java.lang.Integer
            invokevirtual java.lang.Integer.intValue:()I
         2: ireturn
         3: .line 2269
      StackMap locals: org.jruby.runtime.ThreadContext org.jruby.util.io.OpenFile org.jruby.util.io.ChannelFD byte[] int int org.jruby.util.io.OpenFile$InternalWriteStruct
      StackMap stack: java.lang.InterruptedException
            pop
         4: .line 2270
            aload 0 /* context */
            getfield org.jruby.runtime.ThreadContext.runtime:Lorg/jruby/Ruby;
            ldc "IO operation interrupted"
            invokevirtual org.jruby.Ruby.newConcurrencyError:(Ljava/lang/String;)Lorg/jruby/exceptions/RaiseException;
            athrow
        end local 6 // org.jruby.util.io.OpenFile$InternalWriteStruct iis
        end local 5 // int count
        end local 4 // int buf
        end local 3 // byte[] bufBytes
        end local 2 // org.jruby.util.io.ChannelFD fd
        end local 1 // org.jruby.util.io.OpenFile fptr
        end local 0 // org.jruby.runtime.ThreadContext context
      LocalVariableTable:
        Start  End  Slot      Name  Signature
            0    5     0   context  Lorg/jruby/runtime/ThreadContext;
            0    5     1      fptr  Lorg/jruby/util/io/OpenFile;
            0    5     2        fd  Lorg/jruby/util/io/ChannelFD;
            0    5     3  bufBytes  [B
            0    5     4       buf  I
            0    5     5     count  I
            1    5     6       iis  Lorg/jruby/util/io/OpenFile$InternalWriteStruct;
      Exception table:
        from    to  target  type
           1     2       3  Class java.lang.InterruptedException
    MethodParameters:
          Name  Flags
      context   
      fptr      
      fd        
      bufBytes  
      buf       
      count     

  int writeInternal2(org.jruby.util.io.ChannelFD, byte[], int, int);
    descriptor: (Lorg/jruby/util/io/ChannelFD;[BII)I
    flags: (0x0000) 
    Code:
      stack=6, locals=5, args_size=5
        start local 0 // org.jruby.util.io.OpenFile this
        start local 1 // org.jruby.util.io.ChannelFD fd
        start local 2 // byte[] bufBytes
        start local 3 // int buf
        start local 4 // int count
         0: .line 2276
            aload 0 /* this */
            getfield org.jruby.util.io.OpenFile.posix:Lorg/jruby/util/io/PosixShim;
            aload 1 /* fd */
            aload 2 /* bufBytes */
            iload 3 /* buf */
            iload 4 /* count */
            aload 0 /* this */
            getfield org.jruby.util.io.OpenFile.nonblock:Z
            invokevirtual org.jruby.util.io.PosixShim.write:(Lorg/jruby/util/io/ChannelFD;[BIIZ)I
            ireturn
        end local 4 // int count
        end local 3 // int buf
        end local 2 // byte[] bufBytes
        end local 1 // org.jruby.util.io.ChannelFD fd
        end local 0 // org.jruby.util.io.OpenFile this
      LocalVariableTable:
        Start  End  Slot      Name  Signature
            0    1     0      this  Lorg/jruby/util/io/OpenFile;
            0    1     1        fd  Lorg/jruby/util/io/ChannelFD;
            0    1     2  bufBytes  [B
            0    1     3       buf  I
            0    1     4     count  I
    MethodParameters:
          Name  Flags
      fd        
      bufBytes  
      buf       
      count     

  public org.jruby.util.io.ChannelFD fd();
    descriptor: ()Lorg/jruby/util/io/ChannelFD;
    flags: (0x0001) ACC_PUBLIC
    Code:
      stack=1, locals=1, args_size=1
        start local 0 // org.jruby.util.io.OpenFile this
         0: .line 2280
            aload 0 /* this */
            getfield org.jruby.util.io.OpenFile.fd:Lorg/jruby/util/io/ChannelFD;
            areturn
        end local 0 // org.jruby.util.io.OpenFile this
      LocalVariableTable:
        Start  End  Slot  Name  Signature
            0    1     0  this  Lorg/jruby/util/io/OpenFile;

  public java.nio.channels.Channel channel();
    descriptor: ()Ljava/nio/channels/Channel;
    flags: (0x0001) ACC_PUBLIC
    Code:
      stack=2, locals=1, args_size=1
        start local 0 // org.jruby.util.io.OpenFile this
         0: .line 2284
            getstatic org.jruby.util.io.OpenFile.$assertionsDisabled:Z
            ifne 1
            aload 0 /* this */
            getfield org.jruby.util.io.OpenFile.fd:Lorg/jruby/util/io/ChannelFD;
            ifnonnull 1
            new java.lang.AssertionError
            dup
            invokespecial java.lang.AssertionError.<init>:()V
            athrow
         1: .line 2285
      StackMap locals:
      StackMap stack:
            aload 0 /* this */
            getfield org.jruby.util.io.OpenFile.fd:Lorg/jruby/util/io/ChannelFD;
            getfield org.jruby.util.io.ChannelFD.ch:Ljava/nio/channels/Channel;
            areturn
        end local 0 // org.jruby.util.io.OpenFile this
      LocalVariableTable:
        Start  End  Slot  Name  Signature
            0    2     0  this  Lorg/jruby/util/io/OpenFile;

  public java.nio.channels.ReadableByteChannel readChannel();
    descriptor: ()Ljava/nio/channels/ReadableByteChannel;
    flags: (0x0001) ACC_PUBLIC
    Code:
      stack=2, locals=1, args_size=1
        start local 0 // org.jruby.util.io.OpenFile this
         0: .line 2289
            getstatic org.jruby.util.io.OpenFile.$assertionsDisabled:Z
            ifne 1
            aload 0 /* this */
            getfield org.jruby.util.io.OpenFile.fd:Lorg/jruby/util/io/ChannelFD;
            ifnonnull 1
            new java.lang.AssertionError
            dup
            invokespecial java.lang.AssertionError.<init>:()V
            athrow
         1: .line 2290
      StackMap locals:
      StackMap stack:
            aload 0 /* this */
            getfield org.jruby.util.io.OpenFile.fd:Lorg/jruby/util/io/ChannelFD;
            getfield org.jruby.util.io.ChannelFD.chRead:Ljava/nio/channels/ReadableByteChannel;
            areturn
        end local 0 // org.jruby.util.io.OpenFile this
      LocalVariableTable:
        Start  End  Slot  Name  Signature
            0    2     0  this  Lorg/jruby/util/io/OpenFile;

  public java.nio.channels.WritableByteChannel writeChannel();
    descriptor: ()Ljava/nio/channels/WritableByteChannel;
    flags: (0x0001) ACC_PUBLIC
    Code:
      stack=2, locals=1, args_size=1
        start local 0 // org.jruby.util.io.OpenFile this
         0: .line 2294
            getstatic org.jruby.util.io.OpenFile.$assertionsDisabled:Z
            ifne 1
            aload 0 /* this */
            getfield org.jruby.util.io.OpenFile.fd:Lorg/jruby/util/io/ChannelFD;
            ifnonnull 1
            new java.lang.AssertionError
            dup
            invokespecial java.lang.AssertionError.<init>:()V
            athrow
         1: .line 2295
      StackMap locals:
      StackMap stack:
            aload 0 /* this */
            getfield org.jruby.util.io.OpenFile.fd:Lorg/jruby/util/io/ChannelFD;
            getfield org.jruby.util.io.ChannelFD.chWrite:Ljava/nio/channels/WritableByteChannel;
            areturn
        end local 0 // org.jruby.util.io.OpenFile this
      LocalVariableTable:
        Start  End  Slot  Name  Signature
            0    2     0  this  Lorg/jruby/util/io/OpenFile;

  public java.nio.channels.SeekableByteChannel seekChannel();
    descriptor: ()Ljava/nio/channels/SeekableByteChannel;
    flags: (0x0001) ACC_PUBLIC
    Code:
      stack=2, locals=1, args_size=1
        start local 0 // org.jruby.util.io.OpenFile this
         0: .line 2299
            getstatic org.jruby.util.io.OpenFile.$assertionsDisabled:Z
            ifne 1
            aload 0 /* this */
            getfield org.jruby.util.io.OpenFile.fd:Lorg/jruby/util/io/ChannelFD;
            ifnonnull 1
            new java.lang.AssertionError
            dup
            invokespecial java.lang.AssertionError.<init>:()V
            athrow
         1: .line 2300
      StackMap locals:
      StackMap stack:
            aload 0 /* this */
            getfield org.jruby.util.io.OpenFile.fd:Lorg/jruby/util/io/ChannelFD;
            getfield org.jruby.util.io.ChannelFD.chSeek:Ljava/nio/channels/SeekableByteChannel;
            areturn
        end local 0 // org.jruby.util.io.OpenFile this
      LocalVariableTable:
        Start  End  Slot  Name  Signature
            0    2     0  this  Lorg/jruby/util/io/OpenFile;

  public java.nio.channels.SelectableChannel selectChannel();
    descriptor: ()Ljava/nio/channels/SelectableChannel;
    flags: (0x0001) ACC_PUBLIC
    Code:
      stack=2, locals=1, args_size=1
        start local 0 // org.jruby.util.io.OpenFile this
         0: .line 2304
            getstatic org.jruby.util.io.OpenFile.$assertionsDisabled:Z
            ifne 1
            aload 0 /* this */
            getfield org.jruby.util.io.OpenFile.fd:Lorg/jruby/util/io/ChannelFD;
            ifnonnull 1
            new java.lang.AssertionError
            dup
            invokespecial java.lang.AssertionError.<init>:()V
            athrow
         1: .line 2305
      StackMap locals:
      StackMap stack:
            aload 0 /* this */
            getfield org.jruby.util.io.OpenFile.fd:Lorg/jruby/util/io/ChannelFD;
            getfield org.jruby.util.io.ChannelFD.chSelect:Ljava/nio/channels/SelectableChannel;
            areturn
        end local 0 // org.jruby.util.io.OpenFile this
      LocalVariableTable:
        Start  End  Slot  Name  Signature
            0    2     0  this  Lorg/jruby/util/io/OpenFile;

  public java.nio.channels.FileChannel fileChannel();
    descriptor: ()Ljava/nio/channels/FileChannel;
    flags: (0x0001) ACC_PUBLIC
    Code:
      stack=2, locals=1, args_size=1
        start local 0 // org.jruby.util.io.OpenFile this
         0: .line 2309
            getstatic org.jruby.util.io.OpenFile.$assertionsDisabled:Z
            ifne 1
            aload 0 /* this */
            getfield org.jruby.util.io.OpenFile.fd:Lorg/jruby/util/io/ChannelFD;
            ifnonnull 1
            new java.lang.AssertionError
            dup
            invokespecial java.lang.AssertionError.<init>:()V
            athrow
         1: .line 2310
      StackMap locals:
      StackMap stack:
            aload 0 /* this */
            getfield org.jruby.util.io.OpenFile.fd:Lorg/jruby/util/io/ChannelFD;
            getfield org.jruby.util.io.ChannelFD.chFile:Ljava/nio/channels/FileChannel;
            areturn
        end local 0 // org.jruby.util.io.OpenFile this
      LocalVariableTable:
        Start  End  Slot  Name  Signature
            0    2     0  this  Lorg/jruby/util/io/OpenFile;

  public java.nio.channels.SocketChannel socketChannel();
    descriptor: ()Ljava/nio/channels/SocketChannel;
    flags: (0x0001) ACC_PUBLIC
    Code:
      stack=2, locals=1, args_size=1
        start local 0 // org.jruby.util.io.OpenFile this
         0: .line 2314
            getstatic org.jruby.util.io.OpenFile.$assertionsDisabled:Z
            ifne 1
            aload 0 /* this */
            getfield org.jruby.util.io.OpenFile.fd:Lorg/jruby/util/io/ChannelFD;
            ifnonnull 1
            new java.lang.AssertionError
            dup
            invokespecial java.lang.AssertionError.<init>:()V
            athrow
         1: .line 2315
      StackMap locals:
      StackMap stack:
            aload 0 /* this */
            getfield org.jruby.util.io.OpenFile.fd:Lorg/jruby/util/io/ChannelFD;
            getfield org.jruby.util.io.ChannelFD.chSock:Ljava/nio/channels/SocketChannel;
            areturn
        end local 0 // org.jruby.util.io.OpenFile this
      LocalVariableTable:
        Start  End  Slot  Name  Signature
            0    2     0  this  Lorg/jruby/util/io/OpenFile;

  org.jruby.runtime.builtin.IRubyObject finishWriteconv(org.jruby.runtime.ThreadContext, boolean);
    descriptor: (Lorg/jruby/runtime/ThreadContext;Z)Lorg/jruby/runtime/builtin/IRubyObject;
    flags: (0x0000) 
    Code:
      stack=8, locals=14, args_size=3
        start local 0 // org.jruby.util.io.OpenFile this
        start local 1 // org.jruby.runtime.ThreadContext context
        start local 2 // boolean noalloc
         0: .line 2321
            new org.jcodings.Ptr
            dup
            invokespecial org.jcodings.Ptr.<init>:()V
            astore 6 /* dpPtr */
        start local 6 // org.jcodings.Ptr dpPtr
         1: .line 2324
            aload 0 /* this */
            invokevirtual org.jruby.util.io.OpenFile.lock:()Z
            istore 8 /* locked */
        start local 8 // boolean locked
         2: .line 2326
            aload 0 /* this */
            getfield org.jruby.util.io.OpenFile.wbuf:Lorg/jruby/util/io/OpenFile$Buffer;
            getfield org.jruby.util.io.OpenFile$Buffer.ptr:[B
            ifnonnull 45
         3: .line 2327
            sipush 1024
            newarray 8
            astore 9 /* buf */
        start local 9 // byte[] buf
         4: .line 2330
            getstatic org.jcodings.transcode.EConvResult.DestinationBufferFull:Lorg/jcodings/transcode/EConvResult;
            astore 7 /* res */
        start local 7 // org.jcodings.transcode.EConvResult res
         5: .line 2331
            goto 41
         6: .line 2332
      StackMap locals: org.jruby.util.io.OpenFile org.jruby.runtime.ThreadContext int top top top org.jcodings.Ptr org.jcodings.transcode.EConvResult int byte[]
      StackMap stack:
            aload 9 /* buf */
            astore 3 /* dsBytes */
        start local 3 // byte[] dsBytes
         7: .line 2333
            aload 6 /* dpPtr */
            iconst_0
            dup_x1
            putfield org.jcodings.Ptr.p:I
            istore 4 /* ds */
        start local 4 // int ds
         8: .line 2334
            aload 9 /* buf */
            arraylength
            istore 5 /* de */
        start local 5 // int de
         9: .line 2335
            aload 0 /* this */
            getfield org.jruby.util.io.OpenFile.writeconv:Lorg/jcodings/transcode/EConv;
            aconst_null
            aconst_null
            iconst_0
            aload 3 /* dsBytes */
            aload 6 /* dpPtr */
            iload 5 /* de */
            iconst_0
            invokevirtual org.jcodings.transcode.EConv.convert:([BLorg/jcodings/Ptr;I[BLorg/jcodings/Ptr;II)Lorg/jcodings/transcode/EConvResult;
            astore 7 /* res */
        10: .line 2337
            aload 6 /* dpPtr */
            getfield org.jcodings.Ptr.p:I
            iload 4 /* ds */
            isub
            ifeq 33
        11: .line 2340
      StackMap locals: org.jruby.util.io.OpenFile org.jruby.runtime.ThreadContext int byte[] int int org.jcodings.Ptr org.jcodings.transcode.EConvResult int byte[]
      StackMap stack:
            aload 0 /* this */
            getfield org.jruby.util.io.OpenFile.write_lock:Ljava/util/concurrent/locks/ReentrantReadWriteLock;
            ifnull 14
            aload 0 /* this */
            getfield org.jruby.util.io.OpenFile.write_lock:Ljava/util/concurrent/locks/ReentrantReadWriteLock;
            invokevirtual java.util.concurrent.locks.ReentrantReadWriteLock.isWriteLockedByCurrentThread:()Z
            ifeq 14
        12: .line 2341
            aload 0 /* this */
            aload 0 /* this */
            getfield org.jruby.util.io.OpenFile.fd:Lorg/jruby/util/io/ChannelFD;
            aload 3 /* dsBytes */
            iload 4 /* ds */
            aload 6 /* dpPtr */
            getfield org.jcodings.Ptr.p:I
            iload 4 /* ds */
            isub
            invokevirtual org.jruby.util.io.OpenFile.writeInternal2:(Lorg/jruby/util/io/ChannelFD;[BII)I
            i2l
            lstore 10 /* r */
        start local 10 // long r
        13: goto 15
        end local 10 // long r
        14: .line 2343
      StackMap locals:
      StackMap stack:
            aload 1 /* context */
            aload 0 /* this */
            aload 0 /* this */
            getfield org.jruby.util.io.OpenFile.fd:Lorg/jruby/util/io/ChannelFD;
            aload 3 /* dsBytes */
            iload 4 /* ds */
            aload 6 /* dpPtr */
            getfield org.jcodings.Ptr.p:I
            iload 4 /* ds */
            isub
            invokestatic org.jruby.util.io.OpenFile.writeInternal:(Lorg/jruby/runtime/ThreadContext;Lorg/jruby/util/io/OpenFile;Lorg/jruby/util/io/ChannelFD;[BII)I
            i2l
            lstore 10 /* r */
        start local 10 // long r
        15: .line 2344
      StackMap locals: long
      StackMap stack:
            lload 10 /* r */
            aload 6 /* dpPtr */
            getfield org.jcodings.Ptr.p:I
            iload 4 /* ds */
            isub
            i2l
            lcmp
            ifne 17
        16: .line 2345
            goto 33
        17: .line 2346
      StackMap locals:
      StackMap stack:
            lconst_0
            lload 10 /* r */
            lcmp
            ifgt 19
        18: .line 2347
            iload 4 /* ds */
            i2l
            lload 10 /* r */
            ladd
            l2i
            istore 4 /* ds */
        19: .line 2349
      StackMap locals:
      StackMap stack:
            aload 0 /* this */
            aload 1 /* context */
            invokevirtual org.jruby.util.io.OpenFile.waitWritable:(Lorg/jruby/runtime/ThreadContext;)Z
            ifeq 26
        20: .line 2350
            aload 0 /* this */
            getfield org.jruby.util.io.OpenFile.fd:Lorg/jruby/util/io/ChannelFD;
            ifnonnull 11
        21: .line 2351
            iload 2 /* noalloc */
            ifeq 22
            aload 1 /* context */
            getfield org.jruby.runtime.ThreadContext.tru:Lorg/jruby/RubyBoolean;
            goto 23
      StackMap locals:
      StackMap stack:
        22: aload 0 /* this */
            getfield org.jruby.util.io.OpenFile.runtime:Lorg/jruby/Ruby;
            ldc "closed stream"
            invokevirtual org.jruby.Ruby.newIOError:(Ljava/lang/String;)Lorg/jruby/exceptions/RaiseException;
            invokevirtual org.jruby.exceptions.RaiseException.getException:()Lorg/jruby/RubyException;
      StackMap locals:
      StackMap stack: org.jruby.RubyObject
        23: astore 13
        24: .line 2387
            iload 8 /* locked */
            ifeq 25
            aload 0 /* this */
            invokevirtual org.jruby.util.io.OpenFile.unlock:()V
        25: .line 2351
      StackMap locals: org.jruby.util.io.OpenFile org.jruby.runtime.ThreadContext int byte[] int int org.jcodings.Ptr org.jcodings.transcode.EConvResult int byte[] long top org.jruby.runtime.builtin.IRubyObject
      StackMap stack:
            aload 13
            areturn
        26: .line 2356
      StackMap locals: org.jruby.util.io.OpenFile org.jruby.runtime.ThreadContext int byte[] int int org.jcodings.Ptr org.jcodings.transcode.EConvResult int byte[] long
      StackMap stack:
            iload 2 /* noalloc */
            ifeq 27
            aload 0 /* this */
            getfield org.jruby.util.io.OpenFile.runtime:Lorg/jruby/Ruby;
            invokevirtual org.jruby.Ruby.getTrue:()Lorg/jruby/RubyBoolean;
            goto 30
      StackMap locals:
      StackMap stack:
        27: aload 0 /* this */
            getfield org.jruby.util.io.OpenFile.runtime:Lorg/jruby/Ruby;
            aload 0 /* this */
            getfield org.jruby.util.io.OpenFile.posix:Lorg/jruby/util/io/PosixShim;
            invokevirtual org.jruby.util.io.PosixShim.getErrno:()Ljnr/constants/platform/Errno;
            ifnonnull 28
            lconst_0
            goto 29
      StackMap locals:
      StackMap stack: org.jruby.Ruby
        28: aload 0 /* this */
            getfield org.jruby.util.io.OpenFile.posix:Lorg/jruby/util/io/PosixShim;
            invokevirtual org.jruby.util.io.PosixShim.getErrno:()Ljnr/constants/platform/Errno;
            invokevirtual jnr.constants.platform.Errno.longValue:()J
      StackMap locals: org.jruby.util.io.OpenFile org.jruby.runtime.ThreadContext int byte[] int int org.jcodings.Ptr org.jcodings.transcode.EConvResult int byte[] long
      StackMap stack: org.jruby.Ruby long
        29: invokestatic org.jruby.RubyFixnum.newFixnum:(Lorg/jruby/Ruby;J)Lorg/jruby/RubyFixnum;
      StackMap locals:
      StackMap stack: org.jruby.RubyObject
        30: astore 13
        31: .line 2387
            iload 8 /* locked */
            ifeq 32
            aload 0 /* this */
            invokevirtual org.jruby.util.io.OpenFile.unlock:()V
        32: .line 2356
      StackMap locals: org.jruby.util.io.OpenFile org.jruby.runtime.ThreadContext int byte[] int int org.jcodings.Ptr org.jcodings.transcode.EConvResult int byte[] long top org.jruby.runtime.builtin.IRubyObject
      StackMap stack:
            aload 13
            areturn
        end local 10 // long r
        33: .line 2358
      StackMap locals: org.jruby.util.io.OpenFile org.jruby.runtime.ThreadContext int byte[] int int org.jcodings.Ptr org.jcodings.transcode.EConvResult int byte[]
      StackMap stack:
            aload 7 /* res */
            getstatic org.jcodings.transcode.EConvResult.InvalidByteSequence:Lorg/jcodings/transcode/EConvResult;
            if_acmpeq 36
        34: .line 2359
            aload 7 /* res */
            getstatic org.jcodings.transcode.EConvResult.IncompleteInput:Lorg/jcodings/transcode/EConvResult;
            if_acmpeq 36
        35: .line 2360
            aload 7 /* res */
            getstatic org.jcodings.transcode.EConvResult.UndefinedConversion:Lorg/jcodings/transcode/EConvResult;
            if_acmpne 41
        36: .line 2361
      StackMap locals:
      StackMap stack:
            iload 2 /* noalloc */
            ifeq 37
            aload 1 /* context */
            getfield org.jruby.runtime.ThreadContext.tru:Lorg/jruby/RubyBoolean;
            goto 38
      StackMap locals:
      StackMap stack:
        37: aload 0 /* this */
            getfield org.jruby.util.io.OpenFile.runtime:Lorg/jruby/Ruby;
            aload 0 /* this */
            getfield org.jruby.util.io.OpenFile.writeconv:Lorg/jcodings/transcode/EConv;
            invokestatic org.jruby.util.io.EncodingUtils.makeEconvException:(Lorg/jruby/Ruby;Lorg/jcodings/transcode/EConv;)Lorg/jruby/exceptions/RaiseException;
            invokevirtual org.jruby.exceptions.RaiseException.getException:()Lorg/jruby/RubyException;
      StackMap locals:
      StackMap stack: org.jruby.RubyObject
        38: astore 13
        39: .line 2387
            iload 8 /* locked */
            ifeq 40
            aload 0 /* this */
            invokevirtual org.jruby.util.io.OpenFile.unlock:()V
        40: .line 2361
      StackMap locals: org.jruby.util.io.OpenFile org.jruby.runtime.ThreadContext int byte[] int int org.jcodings.Ptr org.jcodings.transcode.EConvResult int byte[] top top top org.jruby.runtime.builtin.IRubyObject
      StackMap stack:
            aload 13
            areturn
        end local 5 // int de
        end local 4 // int ds
        end local 3 // byte[] dsBytes
        41: .line 2331
      StackMap locals: org.jruby.util.io.OpenFile org.jruby.runtime.ThreadContext int top top top org.jcodings.Ptr org.jcodings.transcode.EConvResult int byte[]
      StackMap stack:
            aload 7 /* res */
            getstatic org.jcodings.transcode.EConvResult.DestinationBufferFull:Lorg/jcodings/transcode/EConvResult;
            if_acmpeq 6
        42: .line 2365
            aload 1 /* context */
            getfield org.jruby.runtime.ThreadContext.nil:Lorg/jruby/runtime/builtin/IRubyObject;
            astore 13
        43: .line 2387
            iload 8 /* locked */
            ifeq 44
            aload 0 /* this */
            invokevirtual org.jruby.util.io.OpenFile.unlock:()V
        44: .line 2365
      StackMap locals: org.jruby.util.io.OpenFile org.jruby.runtime.ThreadContext int top top top org.jcodings.Ptr org.jcodings.transcode.EConvResult int byte[] top top top org.jruby.runtime.builtin.IRubyObject
      StackMap stack:
            aload 13
            areturn
        end local 9 // byte[] buf
        end local 7 // org.jcodings.transcode.EConvResult res
        45: .line 2368
      StackMap locals: org.jruby.util.io.OpenFile org.jruby.runtime.ThreadContext int top top top org.jcodings.Ptr top int
      StackMap stack:
            getstatic org.jcodings.transcode.EConvResult.DestinationBufferFull:Lorg/jcodings/transcode/EConvResult;
            astore 7 /* res */
        start local 7 // org.jcodings.transcode.EConvResult res
        46: .line 2369
            goto 69
        47: .line 2370
      StackMap locals: org.jruby.util.io.OpenFile org.jruby.runtime.ThreadContext int top top top org.jcodings.Ptr org.jcodings.transcode.EConvResult int
      StackMap stack:
            aload 0 /* this */
            getfield org.jruby.util.io.OpenFile.wbuf:Lorg/jruby/util/io/OpenFile$Buffer;
            getfield org.jruby.util.io.OpenFile$Buffer.len:I
            aload 0 /* this */
            getfield org.jruby.util.io.OpenFile.wbuf:Lorg/jruby/util/io/OpenFile$Buffer;
            getfield org.jruby.util.io.OpenFile$Buffer.capa:I
            if_icmpne 56
        48: .line 2371
            aload 0 /* this */
            aload 1 /* context */
            invokevirtual org.jruby.util.io.OpenFile.io_fflush:(Lorg/jruby/runtime/ThreadContext;)I
            ifge 56
        49: .line 2372
            iload 2 /* noalloc */
            ifeq 50
            aload 1 /* context */
            getfield org.jruby.runtime.ThreadContext.tru:Lorg/jruby/RubyBoolean;
            goto 53
      StackMap locals:
      StackMap stack:
        50: aload 0 /* this */
            getfield org.jruby.util.io.OpenFile.runtime:Lorg/jruby/Ruby;
            aload 0 /* this */
            getfield org.jruby.util.io.OpenFile.posix:Lorg/jruby/util/io/PosixShim;
            invokevirtual org.jruby.util.io.PosixShim.getErrno:()Ljnr/constants/platform/Errno;
            ifnonnull 51
            lconst_0
            goto 52
      StackMap locals:
      StackMap stack: org.jruby.Ruby
        51: aload 0 /* this */
            getfield org.jruby.util.io.OpenFile.posix:Lorg/jruby/util/io/PosixShim;
            invokevirtual org.jruby.util.io.PosixShim.getErrno:()Ljnr/constants/platform/Errno;
            invokevirtual jnr.constants.platform.Errno.longValue:()J
      StackMap locals: org.jruby.util.io.OpenFile org.jruby.runtime.ThreadContext int top top top org.jcodings.Ptr org.jcodings.transcode.EConvResult int
      StackMap stack: org.jruby.Ruby long
        52: invokevirtual org.jruby.Ruby.newFixnum:(J)Lorg/jruby/RubyFixnum;
      StackMap locals:
      StackMap stack: org.jruby.RubyObject
        53: astore 13
        54: .line 2387
            iload 8 /* locked */
            ifeq 55
            aload 0 /* this */
            invokevirtual org.jruby.util.io.OpenFile.unlock:()V
        55: .line 2372
      StackMap locals: org.jruby.util.io.OpenFile org.jruby.runtime.ThreadContext int top top top org.jcodings.Ptr org.jcodings.transcode.EConvResult int top top top top org.jruby.runtime.builtin.IRubyObject
      StackMap stack:
            aload 13
            areturn
        56: .line 2375
      StackMap locals: org.jruby.util.io.OpenFile org.jruby.runtime.ThreadContext int top top top org.jcodings.Ptr org.jcodings.transcode.EConvResult int
      StackMap stack:
            aload 0 /* this */
            getfield org.jruby.util.io.OpenFile.wbuf:Lorg/jruby/util/io/OpenFile$Buffer;
            getfield org.jruby.util.io.OpenFile$Buffer.ptr:[B
            astore 3 /* dsBytes */
        start local 3 // byte[] dsBytes
        57: .line 2376
            aload 6 /* dpPtr */
            aload 0 /* this */
            getfield org.jruby.util.io.OpenFile.wbuf:Lorg/jruby/util/io/OpenFile$Buffer;
            getfield org.jruby.util.io.OpenFile$Buffer.off:I
            aload 0 /* this */
            getfield org.jruby.util.io.OpenFile.wbuf:Lorg/jruby/util/io/OpenFile$Buffer;
            getfield org.jruby.util.io.OpenFile$Buffer.len:I
            iadd
            dup_x1
            putfield org.jcodings.Ptr.p:I
            istore 4 /* ds */
        start local 4 // int ds
        58: .line 2377
            aload 0 /* this */
            getfield org.jruby.util.io.OpenFile.wbuf:Lorg/jruby/util/io/OpenFile$Buffer;
            getfield org.jruby.util.io.OpenFile$Buffer.capa:I
            istore 5 /* de */
        start local 5 // int de
        59: .line 2378
            aload 0 /* this */
            getfield org.jruby.util.io.OpenFile.writeconv:Lorg/jcodings/transcode/EConv;
            aconst_null
            aconst_null
            iconst_0
            aload 3 /* dsBytes */
            aload 6 /* dpPtr */
            iload 5 /* de */
            iconst_0
            invokevirtual org.jcodings.transcode.EConv.convert:([BLorg/jcodings/Ptr;I[BLorg/jcodings/Ptr;II)Lorg/jcodings/transcode/EConvResult;
            astore 7 /* res */
        60: .line 2379
            aload 0 /* this */
            getfield org.jruby.util.io.OpenFile.wbuf:Lorg/jruby/util/io/OpenFile$Buffer;
            dup
            getfield org.jruby.util.io.OpenFile$Buffer.len:I
            aload 6 /* dpPtr */
            getfield org.jcodings.Ptr.p:I
            iload 4 /* ds */
            isub
            iadd
            putfield org.jruby.util.io.OpenFile$Buffer.len:I
        61: .line 2380
            aload 7 /* res */
            getstatic org.jcodings.transcode.EConvResult.InvalidByteSequence:Lorg/jcodings/transcode/EConvResult;
            if_acmpeq 64
        62: .line 2381
            aload 7 /* res */
            getstatic org.jcodings.transcode.EConvResult.IncompleteInput:Lorg/jcodings/transcode/EConvResult;
            if_acmpeq 64
        63: .line 2382
            aload 7 /* res */
            getstatic org.jcodings.transcode.EConvResult.UndefinedConversion:Lorg/jcodings/transcode/EConvResult;
            if_acmpne 69
        64: .line 2383
      StackMap locals: org.jruby.util.io.OpenFile org.jruby.runtime.ThreadContext int byte[] int int org.jcodings.Ptr org.jcodings.transcode.EConvResult int
      StackMap stack:
            iload 2 /* noalloc */
            ifeq 65
            aload 1 /* context */
            getfield org.jruby.runtime.ThreadContext.tru:Lorg/jruby/RubyBoolean;
            goto 66
      StackMap locals:
      StackMap stack:
        65: aload 0 /* this */
            getfield org.jruby.util.io.OpenFile.runtime:Lorg/jruby/Ruby;
            aload 0 /* this */
            getfield org.jruby.util.io.OpenFile.writeconv:Lorg/jcodings/transcode/EConv;
            invokestatic org.jruby.util.io.EncodingUtils.makeEconvException:(Lorg/jruby/Ruby;Lorg/jcodings/transcode/EConv;)Lorg/jruby/exceptions/RaiseException;
            invokevirtual org.jruby.exceptions.RaiseException.getException:()Lorg/jruby/RubyException;
      StackMap locals:
      StackMap stack: org.jruby.RubyObject
        66: astore 13
        67: .line 2387
            iload 8 /* locked */
            ifeq 68
            aload 0 /* this */
            invokevirtual org.jruby.util.io.OpenFile.unlock:()V
        68: .line 2383
      StackMap locals: org.jruby.util.io.OpenFile org.jruby.runtime.ThreadContext int byte[] int int org.jcodings.Ptr org.jcodings.transcode.EConvResult int top top top top org.jruby.runtime.builtin.IRubyObject
      StackMap stack:
            aload 13
            areturn
        end local 5 // int de
        end local 4 // int ds
        end local 3 // byte[] dsBytes
        69: .line 2369
      StackMap locals: org.jruby.util.io.OpenFile org.jruby.runtime.ThreadContext int top top top org.jcodings.Ptr org.jcodings.transcode.EConvResult int
      StackMap stack:
            aload 7 /* res */
            getstatic org.jcodings.transcode.EConvResult.DestinationBufferFull:Lorg/jcodings/transcode/EConvResult;
            if_acmpeq 47
        70: .line 2386
            goto 74
        end local 7 // org.jcodings.transcode.EConvResult res
      StackMap locals: org.jruby.util.io.OpenFile org.jruby.runtime.ThreadContext int top top top org.jcodings.Ptr top int
      StackMap stack: java.lang.Throwable
        71: astore 12
        72: .line 2387
            iload 8 /* locked */
            ifeq 73
            aload 0 /* this */
            invokevirtual org.jruby.util.io.OpenFile.unlock:()V
        73: .line 2388
      StackMap locals: org.jruby.util.io.OpenFile org.jruby.runtime.ThreadContext int top top top org.jcodings.Ptr top int top top top java.lang.Throwable
      StackMap stack:
            aload 12
            athrow
        start local 7 // org.jcodings.transcode.EConvResult res
        74: .line 2387
      StackMap locals: org.jruby.util.io.OpenFile org.jruby.runtime.ThreadContext int top top top org.jcodings.Ptr org.jcodings.transcode.EConvResult int
      StackMap stack:
            iload 8 /* locked */
            ifeq 75
            aload 0 /* this */
            invokevirtual org.jruby.util.io.OpenFile.unlock:()V
        75: .line 2389
      StackMap locals:
      StackMap stack:
            aload 1 /* context */
            getfield org.jruby.runtime.ThreadContext.nil:Lorg/jruby/runtime/builtin/IRubyObject;
            areturn
        end local 8 // boolean locked
        end local 7 // org.jcodings.transcode.EConvResult res
        end local 6 // org.jcodings.Ptr dpPtr
        end local 2 // boolean noalloc
        end local 1 // org.jruby.runtime.ThreadContext context
        end local 0 // org.jruby.util.io.OpenFile this
      LocalVariableTable:
        Start  End  Slot     Name  Signature
            0   76     0     this  Lorg/jruby/util/io/OpenFile;
            0   76     1  context  Lorg/jruby/runtime/ThreadContext;
            0   76     2  noalloc  Z
            7   41     3  dsBytes  [B
           57   69     3  dsBytes  [B
            8   41     4       ds  I
           58   69     4       ds  I
            9   41     5       de  I
           59   69     5       de  I
            1   76     6    dpPtr  Lorg/jcodings/Ptr;
            5   45     7      res  Lorg/jcodings/transcode/EConvResult;
           46   71     7      res  Lorg/jcodings/transcode/EConvResult;
           74   76     7      res  Lorg/jcodings/transcode/EConvResult;
            2   76     8   locked  Z
            4   45     9      buf  [B
           13   14    10        r  J
           15   33    10        r  J
      Exception table:
        from    to  target  type
           2    24      71  any
          26    31      71  any
          33    39      71  any
          41    43      71  any
          45    54      71  any
          56    67      71  any
          69    71      71  any
    MethodParameters:
         Name  Flags
      context  
      noalloc  

  public void setNonblock(org.jruby.Ruby);
    descriptor: (Lorg/jruby/Ruby;)V
    flags: (0x0001) ACC_PUBLIC
    Code:
      stack=3, locals=2, args_size=2
        start local 0 // org.jruby.util.io.OpenFile this
        start local 1 // org.jruby.Ruby runtime
         0: .line 2394
            aload 0 /* this */
            aload 1 /* runtime */
            iconst_0
            invokevirtual org.jruby.util.io.OpenFile.setBlocking:(Lorg/jruby/Ruby;Z)V
         1: .line 2395
            return
        end local 1 // org.jruby.Ruby runtime
        end local 0 // org.jruby.util.io.OpenFile this
      LocalVariableTable:
        Start  End  Slot     Name  Signature
            0    2     0     this  Lorg/jruby/util/io/OpenFile;
            0    2     1  runtime  Lorg/jruby/Ruby;
    MethodParameters:
         Name  Flags
      runtime  

  public void setBlock(org.jruby.Ruby);
    descriptor: (Lorg/jruby/Ruby;)V
    flags: (0x0001) ACC_PUBLIC
    Code:
      stack=3, locals=2, args_size=2
        start local 0 // org.jruby.util.io.OpenFile this
        start local 1 // org.jruby.Ruby runtime
         0: .line 2398
            aload 0 /* this */
            aload 1 /* runtime */
            iconst_1
            invokevirtual org.jruby.util.io.OpenFile.setBlocking:(Lorg/jruby/Ruby;Z)V
         1: .line 2399
            return
        end local 1 // org.jruby.Ruby runtime
        end local 0 // org.jruby.util.io.OpenFile this
      LocalVariableTable:
        Start  End  Slot     Name  Signature
            0    2     0     this  Lorg/jruby/util/io/OpenFile;
            0    2     1  runtime  Lorg/jruby/Ruby;
    MethodParameters:
         Name  Flags
      runtime  

  public void setBlocking(org.jruby.Ruby, boolean);
    descriptor: (Lorg/jruby/Ruby;Z)V
    flags: (0x0001) ACC_PUBLIC
    Code:
      stack=2, locals=7, args_size=3
        start local 0 // org.jruby.util.io.OpenFile this
        start local 1 // org.jruby.Ruby runtime
        start local 2 // boolean blocking
         0: .line 2402
            aload 0 /* this */
            invokevirtual org.jruby.util.io.OpenFile.lock:()Z
            istore 3 /* locked */
        start local 3 // boolean locked
         1: .line 2406
            aload 0 /* this */
            iload 2 /* blocking */
            ifeq 2
            iconst_0
            goto 3
      StackMap locals: org.jruby.util.io.OpenFile org.jruby.Ruby int int
      StackMap stack: org.jruby.util.io.OpenFile
         2: iconst_1
      StackMap locals: org.jruby.util.io.OpenFile org.jruby.Ruby int int
      StackMap stack: org.jruby.util.io.OpenFile int
         3: putfield org.jruby.util.io.OpenFile.nonblock:Z
         4: .line 2408
            aload 0 /* this */
            getfield org.jruby.util.io.OpenFile.fd:Lorg/jruby/util/io/ChannelFD;
            astore 4 /* fd */
        start local 4 // org.jruby.util.io.ChannelFD fd
         5: .line 2410
            aload 0 /* this */
            invokevirtual org.jruby.util.io.OpenFile.checkClosed:()V
         6: .line 2412
            aload 4 /* fd */
            getfield org.jruby.util.io.ChannelFD.chSelect:Ljava/nio/channels/SelectableChannel;
            ifnull 14
         7: .line 2414
            aload 4 /* fd */
            getfield org.jruby.util.io.ChannelFD.chSelect:Ljava/nio/channels/SelectableChannel;
            iload 2 /* blocking */
            invokevirtual java.nio.channels.SelectableChannel.configureBlocking:(Z)Ljava/nio/channels/SelectableChannel;
            pop
         8: .line 2415
            goto 14
      StackMap locals: org.jruby.util.io.OpenFile org.jruby.Ruby int int org.jruby.util.io.ChannelFD
      StackMap stack: java.io.IOException
         9: astore 5 /* ioe */
        start local 5 // java.io.IOException ioe
        10: .line 2416
            aload 1 /* runtime */
            aload 5 /* ioe */
            invokevirtual org.jruby.Ruby.newIOErrorFromException:(Ljava/io/IOException;)Lorg/jruby/exceptions/RaiseException;
            athrow
        end local 5 // java.io.IOException ioe
        end local 4 // org.jruby.util.io.ChannelFD fd
        11: .line 2419
      StackMap locals: org.jruby.util.io.OpenFile org.jruby.Ruby int int
      StackMap stack: java.lang.Throwable
            astore 6
        12: .line 2420
            iload 3 /* locked */
            ifeq 13
            aload 0 /* this */
            invokevirtual org.jruby.util.io.OpenFile.unlock:()V
        13: .line 2421
      StackMap locals: org.jruby.util.io.OpenFile org.jruby.Ruby int int top top java.lang.Throwable
      StackMap stack:
            aload 6
            athrow
        14: .line 2420
      StackMap locals: org.jruby.util.io.OpenFile org.jruby.Ruby int int
      StackMap stack:
            iload 3 /* locked */
            ifeq 15
            aload 0 /* this */
            invokevirtual org.jruby.util.io.OpenFile.unlock:()V
        15: .line 2422
      StackMap locals:
      StackMap stack:
            return
        end local 3 // boolean locked
        end local 2 // boolean blocking
        end local 1 // org.jruby.Ruby runtime
        end local 0 // org.jruby.util.io.OpenFile this
      LocalVariableTable:
        Start  End  Slot      Name  Signature
            0   16     0      this  Lorg/jruby/util/io/OpenFile;
            0   16     1   runtime  Lorg/jruby/Ruby;
            0   16     2  blocking  Z
            1   16     3    locked  Z
            5   11     4        fd  Lorg/jruby/util/io/ChannelFD;
           10   11     5       ioe  Ljava/io/IOException;
      Exception table:
        from    to  target  type
           7     8       9  Class java.io.IOException
           1    11      11  any
    MethodParameters:
          Name  Flags
      runtime   
      blocking  

  public boolean isBlocking();
    descriptor: ()Z
    flags: (0x0001) ACC_PUBLIC
    Code:
      stack=1, locals=1, args_size=1
        start local 0 // org.jruby.util.io.OpenFile this
         0: .line 2425
            aload 0 /* this */
            getfield org.jruby.util.io.OpenFile.nonblock:Z
            ifeq 1
            iconst_0
            goto 2
      StackMap locals:
      StackMap stack:
         1: iconst_1
      StackMap locals:
      StackMap stack: int
         2: ireturn
        end local 0 // org.jruby.util.io.OpenFile this
      LocalVariableTable:
        Start  End  Slot  Name  Signature
            0    3     0  this  Lorg/jruby/util/io/OpenFile;

  public void checkTTY();
    descriptor: ()V
    flags: (0x0001) ACC_PUBLIC
    Code:
      stack=3, locals=3, args_size=1
        start local 0 // org.jruby.util.io.OpenFile this
         0: .line 2430
            aload 0 /* this */
            getfield org.jruby.util.io.OpenFile.fd:Lorg/jruby/util/io/ChannelFD;
            getfield org.jruby.util.io.ChannelFD.realFileno:I
            iconst_m1
            if_icmpeq 1
            aload 0 /* this */
            getfield org.jruby.util.io.OpenFile.runtime:Lorg/jruby/Ruby;
            invokevirtual org.jruby.Ruby.getPosix:()Ljnr/posix/POSIX;
            aload 0 /* this */
            getfield org.jruby.util.io.OpenFile.fd:Lorg/jruby/util/io/ChannelFD;
            getfield org.jruby.util.io.ChannelFD.realFileno:I
            invokeinterface jnr.posix.POSIX.isatty:(I)I
            ifne 2
         1: .line 2431
      StackMap locals:
      StackMap stack:
            aload 0 /* this */
            getfield org.jruby.util.io.OpenFile.stdio_file:Ljava/io/Closeable;
            ifnull 9
         2: .line 2433
      StackMap locals:
      StackMap stack:
            aload 0 /* this */
            invokevirtual org.jruby.util.io.OpenFile.lock:()Z
            istore 1 /* locked */
        start local 1 // boolean locked
         3: .line 2435
            aload 0 /* this */
            dup
            getfield org.jruby.util.io.OpenFile.mode:I
            bipush 48
            ior
            putfield org.jruby.util.io.OpenFile.mode:I
         4: .line 2436
            goto 8
      StackMap locals: org.jruby.util.io.OpenFile int
      StackMap stack: java.lang.Throwable
         5: astore 2
         6: .line 2437
            iload 1 /* locked */
            ifeq 7
            aload 0 /* this */
            invokevirtual org.jruby.util.io.OpenFile.unlock:()V
         7: .line 2438
      StackMap locals: java.lang.Throwable
      StackMap stack:
            aload 2
            athrow
         8: .line 2437
      StackMap locals:
      StackMap stack:
            iload 1 /* locked */
            ifeq 9
            aload 0 /* this */
            invokevirtual org.jruby.util.io.OpenFile.unlock:()V
        end local 1 // boolean locked
         9: .line 2442
      StackMap locals:
      StackMap stack:
            aload 0 /* this */
            getfield org.jruby.util.io.OpenFile.runtime:Lorg/jruby/Ruby;
            invokevirtual org.jruby.Ruby.getPosix:()Ljnr/posix/POSIX;
            iconst_0
            invokeinterface jnr.posix.POSIX.errno:(I)V
        10: .line 2443
            return
        end local 0 // org.jruby.util.io.OpenFile this
      LocalVariableTable:
        Start  End  Slot    Name  Signature
            0   11     0    this  Lorg/jruby/util/io/OpenFile;
            3    9     1  locked  Z
      Exception table:
        from    to  target  type
           3     5       5  any

  public boolean isBOM();
    descriptor: ()Z
    flags: (0x0001) ACC_PUBLIC
    Code:
      stack=2, locals=1, args_size=1
        start local 0 // org.jruby.util.io.OpenFile this
         0: .line 2446
            aload 0 /* this */
            getfield org.jruby.util.io.OpenFile.mode:I
            ldc 1048576
            iand
            ifeq 1
            iconst_1
            ireturn
      StackMap locals:
      StackMap stack:
         1: iconst_0
            ireturn
        end local 0 // org.jruby.util.io.OpenFile this
      LocalVariableTable:
        Start  End  Slot  Name  Signature
            0    2     0  this  Lorg/jruby/util/io/OpenFile;

  public void setBOM(boolean);
    descriptor: (Z)V
    flags: (0x0001) ACC_PUBLIC
    Code:
      stack=3, locals=4, args_size=2
        start local 0 // org.jruby.util.io.OpenFile this
        start local 1 // boolean bom
         0: .line 2450
            aload 0 /* this */
            invokevirtual org.jruby.util.io.OpenFile.lock:()Z
            istore 2 /* locked */
        start local 2 // boolean locked
         1: .line 2452
            iload 1 /* bom */
            ifeq 4
         2: .line 2453
            aload 0 /* this */
            dup
            getfield org.jruby.util.io.OpenFile.mode:I
            ldc 1048576
            ior
            putfield org.jruby.util.io.OpenFile.mode:I
         3: .line 2454
            goto 9
         4: .line 2455
      StackMap locals: int
      StackMap stack:
            aload 0 /* this */
            dup
            getfield org.jruby.util.io.OpenFile.mode:I
            ldc -1048577
            iand
            putfield org.jruby.util.io.OpenFile.mode:I
         5: .line 2457
            goto 9
      StackMap locals:
      StackMap stack: java.lang.Throwable
         6: astore 3
         7: .line 2458
            iload 2 /* locked */
            ifeq 8
            aload 0 /* this */
            invokevirtual org.jruby.util.io.OpenFile.unlock:()V
         8: .line 2459
      StackMap locals: java.lang.Throwable
      StackMap stack:
            aload 3
            athrow
         9: .line 2458
      StackMap locals:
      StackMap stack:
            iload 2 /* locked */
            ifeq 10
            aload 0 /* this */
            invokevirtual org.jruby.util.io.OpenFile.unlock:()V
        10: .line 2460
      StackMap locals:
      StackMap stack:
            return
        end local 2 // boolean locked
        end local 1 // boolean bom
        end local 0 // org.jruby.util.io.OpenFile this
      LocalVariableTable:
        Start  End  Slot    Name  Signature
            0   11     0    this  Lorg/jruby/util/io/OpenFile;
            0   11     1     bom  Z
            1   11     2  locked  Z
      Exception table:
        from    to  target  type
           1     6       6  any
    MethodParameters:
      Name  Flags
      bom   

  public boolean isStdio();
    descriptor: ()Z
    flags: (0x0001) ACC_PUBLIC
    Code:
      stack=1, locals=1, args_size=1
        start local 0 // org.jruby.util.io.OpenFile this
         0: .line 2463
            aload 0 /* this */
            getfield org.jruby.util.io.OpenFile.stdio_file:Ljava/io/Closeable;
            ifnull 1
            iconst_1
            ireturn
      StackMap locals:
      StackMap stack:
         1: iconst_0
            ireturn
        end local 0 // org.jruby.util.io.OpenFile this
      LocalVariableTable:
        Start  End  Slot  Name  Signature
            0    2     0  this  Lorg/jruby/util/io/OpenFile;

  public int readPending();
    descriptor: ()I
    flags: (0x0001) ACC_PUBLIC
    Code:
      stack=1, locals=3, args_size=1
        start local 0 // org.jruby.util.io.OpenFile this
         0: .line 2467
            aload 0 /* this */
            invokevirtual org.jruby.util.io.OpenFile.lock:()Z
            pop
         1: .line 2469
            aload 0 /* this */
            invokevirtual org.jruby.util.io.OpenFile.READ_CHAR_PENDING:()Z
            ifeq 4
         2: .line 2472
            aload 0 /* this */
            invokevirtual org.jruby.util.io.OpenFile.unlock:()V
         3: .line 2469
            iconst_1
            ireturn
         4: .line 2470
      StackMap locals:
      StackMap stack:
            aload 0 /* this */
            invokevirtual org.jruby.util.io.OpenFile.READ_DATA_PENDING_COUNT:()I
            istore 2
         5: .line 2472
            aload 0 /* this */
            invokevirtual org.jruby.util.io.OpenFile.unlock:()V
         6: .line 2470
            iload 2
            ireturn
         7: .line 2471
      StackMap locals:
      StackMap stack: java.lang.Throwable
            astore 1
         8: .line 2472
            aload 0 /* this */
            invokevirtual org.jruby.util.io.OpenFile.unlock:()V
         9: .line 2473
            aload 1
            athrow
        end local 0 // org.jruby.util.io.OpenFile this
      LocalVariableTable:
        Start  End  Slot  Name  Signature
            0   10     0  this  Lorg/jruby/util/io/OpenFile;
      Exception table:
        from    to  target  type
           1     2       7  any
           4     5       7  any

  public static int getFModeFromString(java.lang.String);
    descriptor: (Ljava/lang/String;)I
    flags: (0x0009) ACC_PUBLIC, ACC_STATIC
    Code:
      stack=2, locals=4, args_size=1
        start local 0 // java.lang.String modesString
         0: .line 2478
            iconst_0
            istore 1 /* fmode */
        start local 1 // int fmode
         1: .line 2479
            aload 0 /* modesString */
            invokevirtual java.lang.String.length:()I
            istore 2 /* length */
        start local 2 // int length
         2: .line 2481
            iload 2 /* length */
            ifne 4
         3: .line 2482
            new org.jruby.util.io.InvalidValueException
            dup
            invokespecial org.jruby.util.io.InvalidValueException.<init>:()V
            athrow
         4: .line 2485
      StackMap locals: int int
      StackMap stack:
            aload 0 /* modesString */
            iconst_0
            invokevirtual java.lang.String.charAt:(I)C
            lookupswitch { // 3
                   97: 9
                  114: 5
                  119: 7
              default: 11
          }
         5: .line 2487
      StackMap locals:
      StackMap stack:
            iload 1 /* fmode */
            iconst_1
            ior
            istore 1 /* fmode */
         6: .line 2488
            goto 12
         7: .line 2490
      StackMap locals:
      StackMap stack:
            iload 1 /* fmode */
            sipush 2178
            ior
            istore 1 /* fmode */
         8: .line 2491
            goto 12
         9: .line 2493
      StackMap locals:
      StackMap stack:
            iload 1 /* fmode */
            sipush 194
            ior
            istore 1 /* fmode */
        10: .line 2494
            goto 12
        11: .line 2496
      StackMap locals:
      StackMap stack:
            new org.jruby.util.io.InvalidValueException
            dup
            invokespecial org.jruby.util.io.InvalidValueException.<init>:()V
            athrow
        12: .line 2499
      StackMap locals:
      StackMap stack:
            iconst_1
            istore 3 /* n */
        start local 3 // int n
        13: goto 24
        14: .line 2500
      StackMap locals: int
      StackMap stack:
            aload 0 /* modesString */
            iload 3 /* n */
            invokevirtual java.lang.String.charAt:(I)C
            lookupswitch { // 4
                   43: 19
                   58: 21
                   98: 15
                  116: 17
              default: 22
          }
        15: .line 2502
      StackMap locals:
      StackMap stack:
            iload 1 /* fmode */
            iconst_4
            ior
            istore 1 /* fmode */
        16: .line 2503
            goto 23
        17: .line 2505
      StackMap locals:
      StackMap stack:
            iload 1 /* fmode */
            sipush 4096
            ior
            istore 1 /* fmode */
        18: .line 2506
            goto 23
        19: .line 2508
      StackMap locals:
      StackMap stack:
            iload 1 /* fmode */
            iconst_3
            ior
            istore 1 /* fmode */
        20: .line 2509
            goto 23
        21: .line 2511
      StackMap locals:
      StackMap stack:
            goto 25
        22: .line 2513
      StackMap locals:
      StackMap stack:
            new org.jruby.util.io.InvalidValueException
            dup
            invokespecial org.jruby.util.io.InvalidValueException.<init>:()V
            athrow
        23: .line 2499
      StackMap locals:
      StackMap stack:
            iinc 3 /* n */ 1
      StackMap locals:
      StackMap stack:
        24: iload 3 /* n */
            iload 2 /* length */
            if_icmplt 14
        end local 3 // int n
        25: .line 2517
      StackMap locals:
      StackMap stack:
            iload 1 /* fmode */
            ireturn
        end local 2 // int length
        end local 1 // int fmode
        end local 0 // java.lang.String modesString
      LocalVariableTable:
        Start  End  Slot         Name  Signature
            0   26     0  modesString  Ljava/lang/String;
            1   26     1        fmode  I
            2   26     2       length  I
           13   25     3            n  I
    Exceptions:
      throws org.jruby.util.io.InvalidValueException
    RuntimeVisibleAnnotations: 
      java.lang.Deprecated()
    MethodParameters:
             Name  Flags
      modesString  

  public int getFileno();
    descriptor: ()I
    flags: (0x0001) ACC_PUBLIC
    Code:
      stack=2, locals=1, args_size=1
        start local 0 // org.jruby.util.io.OpenFile this
         0: .line 2521
            aload 0 /* this */
            getfield org.jruby.util.io.OpenFile.fd:Lorg/jruby/util/io/ChannelFD;
            iconst_1
            invokevirtual org.jruby.util.io.ChannelFD.bestFileno:(Z)I
            ireturn
        end local 0 // org.jruby.util.io.OpenFile this
      LocalVariableTable:
        Start  End  Slot  Name  Signature
            0    1     0  this  Lorg/jruby/util/io/OpenFile;

  public int threadFlock(org.jruby.runtime.ThreadContext, int);
    descriptor: (Lorg/jruby/runtime/ThreadContext;I)I
    flags: (0x0001) ACC_PUBLIC
    Code:
      stack=7, locals=4, args_size=3
        start local 0 // org.jruby.util.io.OpenFile this
        start local 1 // org.jruby.runtime.ThreadContext context
        start local 2 // int lockMode
         0: .line 2529
            iconst_0
            istore 3 /* ret */
        start local 3 // int ret
         1: .line 2531
            aload 1 /* context */
            invokevirtual org.jruby.runtime.ThreadContext.getThread:()Lorg/jruby/RubyThread;
            aload 1 /* context */
            aload 0 /* this */
            new org.jruby.util.io.OpenFile$4
            dup
            aload 0 /* this */
            iload 2 /* lockMode */
            invokespecial org.jruby.util.io.OpenFile$4.<init>:(Lorg/jruby/util/io/OpenFile;I)V
            invokevirtual org.jruby.RubyThread.executeTask:(Lorg/jruby/runtime/ThreadContext;Ljava/lang/Object;Lorg/jruby/RubyThread$Task;)Ljava/lang/Object;
            checkcast java.lang.Integer
            invokevirtual java.lang.Integer.intValue:()I
            istore 3 /* ret */
         2: .line 2543
            goto 4
      StackMap locals: org.jruby.util.io.OpenFile org.jruby.runtime.ThreadContext int int
      StackMap stack: java.lang.InterruptedException
         3: pop
         4: .line 2553
      StackMap locals:
      StackMap stack:
            iload 3 /* ret */
            ireturn
        end local 3 // int ret
        end local 2 // int lockMode
        end local 1 // org.jruby.runtime.ThreadContext context
        end local 0 // org.jruby.util.io.OpenFile this
      LocalVariableTable:
        Start  End  Slot      Name  Signature
            0    5     0      this  Lorg/jruby/util/io/OpenFile;
            0    5     1   context  Lorg/jruby/runtime/ThreadContext;
            0    5     2  lockMode  I
            1    5     3       ret  I
      Exception table:
        from    to  target  type
           1     2       3  Class java.lang.InterruptedException
    MethodParameters:
          Name  Flags
      context   
      lockMode  final

  public jnr.constants.platform.Errno errno();
    descriptor: ()Ljnr/constants/platform/Errno;
    flags: (0x0001) ACC_PUBLIC
    Code:
      stack=1, locals=1, args_size=1
        start local 0 // org.jruby.util.io.OpenFile this
         0: .line 2557
            aload 0 /* this */
            getfield org.jruby.util.io.OpenFile.posix:Lorg/jruby/util/io/PosixShim;
            invokevirtual org.jruby.util.io.PosixShim.getErrno:()Ljnr/constants/platform/Errno;
            areturn
        end local 0 // org.jruby.util.io.OpenFile this
      LocalVariableTable:
        Start  End  Slot  Name  Signature
            0    1     0  this  Lorg/jruby/util/io/OpenFile;

  public void errno(jnr.constants.platform.Errno);
    descriptor: (Ljnr/constants/platform/Errno;)V
    flags: (0x0001) ACC_PUBLIC
    Code:
      stack=2, locals=2, args_size=2
        start local 0 // org.jruby.util.io.OpenFile this
        start local 1 // jnr.constants.platform.Errno newErrno
         0: .line 2561
            aload 0 /* this */
            getfield org.jruby.util.io.OpenFile.posix:Lorg/jruby/util/io/PosixShim;
            aload 1 /* newErrno */
            invokevirtual org.jruby.util.io.PosixShim.setErrno:(Ljnr/constants/platform/Errno;)V
         1: .line 2562
            return
        end local 1 // jnr.constants.platform.Errno newErrno
        end local 0 // org.jruby.util.io.OpenFile this
      LocalVariableTable:
        Start  End  Slot      Name  Signature
            0    2     0      this  Lorg/jruby/util/io/OpenFile;
            0    2     1  newErrno  Ljnr/constants/platform/Errno;
    MethodParameters:
          Name  Flags
      newErrno  

  public static int cloexecDup2(org.jruby.util.io.PosixShim, org.jruby.util.io.ChannelFD, org.jruby.util.io.ChannelFD);
    descriptor: (Lorg/jruby/util/io/PosixShim;Lorg/jruby/util/io/ChannelFD;Lorg/jruby/util/io/ChannelFD;)I
    flags: (0x0009) ACC_PUBLIC, ACC_STATIC
    Code:
      stack=3, locals=4, args_size=3
        start local 0 // org.jruby.util.io.PosixShim posix
        start local 1 // org.jruby.util.io.ChannelFD oldfd
        start local 2 // org.jruby.util.io.ChannelFD newfd
         0: .line 2568
            aload 1 /* oldfd */
            aload 2 /* newfd */
            if_acmpne 3
         1: .line 2569
            iconst_0
            istore 3 /* ret */
        start local 3 // int ret
         2: .line 2570
            goto 5
        end local 3 // int ret
         3: .line 2588
      StackMap locals:
      StackMap stack:
            aload 0 /* posix */
            aload 1 /* oldfd */
            aload 2 /* newfd */
            invokevirtual org.jruby.util.io.PosixShim.dup2:(Lorg/jruby/util/io/ChannelFD;Lorg/jruby/util/io/ChannelFD;)I
            istore 3 /* ret */
        start local 3 // int ret
         4: .line 2590
            iload 3 /* ret */
            iconst_m1
            if_icmpne 5
            iconst_m1
            ireturn
         5: .line 2592
      StackMap locals: int
      StackMap stack:
            aload 0 /* posix */
            iload 3 /* ret */
            invokestatic org.jruby.util.io.OpenFile.fdFixCloexec:(Lorg/jruby/util/io/PosixShim;I)V
         6: .line 2593
            iload 3 /* ret */
            ireturn
        end local 3 // int ret
        end local 2 // org.jruby.util.io.ChannelFD newfd
        end local 1 // org.jruby.util.io.ChannelFD oldfd
        end local 0 // org.jruby.util.io.PosixShim posix
      LocalVariableTable:
        Start  End  Slot   Name  Signature
            0    7     0  posix  Lorg/jruby/util/io/PosixShim;
            0    7     1  oldfd  Lorg/jruby/util/io/ChannelFD;
            0    7     2  newfd  Lorg/jruby/util/io/ChannelFD;
            2    3     3    ret  I
            4    7     3    ret  I
    MethodParameters:
       Name  Flags
      posix  
      oldfd  
      newfd  

  public static void fdFixCloexec(org.jruby.util.io.PosixShim, int);
    descriptor: (Lorg/jruby/util/io/PosixShim;I)V
    flags: (0x0009) ACC_PUBLIC, ACC_STATIC
    Code:
      stack=7, locals=5, args_size=2
        start local 0 // org.jruby.util.io.PosixShim posix
        start local 1 // int fd
         0: .line 2598
            iload 1 /* fd */
            iflt 12
            iload 1 /* fd */
            ldc 100000
            if_icmpge 12
         1: .line 2600
            aload 0 /* posix */
            iload 1 /* fd */
            invokevirtual org.jruby.util.io.PosixShim.fcntlGetFD:(I)I
            istore 2 /* flags */
        start local 2 // int flags
         2: .line 2601
            iload 2 /* flags */
            iconst_m1
            if_icmpne 4
         3: .line 2602
            new java.lang.AssertionError
            dup
            ldc "BUG: rb_maygvl_fd_fix_cloexec: fcntl(%d, F_GETFD) failed: %s"
            iconst_2
            anewarray java.lang.Object
            dup
            iconst_0
            iload 1 /* fd */
            invokestatic java.lang.Integer.valueOf:(I)Ljava/lang/Integer;
            aastore
            dup
            iconst_1
            aload 0 /* posix */
            invokevirtual org.jruby.util.io.PosixShim.getErrno:()Ljnr/constants/platform/Errno;
            invokevirtual jnr.constants.platform.Errno.description:()Ljava/lang/String;
            aastore
            invokestatic java.lang.String.format:(Ljava/lang/String;[Ljava/lang/Object;)Ljava/lang/String;
            invokespecial java.lang.AssertionError.<init>:(Ljava/lang/Object;)V
            athrow
         4: .line 2604
      StackMap locals: int
      StackMap stack:
            iload 1 /* fd */
            iconst_2
            if_icmpgt 7
         5: .line 2605
            iload 2 /* flags */
            bipush -2
            iand
            istore 3 /* flags2 */
        start local 3 // int flags2
         6: goto 8
        end local 3 // int flags2
         7: .line 2607
      StackMap locals:
      StackMap stack:
            iload 2 /* flags */
            iconst_1
            ior
            istore 3 /* flags2 */
        start local 3 // int flags2
         8: .line 2608
      StackMap locals: int
      StackMap stack:
            iload 2 /* flags */
            iload 3 /* flags2 */
            if_icmpeq 12
         9: .line 2609
            aload 0 /* posix */
            iload 1 /* fd */
            iload 3 /* flags2 */
            invokevirtual org.jruby.util.io.PosixShim.fcntlSetFD:(II)I
            istore 4 /* ret */
        start local 4 // int ret
        10: .line 2610
            iload 4 /* ret */
            iconst_m1
            if_icmpne 12
        11: .line 2611
            new java.lang.AssertionError
            dup
            ldc "BUG: rb_maygvl_fd_fix_cloexec: fcntl(%d, F_SETFD, %d) failed: %s"
            iconst_3
            anewarray java.lang.Object
            dup
            iconst_0
            iload 1 /* fd */
            invokestatic java.lang.Integer.valueOf:(I)Ljava/lang/Integer;
            aastore
            dup
            iconst_1
            iload 3 /* flags2 */
            invokestatic java.lang.Integer.valueOf:(I)Ljava/lang/Integer;
            aastore
            dup
            iconst_2
            aload 0 /* posix */
            invokevirtual org.jruby.util.io.PosixShim.getErrno:()Ljnr/constants/platform/Errno;
            invokevirtual jnr.constants.platform.Errno.description:()Ljava/lang/String;
            aastore
            invokestatic java.lang.String.format:(Ljava/lang/String;[Ljava/lang/Object;)Ljava/lang/String;
            invokespecial java.lang.AssertionError.<init>:(Ljava/lang/Object;)V
            athrow
        end local 4 // int ret
        end local 3 // int flags2
        end local 2 // int flags
        12: .line 2616
      StackMap locals:
      StackMap stack:
            return
        end local 1 // int fd
        end local 0 // org.jruby.util.io.PosixShim posix
      LocalVariableTable:
        Start  End  Slot    Name  Signature
            0   13     0   posix  Lorg/jruby/util/io/PosixShim;
            0   13     1      fd  I
            2   12     2   flags  I
            6    7     3  flags2  I
            8   12     3  flags2  I
           10   12     4     ret  I
    MethodParameters:
       Name  Flags
      posix  
      fd     

  public void addBlockingThread(org.jruby.RubyThread);
    descriptor: (Lorg/jruby/RubyThread;)V
    flags: (0x0001) ACC_PUBLIC
    Code:
      stack=4, locals=4, args_size=2
        start local 0 // org.jruby.util.io.OpenFile this
        start local 1 // org.jruby.RubyThread thread
         0: .line 2624
            aload 0 /* this */
            getfield org.jruby.util.io.OpenFile.blockingThreads:Ljava/util/Set;
            astore 2 /* blockingThreads */
        start local 2 // java.util.Set blockingThreads
         1: .line 2626
            aload 2 /* blockingThreads */
            ifnonnull 10
         2: .line 2627
            aload 0 /* this */
            dup
            astore 3
            monitorenter
         3: .line 2628
            aload 0 /* this */
            getfield org.jruby.util.io.OpenFile.blockingThreads:Ljava/util/Set;
            astore 2 /* blockingThreads */
         4: .line 2629
            aload 2 /* blockingThreads */
            ifnonnull 6
         5: .line 2630
            aload 0 /* this */
            new java.util.HashSet
            dup
            iconst_1
            invokespecial java.util.HashSet.<init>:(I)V
            dup
            astore 2 /* blockingThreads */
            putfield org.jruby.util.io.OpenFile.blockingThreads:Ljava/util/Set;
         6: .line 2627
      StackMap locals: java.util.Set org.jruby.util.io.OpenFile
      StackMap stack:
            aload 3
            monitorexit
         7: goto 10
      StackMap locals:
      StackMap stack: java.lang.Throwable
         8: aload 3
            monitorexit
         9: athrow
        10: .line 2635
      StackMap locals:
      StackMap stack:
            aload 2 /* blockingThreads */
            dup
            astore 3
            monitorenter
        11: .line 2636
            aload 2 /* blockingThreads */
            aload 1 /* thread */
            invokeinterface java.util.Set.add:(Ljava/lang/Object;)Z
            pop
        12: .line 2635
            aload 3
            monitorexit
        13: goto 16
      StackMap locals: org.jruby.util.io.OpenFile org.jruby.RubyThread java.util.Set java.util.Set
      StackMap stack: java.lang.Throwable
        14: aload 3
            monitorexit
        15: athrow
        16: .line 2638
      StackMap locals:
      StackMap stack:
            return
        end local 2 // java.util.Set blockingThreads
        end local 1 // org.jruby.RubyThread thread
        end local 0 // org.jruby.util.io.OpenFile this
      LocalVariableTable:
        Start  End  Slot             Name  Signature
            0   17     0             this  Lorg/jruby/util/io/OpenFile;
            0   17     1           thread  Lorg/jruby/RubyThread;
            1   17     2  blockingThreads  Ljava/util/Set<Lorg/jruby/RubyThread;>;
      Exception table:
        from    to  target  type
           3     7       8  any
           8     9       8  any
          11    13      14  any
          14    15      14  any
    MethodParameters:
        Name  Flags
      thread  

  public void removeBlockingThread(org.jruby.RubyThread);
    descriptor: (Lorg/jruby/RubyThread;)V
    flags: (0x0001) ACC_PUBLIC
    Code:
      stack=2, locals=4, args_size=2
        start local 0 // org.jruby.util.io.OpenFile this
        start local 1 // org.jruby.RubyThread thread
         0: .line 2646
            aload 0 /* this */
            getfield org.jruby.util.io.OpenFile.blockingThreads:Ljava/util/Set;
            astore 2 /* blockingThreads */
        start local 2 // java.util.Set blockingThreads
         1: .line 2648
            aload 2 /* blockingThreads */
            ifnonnull 3
         2: .line 2649
            return
         3: .line 2652
      StackMap locals: java.util.Set
      StackMap stack:
            aload 2 /* blockingThreads */
            dup
            astore 3
            monitorenter
         4: .line 2653
            aload 2 /* blockingThreads */
            aload 1 /* thread */
            invokeinterface java.util.Set.remove:(Ljava/lang/Object;)Z
            pop
         5: .line 2652
            aload 3
            monitorexit
         6: goto 9
      StackMap locals: org.jruby.util.io.OpenFile org.jruby.RubyThread java.util.Set java.util.Set
      StackMap stack: java.lang.Throwable
         7: aload 3
            monitorexit
         8: athrow
         9: .line 2655
      StackMap locals:
      StackMap stack:
            return
        end local 2 // java.util.Set blockingThreads
        end local 1 // org.jruby.RubyThread thread
        end local 0 // org.jruby.util.io.OpenFile this
      LocalVariableTable:
        Start  End  Slot             Name  Signature
            0   10     0             this  Lorg/jruby/util/io/OpenFile;
            0   10     1           thread  Lorg/jruby/RubyThread;
            1   10     2  blockingThreads  Ljava/util/Set<Lorg/jruby/RubyThread;>;
      Exception table:
        from    to  target  type
           4     6       7  any
           7     8       7  any
    MethodParameters:
        Name  Flags
      thread  

  public void interruptBlockingThreads(org.jruby.runtime.ThreadContext);
    descriptor: (Lorg/jruby/runtime/ThreadContext;)V
    flags: (0x0001) ACC_PUBLIC
    Code:
      stack=4, locals=7, args_size=2
        start local 0 // org.jruby.util.io.OpenFile this
        start local 1 // org.jruby.runtime.ThreadContext context
         0: .line 2661
            aload 0 /* this */
            getfield org.jruby.util.io.OpenFile.blockingThreads:Ljava/util/Set;
            astore 2 /* blockingThreads */
        start local 2 // java.util.Set blockingThreads
         1: .line 2663
            aload 2 /* blockingThreads */
            ifnonnull 3
         2: .line 2664
            return
         3: .line 2667
      StackMap locals: java.util.Set
      StackMap stack:
            aload 2 /* blockingThreads */
            dup
            astore 3
            monitorenter
         4: .line 2668
            aload 2 /* blockingThreads */
            invokeinterface java.util.Set.iterator:()Ljava/util/Iterator;
            astore 5
            goto 9
      StackMap locals: org.jruby.util.io.OpenFile org.jruby.runtime.ThreadContext java.util.Set java.util.Set top java.util.Iterator
      StackMap stack:
         5: aload 5
            invokeinterface java.util.Iterator.next:()Ljava/lang/Object;
            checkcast org.jruby.RubyThread
            astore 4 /* thread */
        start local 4 // org.jruby.RubyThread thread
         6: .line 2670
            aload 4 /* thread */
            aload 1 /* context */
            invokevirtual org.jruby.runtime.ThreadContext.getThread:()Lorg/jruby/RubyThread;
            if_acmpne 7
            goto 9
         7: .line 2673
      StackMap locals: org.jruby.util.io.OpenFile org.jruby.runtime.ThreadContext java.util.Set java.util.Set org.jruby.RubyThread java.util.Iterator
      StackMap stack:
            aload 0 /* this */
            getfield org.jruby.util.io.OpenFile.runtime:Lorg/jruby/Ruby;
            invokevirtual org.jruby.Ruby.getIOError:()Lorg/jruby/RubyClass;
            aload 1 /* context */
            aload 0 /* this */
            getfield org.jruby.util.io.OpenFile.runtime:Lorg/jruby/Ruby;
            ldc "stream closed in another thread"
            invokevirtual org.jruby.Ruby.newString:(Ljava/lang/String;)Lorg/jruby/RubyString;
            getstatic org.jruby.runtime.Block.NULL_BLOCK:Lorg/jruby/runtime/Block;
            invokevirtual org.jruby.RubyClass.newInstance:(Lorg/jruby/runtime/ThreadContext;Lorg/jruby/runtime/builtin/IRubyObject;Lorg/jruby/runtime/Block;)Lorg/jruby/runtime/builtin/IRubyObject;
            checkcast org.jruby.RubyException
            astore 6 /* exception */
        start local 6 // org.jruby.RubyException exception
         8: .line 2674
            aload 4 /* thread */
            aload 6 /* exception */
            invokevirtual org.jruby.RubyThread.raise:(Lorg/jruby/runtime/builtin/IRubyObject;)Lorg/jruby/runtime/builtin/IRubyObject;
            pop
        end local 6 // org.jruby.RubyException exception
        end local 4 // org.jruby.RubyThread thread
         9: .line 2668
      StackMap locals: org.jruby.util.io.OpenFile org.jruby.runtime.ThreadContext java.util.Set java.util.Set top java.util.Iterator
      StackMap stack:
            aload 5
            invokeinterface java.util.Iterator.hasNext:()Z
            ifne 5
        10: .line 2667
            aload 3
            monitorexit
        11: goto 14
      StackMap locals: org.jruby.util.io.OpenFile org.jruby.runtime.ThreadContext java.util.Set java.util.Set
      StackMap stack: java.lang.Throwable
        12: aload 3
            monitorexit
        13: athrow
        14: .line 2677
      StackMap locals:
      StackMap stack:
            return
        end local 2 // java.util.Set blockingThreads
        end local 1 // org.jruby.runtime.ThreadContext context
        end local 0 // org.jruby.util.io.OpenFile this
      LocalVariableTable:
        Start  End  Slot             Name  Signature
            0   15     0             this  Lorg/jruby/util/io/OpenFile;
            0   15     1          context  Lorg/jruby/runtime/ThreadContext;
            1   15     2  blockingThreads  Ljava/util/Set<Lorg/jruby/RubyThread;>;
            6    9     4           thread  Lorg/jruby/RubyThread;
            8    9     6        exception  Lorg/jruby/RubyException;
      Exception table:
        from    to  target  type
           4    11      12  any
          12    13      12  any
    MethodParameters:
         Name  Flags
      context  

  public void waitForBlockingThreads(org.jruby.runtime.ThreadContext);
    descriptor: (Lorg/jruby/runtime/ThreadContext;)V
    flags: (0x0001) ACC_PUBLIC
    Code:
      stack=3, locals=3, args_size=2
        start local 0 // org.jruby.util.io.OpenFile this
        start local 1 // org.jruby.runtime.ThreadContext context
         0: .line 2685
            aload 0 /* this */
            getfield org.jruby.util.io.OpenFile.blockingThreads:Ljava/util/Set;
            astore 2 /* blockingThreads */
        start local 2 // java.util.Set blockingThreads
         1: .line 2687
            aload 2 /* blockingThreads */
            ifnonnull 7
         2: .line 2688
            return
         3: .line 2693
      StackMap locals: java.util.Set
      StackMap stack:
            aload 1 /* context */
            invokevirtual org.jruby.runtime.ThreadContext.getThread:()Lorg/jruby/RubyThread;
            lconst_1
            invokevirtual org.jruby.RubyThread.sleep:(J)Z
            pop
         4: .line 2694
            goto 7
      StackMap locals:
      StackMap stack: java.lang.InterruptedException
         5: pop
         6: .line 2695
            goto 8
         7: .line 2691
      StackMap locals:
      StackMap stack:
            aload 2 /* blockingThreads */
            invokeinterface java.util.Set.size:()I
            ifgt 3
         8: .line 2698
      StackMap locals:
      StackMap stack:
            return
        end local 2 // java.util.Set blockingThreads
        end local 1 // org.jruby.runtime.ThreadContext context
        end local 0 // org.jruby.util.io.OpenFile this
      LocalVariableTable:
        Start  End  Slot             Name  Signature
            0    9     0             this  Lorg/jruby/util/io/OpenFile;
            0    9     1          context  Lorg/jruby/runtime/ThreadContext;
            1    9     2  blockingThreads  Ljava/util/Set<Lorg/jruby/RubyThread;>;
      Exception table:
        from    to  target  type
           3     4       5  Class java.lang.InterruptedException
    MethodParameters:
         Name  Flags
      context  

  public void SET_BINARY_MODE();
    descriptor: ()V
    flags: (0x0001) ACC_PUBLIC
    Code:
      stack=0, locals=1, args_size=1
        start local 0 // org.jruby.util.io.OpenFile this
         0: .line 2702
            return
        end local 0 // org.jruby.util.io.OpenFile this
      LocalVariableTable:
        Start  End  Slot  Name  Signature
            0    1     0  this  Lorg/jruby/util/io/OpenFile;

  private void SET_TEXT_MODE();
    descriptor: ()V
    flags: (0x0002) ACC_PRIVATE
    Code:
      stack=0, locals=1, args_size=1
        start local 0 // org.jruby.util.io.OpenFile this
         0: .line 2706
            return
        end local 0 // org.jruby.util.io.OpenFile this
      LocalVariableTable:
        Start  End  Slot  Name  Signature
            0    1     0  this  Lorg/jruby/util/io/OpenFile;

  public int remainSize();
    descriptor: ()I
    flags: (0x0001) ACC_PUBLIC
    Code:
      stack=6, locals=6, args_size=1
        start local 0 // org.jruby.util.io.OpenFile this
         0: .line 2709
            aload 0 /* this */
            invokevirtual org.jruby.util.io.OpenFile.READ_DATA_PENDING_COUNT:()I
            istore 1 /* siz */
        start local 1 // int siz
         1: .line 2713
            aload 0 /* this */
            getfield org.jruby.util.io.OpenFile.posix:Lorg/jruby/util/io/PosixShim;
            aload 0 /* this */
            getfield org.jruby.util.io.OpenFile.fd:Lorg/jruby/util/io/ChannelFD;
            invokevirtual org.jruby.util.io.PosixShim.size:(Lorg/jruby/util/io/ChannelFD;)J
            dup2
            lstore 2 /* size */
        start local 2 // long size
         2: lconst_0
            lcmp
            iflt 10
         3: .line 2714
            aload 0 /* this */
            getfield org.jruby.util.io.OpenFile.posix:Lorg/jruby/util/io/PosixShim;
            aload 0 /* this */
            getfield org.jruby.util.io.OpenFile.fd:Lorg/jruby/util/io/ChannelFD;
            lconst_0
            iconst_1
            invokevirtual org.jruby.util.io.PosixShim.lseek:(Lorg/jruby/util/io/ChannelFD;JI)J
            dup2
            lstore 4 /* pos */
        start local 4 // long pos
         4: ldc -1
            lcmp
            ifeq 10
         5: .line 2715
            lload 2 /* size */
            lload 4 /* pos */
            lcmp
            ifle 10
         6: .line 2716
            iload 1 /* siz */
            i2l
            lload 2 /* size */
            lload 4 /* pos */
            lsub
            ladd
            ldc 2147483647
            lcmp
            ifle 8
         7: .line 2717
            aload 0 /* this */
            getfield org.jruby.util.io.OpenFile.runtime:Lorg/jruby/Ruby;
            ldc "file too big for single read"
            invokevirtual org.jruby.Ruby.newIOError:(Ljava/lang/String;)Lorg/jruby/exceptions/RaiseException;
            athrow
         8: .line 2719
      StackMap locals: int long long
      StackMap stack:
            iload 1 /* siz */
            i2l
            lload 2 /* size */
            lload 4 /* pos */
            lsub
            ladd
            l2i
            istore 1 /* siz */
         9: .line 2720
            goto 11
        end local 4 // long pos
        10: .line 2721
      StackMap locals:
      StackMap stack:
            iinc 1 /* siz */ 1024
        11: .line 2723
      StackMap locals:
      StackMap stack:
            iload 1 /* siz */
            ireturn
        end local 2 // long size
        end local 1 // int siz
        end local 0 // org.jruby.util.io.OpenFile this
      LocalVariableTable:
        Start  End  Slot  Name  Signature
            0   12     0  this  Lorg/jruby/util/io/OpenFile;
            1   12     1   siz  I
            2   12     2  size  J
            4   10     4   pos  J

  public boolean lock();
    descriptor: ()Z
    flags: (0x0001) ACC_PUBLIC
    Code:
      stack=1, locals=1, args_size=1
        start local 0 // org.jruby.util.io.OpenFile this
         0: .line 2727
            aload 0 /* this */
            getfield org.jruby.util.io.OpenFile.lock:Ljava/util/concurrent/locks/ReentrantLock;
            invokevirtual java.util.concurrent.locks.ReentrantLock.isHeldByCurrentThread:()Z
            ifeq 2
         1: .line 2728
            iconst_0
            ireturn
         2: .line 2730
      StackMap locals:
      StackMap stack:
            aload 0 /* this */
            getfield org.jruby.util.io.OpenFile.lock:Ljava/util/concurrent/locks/ReentrantLock;
            invokevirtual java.util.concurrent.locks.ReentrantLock.lock:()V
         3: .line 2731
            iconst_1
            ireturn
        end local 0 // org.jruby.util.io.OpenFile this
      LocalVariableTable:
        Start  End  Slot  Name  Signature
            0    4     0  this  Lorg/jruby/util/io/OpenFile;

  public void unlock();
    descriptor: ()V
    flags: (0x0001) ACC_PUBLIC
    Code:
      stack=2, locals=1, args_size=1
        start local 0 // org.jruby.util.io.OpenFile this
         0: .line 2736
            getstatic org.jruby.util.io.OpenFile.$assertionsDisabled:Z
            ifne 1
            aload 0 /* this */
            getfield org.jruby.util.io.OpenFile.lock:Ljava/util/concurrent/locks/ReentrantLock;
            invokevirtual java.util.concurrent.locks.ReentrantLock.isHeldByCurrentThread:()Z
            ifne 1
            new java.lang.AssertionError
            dup
            invokespecial java.lang.AssertionError.<init>:()V
            athrow
         1: .line 2738
      StackMap locals:
      StackMap stack:
            aload 0 /* this */
            getfield org.jruby.util.io.OpenFile.lock:Ljava/util/concurrent/locks/ReentrantLock;
            invokevirtual java.util.concurrent.locks.ReentrantLock.unlock:()V
         2: .line 2739
            return
        end local 0 // org.jruby.util.io.OpenFile this
      LocalVariableTable:
        Start  End  Slot  Name  Signature
            0    3     0  this  Lorg/jruby/util/io/OpenFile;

  public boolean lockedByMe();
    descriptor: ()Z
    flags: (0x0001) ACC_PUBLIC
    Code:
      stack=1, locals=1, args_size=1
        start local 0 // org.jruby.util.io.OpenFile this
         0: .line 2742
            aload 0 /* this */
            getfield org.jruby.util.io.OpenFile.lock:Ljava/util/concurrent/locks/ReentrantLock;
            invokevirtual java.util.concurrent.locks.ReentrantLock.isHeldByCurrentThread:()Z
            ireturn
        end local 0 // org.jruby.util.io.OpenFile this
      LocalVariableTable:
        Start  End  Slot  Name  Signature
            0    1     0  this  Lorg/jruby/util/io/OpenFile;

  static int[] $SWITCH_TABLE$jnr$constants$platform$OpenFlags();
    descriptor: ()[I
    flags: (0x1008) ACC_STATIC, ACC_SYNTHETIC
    Code:
      stack=3, locals=1, args_size=0
         0: .line 51
            getstatic org.jruby.util.io.OpenFile.$SWITCH_TABLE$jnr$constants$platform$OpenFlags:[I
            dup
            ifnull 1
            areturn
      StackMap locals:
      StackMap stack: int[]
         1: pop
            invokestatic jnr.constants.platform.OpenFlags.values:()[Ljnr/constants/platform/OpenFlags;
            arraylength
            newarray 10
            astore 0
         2: aload 0
            getstatic jnr.constants.platform.OpenFlags.O_ACCMODE:Ljnr/constants/platform/OpenFlags;
            invokevirtual jnr.constants.platform.OpenFlags.ordinal:()I
            iconst_4
            iastore
         3: goto 5
      StackMap locals: int[]
      StackMap stack: java.lang.NoSuchFieldError
         4: pop
      StackMap locals:
      StackMap stack:
         5: aload 0
            getstatic jnr.constants.platform.OpenFlags.O_APPEND:Ljnr/constants/platform/OpenFlags;
            invokevirtual jnr.constants.platform.OpenFlags.ordinal:()I
            bipush 6
            iastore
         6: goto 8
      StackMap locals:
      StackMap stack: java.lang.NoSuchFieldError
         7: pop
      StackMap locals:
      StackMap stack:
         8: aload 0
            getstatic jnr.constants.platform.OpenFlags.O_ASYNC:Ljnr/constants/platform/OpenFlags;
            invokevirtual jnr.constants.platform.OpenFlags.ordinal:()I
            bipush 10
            iastore
         9: goto 11
      StackMap locals:
      StackMap stack: java.lang.NoSuchFieldError
        10: pop
      StackMap locals:
      StackMap stack:
        11: aload 0
            getstatic jnr.constants.platform.OpenFlags.O_BINARY:Ljnr/constants/platform/OpenFlags;
            invokevirtual jnr.constants.platform.OpenFlags.ordinal:()I
            bipush 19
            iastore
        12: goto 14
      StackMap locals:
      StackMap stack: java.lang.NoSuchFieldError
        13: pop
      StackMap locals:
      StackMap stack:
        14: aload 0
            getstatic jnr.constants.platform.OpenFlags.O_CLOEXEC:Ljnr/constants/platform/OpenFlags;
            invokevirtual jnr.constants.platform.OpenFlags.ordinal:()I
            bipush 22
            iastore
        15: goto 17
      StackMap locals:
      StackMap stack: java.lang.NoSuchFieldError
        16: pop
      StackMap locals:
      StackMap stack:
        17: aload 0
            getstatic jnr.constants.platform.OpenFlags.O_CREAT:Ljnr/constants/platform/OpenFlags;
            invokevirtual jnr.constants.platform.OpenFlags.ordinal:()I
            bipush 13
            iastore
        18: goto 20
      StackMap locals:
      StackMap stack: java.lang.NoSuchFieldError
        19: pop
      StackMap locals:
      StackMap stack:
        20: aload 0
            getstatic jnr.constants.platform.OpenFlags.O_DIRECTORY:Ljnr/constants/platform/OpenFlags;
            invokevirtual jnr.constants.platform.OpenFlags.ordinal:()I
            bipush 17
            iastore
        21: goto 23
      StackMap locals:
      StackMap stack: java.lang.NoSuchFieldError
        22: pop
      StackMap locals:
      StackMap stack:
        23: aload 0
            getstatic jnr.constants.platform.OpenFlags.O_EVTONLY:Ljnr/constants/platform/OpenFlags;
            invokevirtual jnr.constants.platform.OpenFlags.ordinal:()I
            bipush 16
            iastore
        24: goto 26
      StackMap locals:
      StackMap stack: java.lang.NoSuchFieldError
        25: pop
      StackMap locals:
      StackMap stack:
        26: aload 0
            getstatic jnr.constants.platform.OpenFlags.O_EXCL:Ljnr/constants/platform/OpenFlags;
            invokevirtual jnr.constants.platform.OpenFlags.ordinal:()I
            bipush 15
            iastore
        27: goto 29
      StackMap locals:
      StackMap stack: java.lang.NoSuchFieldError
        28: pop
      StackMap locals:
      StackMap stack:
        29: aload 0
            getstatic jnr.constants.platform.OpenFlags.O_EXLOCK:Ljnr/constants/platform/OpenFlags;
            invokevirtual jnr.constants.platform.OpenFlags.ordinal:()I
            bipush 9
            iastore
        30: goto 32
      StackMap locals:
      StackMap stack: java.lang.NoSuchFieldError
        31: pop
      StackMap locals:
      StackMap stack:
        32: aload 0
            getstatic jnr.constants.platform.OpenFlags.O_FSYNC:Ljnr/constants/platform/OpenFlags;
            invokevirtual jnr.constants.platform.OpenFlags.ordinal:()I
            bipush 11
            iastore
        33: goto 35
      StackMap locals:
      StackMap stack: java.lang.NoSuchFieldError
        34: pop
      StackMap locals:
      StackMap stack:
        35: aload 0
            getstatic jnr.constants.platform.OpenFlags.O_NOCTTY:Ljnr/constants/platform/OpenFlags;
            invokevirtual jnr.constants.platform.OpenFlags.ordinal:()I
            bipush 20
            iastore
        36: goto 38
      StackMap locals:
      StackMap stack: java.lang.NoSuchFieldError
        37: pop
      StackMap locals:
      StackMap stack:
        38: aload 0
            getstatic jnr.constants.platform.OpenFlags.O_NOFOLLOW:Ljnr/constants/platform/OpenFlags;
            invokevirtual jnr.constants.platform.OpenFlags.ordinal:()I
            bipush 12
            iastore
        39: goto 41
      StackMap locals:
      StackMap stack: java.lang.NoSuchFieldError
        40: pop
      StackMap locals:
      StackMap stack:
        41: aload 0
            getstatic jnr.constants.platform.OpenFlags.O_NONBLOCK:Ljnr/constants/platform/OpenFlags;
            invokevirtual jnr.constants.platform.OpenFlags.ordinal:()I
            iconst_5
            iastore
        42: goto 44
      StackMap locals:
      StackMap stack: java.lang.NoSuchFieldError
        43: pop
      StackMap locals:
      StackMap stack:
        44: aload 0
            getstatic jnr.constants.platform.OpenFlags.O_RDONLY:Ljnr/constants/platform/OpenFlags;
            invokevirtual jnr.constants.platform.OpenFlags.ordinal:()I
            iconst_1
            iastore
        45: goto 47
      StackMap locals:
      StackMap stack: java.lang.NoSuchFieldError
        46: pop
      StackMap locals:
      StackMap stack:
        47: aload 0
            getstatic jnr.constants.platform.OpenFlags.O_RDWR:Ljnr/constants/platform/OpenFlags;
            invokevirtual jnr.constants.platform.OpenFlags.ordinal:()I
            iconst_3
            iastore
        48: goto 50
      StackMap locals:
      StackMap stack: java.lang.NoSuchFieldError
        49: pop
      StackMap locals:
      StackMap stack:
        50: aload 0
            getstatic jnr.constants.platform.OpenFlags.O_SHLOCK:Ljnr/constants/platform/OpenFlags;
            invokevirtual jnr.constants.platform.OpenFlags.ordinal:()I
            bipush 8
            iastore
        51: goto 53
      StackMap locals:
      StackMap stack: java.lang.NoSuchFieldError
        52: pop
      StackMap locals:
      StackMap stack:
        53: aload 0
            getstatic jnr.constants.platform.OpenFlags.O_SYMLINK:Ljnr/constants/platform/OpenFlags;
            invokevirtual jnr.constants.platform.OpenFlags.ordinal:()I
            bipush 18
            iastore
        54: goto 56
      StackMap locals:
      StackMap stack: java.lang.NoSuchFieldError
        55: pop
      StackMap locals:
      StackMap stack:
        56: aload 0
            getstatic jnr.constants.platform.OpenFlags.O_SYNC:Ljnr/constants/platform/OpenFlags;
            invokevirtual jnr.constants.platform.OpenFlags.ordinal:()I
            bipush 7
            iastore
        57: goto 59
      StackMap locals:
      StackMap stack: java.lang.NoSuchFieldError
        58: pop
      StackMap locals:
      StackMap stack:
        59: aload 0
            getstatic jnr.constants.platform.OpenFlags.O_TMPFILE:Ljnr/constants/platform/OpenFlags;
            invokevirtual jnr.constants.platform.OpenFlags.ordinal:()I
            bipush 21
            iastore
        60: goto 62
      StackMap locals:
      StackMap stack: java.lang.NoSuchFieldError
        61: pop
      StackMap locals:
      StackMap stack:
        62: aload 0
            getstatic jnr.constants.platform.OpenFlags.O_TRUNC:Ljnr/constants/platform/OpenFlags;
            invokevirtual jnr.constants.platform.OpenFlags.ordinal:()I
            bipush 14
            iastore
        63: goto 65
      StackMap locals:
      StackMap stack: java.lang.NoSuchFieldError
        64: pop
      StackMap locals:
      StackMap stack:
        65: aload 0
            getstatic jnr.constants.platform.OpenFlags.O_WRONLY:Ljnr/constants/platform/OpenFlags;
            invokevirtual jnr.constants.platform.OpenFlags.ordinal:()I
            iconst_2
            iastore
        66: goto 68
      StackMap locals:
      StackMap stack: java.lang.NoSuchFieldError
        67: pop
      StackMap locals:
      StackMap stack:
        68: aload 0
            getstatic jnr.constants.platform.OpenFlags.__UNKNOWN_CONSTANT__:Ljnr/constants/platform/OpenFlags;
            invokevirtual jnr.constants.platform.OpenFlags.ordinal:()I
            bipush 23
            iastore
        69: goto 71
      StackMap locals:
      StackMap stack: java.lang.NoSuchFieldError
        70: pop
      StackMap locals:
      StackMap stack:
        71: aload 0
            dup
            putstatic org.jruby.util.io.OpenFile.$SWITCH_TABLE$jnr$constants$platform$OpenFlags:[I
            areturn
      LocalVariableTable:
        Start  End  Slot  Name  Signature
      Exception table:
        from    to  target  type
           2     3       4  Class java.lang.NoSuchFieldError
           5     6       7  Class java.lang.NoSuchFieldError
           8     9      10  Class java.lang.NoSuchFieldError
          11    12      13  Class java.lang.NoSuchFieldError
          14    15      16  Class java.lang.NoSuchFieldError
          17    18      19  Class java.lang.NoSuchFieldError
          20    21      22  Class java.lang.NoSuchFieldError
          23    24      25  Class java.lang.NoSuchFieldError
          26    27      28  Class java.lang.NoSuchFieldError
          29    30      31  Class java.lang.NoSuchFieldError
          32    33      34  Class java.lang.NoSuchFieldError
          35    36      37  Class java.lang.NoSuchFieldError
          38    39      40  Class java.lang.NoSuchFieldError
          41    42      43  Class java.lang.NoSuchFieldError
          44    45      46  Class java.lang.NoSuchFieldError
          47    48      49  Class java.lang.NoSuchFieldError
          50    51      52  Class java.lang.NoSuchFieldError
          53    54      55  Class java.lang.NoSuchFieldError
          56    57      58  Class java.lang.NoSuchFieldError
          59    60      61  Class java.lang.NoSuchFieldError
          62    63      64  Class java.lang.NoSuchFieldError
          65    66      67  Class java.lang.NoSuchFieldError
          68    69      70  Class java.lang.NoSuchFieldError

  static int[] $SWITCH_TABLE$jnr$constants$platform$Errno();
    descriptor: ()[I
    flags: (0x1008) ACC_STATIC, ACC_SYNTHETIC
    Code:
      stack=3, locals=1, args_size=0
         0: .line 51
            getstatic org.jruby.util.io.OpenFile.$SWITCH_TABLE$jnr$constants$platform$Errno:[I
            dup
            ifnull 1
            areturn
      StackMap locals:
      StackMap stack: int[]
         1: pop
            invokestatic jnr.constants.platform.Errno.values:()[Ljnr/constants/platform/Errno;
            arraylength
            newarray 10
            astore 0
         2: aload 0
            getstatic jnr.constants.platform.Errno.E2BIG:Ljnr/constants/platform/Errno;
            invokevirtual jnr.constants.platform.Errno.ordinal:()I
            bipush 7
            iastore
         3: goto 5
      StackMap locals: int[]
      StackMap stack: java.lang.NoSuchFieldError
         4: pop
      StackMap locals:
      StackMap stack:
         5: aload 0
            getstatic jnr.constants.platform.Errno.EACCES:Ljnr/constants/platform/Errno;
            invokevirtual jnr.constants.platform.Errno.ordinal:()I
            bipush 13
            iastore
         6: goto 8
      StackMap locals:
      StackMap stack: java.lang.NoSuchFieldError
         7: pop
      StackMap locals:
      StackMap stack:
         8: aload 0
            getstatic jnr.constants.platform.Errno.EADDRINUSE:Ljnr/constants/platform/Errno;
            invokevirtual jnr.constants.platform.Errno.ordinal:()I
            bipush 49
            iastore
         9: goto 11
      StackMap locals:
      StackMap stack: java.lang.NoSuchFieldError
        10: pop
      StackMap locals:
      StackMap stack:
        11: aload 0
            getstatic jnr.constants.platform.Errno.EADDRNOTAVAIL:Ljnr/constants/platform/Errno;
            invokevirtual jnr.constants.platform.Errno.ordinal:()I
            bipush 50
            iastore
        12: goto 14
      StackMap locals:
      StackMap stack: java.lang.NoSuchFieldError
        13: pop
      StackMap locals:
      StackMap stack:
        14: aload 0
            getstatic jnr.constants.platform.Errno.EADV:Ljnr/constants/platform/Errno;
            invokevirtual jnr.constants.platform.Errno.ordinal:()I
            bipush 104
            iastore
        15: goto 17
      StackMap locals:
      StackMap stack: java.lang.NoSuchFieldError
        16: pop
      StackMap locals:
      StackMap stack:
        17: aload 0
            getstatic jnr.constants.platform.Errno.EAFNOSUPPORT:Ljnr/constants/platform/Errno;
            invokevirtual jnr.constants.platform.Errno.ordinal:()I
            bipush 48
            iastore
        18: goto 20
      StackMap locals:
      StackMap stack: java.lang.NoSuchFieldError
        19: pop
      StackMap locals:
      StackMap stack:
        20: aload 0
            getstatic jnr.constants.platform.Errno.EAGAIN:Ljnr/constants/platform/Errno;
            invokevirtual jnr.constants.platform.Errno.ordinal:()I
            bipush 36
            iastore
        21: goto 23
      StackMap locals:
      StackMap stack: java.lang.NoSuchFieldError
        22: pop
      StackMap locals:
      StackMap stack:
        23: aload 0
            getstatic jnr.constants.platform.Errno.EALREADY:Ljnr/constants/platform/Errno;
            invokevirtual jnr.constants.platform.Errno.ordinal:()I
            bipush 38
            iastore
        24: goto 26
      StackMap locals:
      StackMap stack: java.lang.NoSuchFieldError
        25: pop
      StackMap locals:
      StackMap stack:
        26: aload 0
            getstatic jnr.constants.platform.Errno.EAUTH:Ljnr/constants/platform/Errno;
            invokevirtual jnr.constants.platform.Errno.ordinal:()I
            sipush 133
            iastore
        27: goto 29
      StackMap locals:
      StackMap stack: java.lang.NoSuchFieldError
        28: pop
      StackMap locals:
      StackMap stack:
        29: aload 0
            getstatic jnr.constants.platform.Errno.EBADE:Ljnr/constants/platform/Errno;
            invokevirtual jnr.constants.platform.Errno.ordinal:()I
            bipush 94
            iastore
        30: goto 32
      StackMap locals:
      StackMap stack: java.lang.NoSuchFieldError
        31: pop
      StackMap locals:
      StackMap stack:
        32: aload 0
            getstatic jnr.constants.platform.Errno.EBADF:Ljnr/constants/platform/Errno;
            invokevirtual jnr.constants.platform.Errno.ordinal:()I
            bipush 9
            iastore
        33: goto 35
      StackMap locals:
      StackMap stack: java.lang.NoSuchFieldError
        34: pop
      StackMap locals:
      StackMap stack:
        35: aload 0
            getstatic jnr.constants.platform.Errno.EBADFD:Ljnr/constants/platform/Errno;
            invokevirtual jnr.constants.platform.Errno.ordinal:()I
            bipush 109
            iastore
        36: goto 38
      StackMap locals:
      StackMap stack: java.lang.NoSuchFieldError
        37: pop
      StackMap locals:
      StackMap stack:
        38: aload 0
            getstatic jnr.constants.platform.Errno.EBADMSG:Ljnr/constants/platform/Errno;
            invokevirtual jnr.constants.platform.Errno.ordinal:()I
            bipush 78
            iastore
        39: goto 41
      StackMap locals:
      StackMap stack: java.lang.NoSuchFieldError
        40: pop
      StackMap locals:
      StackMap stack:
        41: aload 0
            getstatic jnr.constants.platform.Errno.EBADR:Ljnr/constants/platform/Errno;
            invokevirtual jnr.constants.platform.Errno.ordinal:()I
            bipush 95
            iastore
        42: goto 44
      StackMap locals:
      StackMap stack: java.lang.NoSuchFieldError
        43: pop
      StackMap locals:
      StackMap stack:
        44: aload 0
            getstatic jnr.constants.platform.Errno.EBADRPC:Ljnr/constants/platform/Errno;
            invokevirtual jnr.constants.platform.Errno.ordinal:()I
            sipush 134
            iastore
        45: goto 47
      StackMap locals:
      StackMap stack: java.lang.NoSuchFieldError
        46: pop
      StackMap locals:
      StackMap stack:
        47: aload 0
            getstatic jnr.constants.platform.Errno.EBADRQC:Ljnr/constants/platform/Errno;
            invokevirtual jnr.constants.platform.Errno.ordinal:()I
            bipush 98
            iastore
        48: goto 50
      StackMap locals:
      StackMap stack: java.lang.NoSuchFieldError
        49: pop
      StackMap locals:
      StackMap stack:
        50: aload 0
            getstatic jnr.constants.platform.Errno.EBADSLT:Ljnr/constants/platform/Errno;
            invokevirtual jnr.constants.platform.Errno.ordinal:()I
            bipush 99
            iastore
        51: goto 53
      StackMap locals:
      StackMap stack: java.lang.NoSuchFieldError
        52: pop
      StackMap locals:
      StackMap stack:
        53: aload 0
            getstatic jnr.constants.platform.Errno.EBFONT:Ljnr/constants/platform/Errno;
            invokevirtual jnr.constants.platform.Errno.ordinal:()I
            bipush 101
            iastore
        54: goto 56
      StackMap locals:
      StackMap stack: java.lang.NoSuchFieldError
        55: pop
      StackMap locals:
      StackMap stack:
        56: aload 0
            getstatic jnr.constants.platform.Errno.EBUSY:Ljnr/constants/platform/Errno;
            invokevirtual jnr.constants.platform.Errno.ordinal:()I
            bipush 16
            iastore
        57: goto 59
      StackMap locals:
      StackMap stack: java.lang.NoSuchFieldError
        58: pop
      StackMap locals:
      StackMap stack:
        59: aload 0
            getstatic jnr.constants.platform.Errno.ECANCELED:Ljnr/constants/platform/Errno;
            invokevirtual jnr.constants.platform.Errno.ordinal:()I
            bipush 123
            iastore
        60: goto 62
      StackMap locals:
      StackMap stack: java.lang.NoSuchFieldError
        61: pop
      StackMap locals:
      StackMap stack:
        62: aload 0
            getstatic jnr.constants.platform.Errno.ECAPMODE:Ljnr/constants/platform/Errno;
            invokevirtual jnr.constants.platform.Errno.ordinal:()I
            sipush 147
            iastore
        63: goto 65
      StackMap locals:
      StackMap stack: java.lang.NoSuchFieldError
        64: pop
      StackMap locals:
      StackMap stack:
        65: aload 0
            getstatic jnr.constants.platform.Errno.ECHILD:Ljnr/constants/platform/Errno;
            invokevirtual jnr.constants.platform.Errno.ordinal:()I
            bipush 10
            iastore
        66: goto 68
      StackMap locals:
      StackMap stack: java.lang.NoSuchFieldError
        67: pop
      StackMap locals:
      StackMap stack:
        68: aload 0
            getstatic jnr.constants.platform.Errno.ECHRNG:Ljnr/constants/platform/Errno;
            invokevirtual jnr.constants.platform.Errno.ordinal:()I
            bipush 86
            iastore
        69: goto 71
      StackMap locals:
      StackMap stack: java.lang.NoSuchFieldError
        70: pop
      StackMap locals:
      StackMap stack:
        71: aload 0
            getstatic jnr.constants.platform.Errno.ECOMM:Ljnr/constants/platform/Errno;
            invokevirtual jnr.constants.platform.Errno.ordinal:()I
            bipush 106
            iastore
        72: goto 74
      StackMap locals:
      StackMap stack: java.lang.NoSuchFieldError
        73: pop
      StackMap locals:
      StackMap stack:
        74: aload 0
            getstatic jnr.constants.platform.Errno.ECONNABORTED:Ljnr/constants/platform/Errno;
            invokevirtual jnr.constants.platform.Errno.ordinal:()I
            bipush 54
            iastore
        75: goto 77
      StackMap locals:
      StackMap stack: java.lang.NoSuchFieldError
        76: pop
      StackMap locals:
      StackMap stack:
        77: aload 0
            getstatic jnr.constants.platform.Errno.ECONNREFUSED:Ljnr/constants/platform/Errno;
            invokevirtual jnr.constants.platform.Errno.ordinal:()I
            bipush 62
            iastore
        78: goto 80
      StackMap locals:
      StackMap stack: java.lang.NoSuchFieldError
        79: pop
      StackMap locals:
      StackMap stack:
        80: aload 0
            getstatic jnr.constants.platform.Errno.ECONNRESET:Ljnr/constants/platform/Errno;
            invokevirtual jnr.constants.platform.Errno.ordinal:()I
            bipush 55
            iastore
        81: goto 83
      StackMap locals:
      StackMap stack: java.lang.NoSuchFieldError
        82: pop
      StackMap locals:
      StackMap stack:
        83: aload 0
            getstatic jnr.constants.platform.Errno.EDEADLK:Ljnr/constants/platform/Errno;
            invokevirtual jnr.constants.platform.Errno.ordinal:()I
            bipush 11
            iastore
        84: goto 86
      StackMap locals:
      StackMap stack: java.lang.NoSuchFieldError
        85: pop
      StackMap locals:
      StackMap stack:
        86: aload 0
            getstatic jnr.constants.platform.Errno.EDEADLOCK:Ljnr/constants/platform/Errno;
            invokevirtual jnr.constants.platform.Errno.ordinal:()I
            bipush 100
            iastore
        87: goto 89
      StackMap locals:
      StackMap stack: java.lang.NoSuchFieldError
        88: pop
      StackMap locals:
      StackMap stack:
        89: aload 0
            getstatic jnr.constants.platform.Errno.EDESTADDRREQ:Ljnr/constants/platform/Errno;
            invokevirtual jnr.constants.platform.Errno.ordinal:()I
            bipush 40
            iastore
        90: goto 92
      StackMap locals:
      StackMap stack: java.lang.NoSuchFieldError
        91: pop
      StackMap locals:
      StackMap stack:
        92: aload 0
            getstatic jnr.constants.platform.Errno.EDOM:Ljnr/constants/platform/Errno;
            invokevirtual jnr.constants.platform.Errno.ordinal:()I
            bipush 33
            iastore
        93: goto 95
      StackMap locals:
      StackMap stack: java.lang.NoSuchFieldError
        94: pop
      StackMap locals:
      StackMap stack:
        95: aload 0
            getstatic jnr.constants.platform.Errno.EDOOFUS:Ljnr/constants/platform/Errno;
            invokevirtual jnr.constants.platform.Errno.ordinal:()I
            sipush 135
            iastore
        96: goto 98
      StackMap locals:
      StackMap stack: java.lang.NoSuchFieldError
        97: pop
      StackMap locals:
      StackMap stack:
        98: aload 0
            getstatic jnr.constants.platform.Errno.EDOTDOT:Ljnr/constants/platform/Errno;
            invokevirtual jnr.constants.platform.Errno.ordinal:()I
            bipush 107
            iastore
        99: goto 101
      StackMap locals:
      StackMap stack: java.lang.NoSuchFieldError
       100: pop
      StackMap locals:
      StackMap stack:
       101: aload 0
            getstatic jnr.constants.platform.Errno.EDQUOT:Ljnr/constants/platform/Errno;
            invokevirtual jnr.constants.platform.Errno.ordinal:()I
            bipush 69
            iastore
       102: goto 104
      StackMap locals:
      StackMap stack: java.lang.NoSuchFieldError
       103: pop
      StackMap locals:
      StackMap stack:
       104: aload 0
            getstatic jnr.constants.platform.Errno.EEXIST:Ljnr/constants/platform/Errno;
            invokevirtual jnr.constants.platform.Errno.ordinal:()I
            bipush 17
            iastore
       105: goto 107
      StackMap locals:
      StackMap stack: java.lang.NoSuchFieldError
       106: pop
      StackMap locals:
      StackMap stack:
       107: aload 0
            getstatic jnr.constants.platform.Errno.EFAULT:Ljnr/constants/platform/Errno;
            invokevirtual jnr.constants.platform.Errno.ordinal:()I
            bipush 14
            iastore
       108: goto 110
      StackMap locals:
      StackMap stack: java.lang.NoSuchFieldError
       109: pop
      StackMap locals:
      StackMap stack:
       110: aload 0
            getstatic jnr.constants.platform.Errno.EFBIG:Ljnr/constants/platform/Errno;
            invokevirtual jnr.constants.platform.Errno.ordinal:()I
            bipush 27
            iastore
       111: goto 113
      StackMap locals:
      StackMap stack: java.lang.NoSuchFieldError
       112: pop
      StackMap locals:
      StackMap stack:
       113: aload 0
            getstatic jnr.constants.platform.Errno.EFTYPE:Ljnr/constants/platform/Errno;
            invokevirtual jnr.constants.platform.Errno.ordinal:()I
            sipush 136
            iastore
       114: goto 116
      StackMap locals:
      StackMap stack: java.lang.NoSuchFieldError
       115: pop
      StackMap locals:
      StackMap stack:
       116: aload 0
            getstatic jnr.constants.platform.Errno.EHOSTDOWN:Ljnr/constants/platform/Errno;
            invokevirtual jnr.constants.platform.Errno.ordinal:()I
            bipush 65
            iastore
       117: goto 119
      StackMap locals:
      StackMap stack: java.lang.NoSuchFieldError
       118: pop
      StackMap locals:
      StackMap stack:
       119: aload 0
            getstatic jnr.constants.platform.Errno.EHOSTUNREACH:Ljnr/constants/platform/Errno;
            invokevirtual jnr.constants.platform.Errno.ordinal:()I
            bipush 66
            iastore
       120: goto 122
      StackMap locals:
      StackMap stack: java.lang.NoSuchFieldError
       121: pop
      StackMap locals:
      StackMap stack:
       122: aload 0
            getstatic jnr.constants.platform.Errno.EHWPOISON:Ljnr/constants/platform/Errno;
            invokevirtual jnr.constants.platform.Errno.ordinal:()I
            sipush 146
            iastore
       123: goto 125
      StackMap locals:
      StackMap stack: java.lang.NoSuchFieldError
       124: pop
      StackMap locals:
      StackMap stack:
       125: aload 0
            getstatic jnr.constants.platform.Errno.EIDRM:Ljnr/constants/platform/Errno;
            invokevirtual jnr.constants.platform.Errno.ordinal:()I
            bipush 75
            iastore
       126: goto 128
      StackMap locals:
      StackMap stack: java.lang.NoSuchFieldError
       127: pop
      StackMap locals:
      StackMap stack:
       128: aload 0
            getstatic jnr.constants.platform.Errno.EILSEQ:Ljnr/constants/platform/Errno;
            invokevirtual jnr.constants.platform.Errno.ordinal:()I
            bipush 77
            iastore
       129: goto 131
      StackMap locals:
      StackMap stack: java.lang.NoSuchFieldError
       130: pop
      StackMap locals:
      StackMap stack:
       131: aload 0
            getstatic jnr.constants.platform.Errno.EINPROGRESS:Ljnr/constants/platform/Errno;
            invokevirtual jnr.constants.platform.Errno.ordinal:()I
            bipush 37
            iastore
       132: goto 134
      StackMap locals:
      StackMap stack: java.lang.NoSuchFieldError
       133: pop
      StackMap locals:
      StackMap stack:
       134: aload 0
            getstatic jnr.constants.platform.Errno.EINTR:Ljnr/constants/platform/Errno;
            invokevirtual jnr.constants.platform.Errno.ordinal:()I
            iconst_4
            iastore
       135: goto 137
      StackMap locals:
      StackMap stack: java.lang.NoSuchFieldError
       136: pop
      StackMap locals:
      StackMap stack:
       137: aload 0
            getstatic jnr.constants.platform.Errno.EINVAL:Ljnr/constants/platform/Errno;
            invokevirtual jnr.constants.platform.Errno.ordinal:()I
            bipush 22
            iastore
       138: goto 140
      StackMap locals:
      StackMap stack: java.lang.NoSuchFieldError
       139: pop
      StackMap locals:
      StackMap stack:
       140: aload 0
            getstatic jnr.constants.platform.Errno.EIO:Ljnr/constants/platform/Errno;
            invokevirtual jnr.constants.platform.Errno.ordinal:()I
            iconst_5
            iastore
       141: goto 143
      StackMap locals:
      StackMap stack: java.lang.NoSuchFieldError
       142: pop
      StackMap locals:
      StackMap stack:
       143: aload 0
            getstatic jnr.constants.platform.Errno.EIPSEC:Ljnr/constants/platform/Errno;
            invokevirtual jnr.constants.platform.Errno.ordinal:()I
            sipush 145
            iastore
       144: goto 146
      StackMap locals:
      StackMap stack: java.lang.NoSuchFieldError
       145: pop
      StackMap locals:
      StackMap stack:
       146: aload 0
            getstatic jnr.constants.platform.Errno.EISCONN:Ljnr/constants/platform/Errno;
            invokevirtual jnr.constants.platform.Errno.ordinal:()I
            bipush 57
            iastore
       147: goto 149
      StackMap locals:
      StackMap stack: java.lang.NoSuchFieldError
       148: pop
      StackMap locals:
      StackMap stack:
       149: aload 0
            getstatic jnr.constants.platform.Errno.EISDIR:Ljnr/constants/platform/Errno;
            invokevirtual jnr.constants.platform.Errno.ordinal:()I
            bipush 21
            iastore
       150: goto 152
      StackMap locals:
      StackMap stack: java.lang.NoSuchFieldError
       151: pop
      StackMap locals:
      StackMap stack:
       152: aload 0
            getstatic jnr.constants.platform.Errno.EISNAM:Ljnr/constants/platform/Errno;
            invokevirtual jnr.constants.platform.Errno.ordinal:()I
            bipush 121
            iastore
       153: goto 155
      StackMap locals:
      StackMap stack: java.lang.NoSuchFieldError
       154: pop
      StackMap locals:
      StackMap stack:
       155: aload 0
            getstatic jnr.constants.platform.Errno.EKEYEXPIRED:Ljnr/constants/platform/Errno;
            invokevirtual jnr.constants.platform.Errno.ordinal:()I
            bipush 124
            iastore
       156: goto 158
      StackMap locals:
      StackMap stack: java.lang.NoSuchFieldError
       157: pop
      StackMap locals:
      StackMap stack:
       158: aload 0
            getstatic jnr.constants.platform.Errno.EKEYREJECTED:Ljnr/constants/platform/Errno;
            invokevirtual jnr.constants.platform.Errno.ordinal:()I
            bipush 125
            iastore
       159: goto 161
      StackMap locals:
      StackMap stack: java.lang.NoSuchFieldError
       160: pop
      StackMap locals:
      StackMap stack:
       161: aload 0
            getstatic jnr.constants.platform.Errno.EKEYREVOKED:Ljnr/constants/platform/Errno;
            invokevirtual jnr.constants.platform.Errno.ordinal:()I
            bipush 126
            iastore
       162: goto 164
      StackMap locals:
      StackMap stack: java.lang.NoSuchFieldError
       163: pop
      StackMap locals:
      StackMap stack:
       164: aload 0
            getstatic jnr.constants.platform.Errno.EL2HLT:Ljnr/constants/platform/Errno;
            invokevirtual jnr.constants.platform.Errno.ordinal:()I
            bipush 93
            iastore
       165: goto 167
      StackMap locals:
      StackMap stack: java.lang.NoSuchFieldError
       166: pop
      StackMap locals:
      StackMap stack:
       167: aload 0
            getstatic jnr.constants.platform.Errno.EL2NSYNC:Ljnr/constants/platform/Errno;
            invokevirtual jnr.constants.platform.Errno.ordinal:()I
            bipush 87
            iastore
       168: goto 170
      StackMap locals:
      StackMap stack: java.lang.NoSuchFieldError
       169: pop
      StackMap locals:
      StackMap stack:
       170: aload 0
            getstatic jnr.constants.platform.Errno.EL3HLT:Ljnr/constants/platform/Errno;
            invokevirtual jnr.constants.platform.Errno.ordinal:()I
            bipush 88
            iastore
       171: goto 173
      StackMap locals:
      StackMap stack: java.lang.NoSuchFieldError
       172: pop
      StackMap locals:
      StackMap stack:
       173: aload 0
            getstatic jnr.constants.platform.Errno.EL3RST:Ljnr/constants/platform/Errno;
            invokevirtual jnr.constants.platform.Errno.ordinal:()I
            bipush 89
            iastore
       174: goto 176
      StackMap locals:
      StackMap stack: java.lang.NoSuchFieldError
       175: pop
      StackMap locals:
      StackMap stack:
       176: aload 0
            getstatic jnr.constants.platform.Errno.ELIBACC:Ljnr/constants/platform/Errno;
            invokevirtual jnr.constants.platform.Errno.ordinal:()I
            bipush 111
            iastore
       177: goto 179
      StackMap locals:
      StackMap stack: java.lang.NoSuchFieldError
       178: pop
      StackMap locals:
      StackMap stack:
       179: aload 0
            getstatic jnr.constants.platform.Errno.ELIBBAD:Ljnr/constants/platform/Errno;
            invokevirtual jnr.constants.platform.Errno.ordinal:()I
            bipush 112
            iastore
       180: goto 182
      StackMap locals:
      StackMap stack: java.lang.NoSuchFieldError
       181: pop
      StackMap locals:
      StackMap stack:
       182: aload 0
            getstatic jnr.constants.platform.Errno.ELIBEXEC:Ljnr/constants/platform/Errno;
            invokevirtual jnr.constants.platform.Errno.ordinal:()I
            bipush 115
            iastore
       183: goto 185
      StackMap locals:
      StackMap stack: java.lang.NoSuchFieldError
       184: pop
      StackMap locals:
      StackMap stack:
       185: aload 0
            getstatic jnr.constants.platform.Errno.ELIBMAX:Ljnr/constants/platform/Errno;
            invokevirtual jnr.constants.platform.Errno.ordinal:()I
            bipush 114
            iastore
       186: goto 188
      StackMap locals:
      StackMap stack: java.lang.NoSuchFieldError
       187: pop
      StackMap locals:
      StackMap stack:
       188: aload 0
            getstatic jnr.constants.platform.Errno.ELIBSCN:Ljnr/constants/platform/Errno;
            invokevirtual jnr.constants.platform.Errno.ordinal:()I
            bipush 113
            iastore
       189: goto 191
      StackMap locals:
      StackMap stack: java.lang.NoSuchFieldError
       190: pop
      StackMap locals:
      StackMap stack:
       191: aload 0
            getstatic jnr.constants.platform.Errno.ELNRNG:Ljnr/constants/platform/Errno;
            invokevirtual jnr.constants.platform.Errno.ordinal:()I
            bipush 90
            iastore
       192: goto 194
      StackMap locals:
      StackMap stack: java.lang.NoSuchFieldError
       193: pop
      StackMap locals:
      StackMap stack:
       194: aload 0
            getstatic jnr.constants.platform.Errno.ELOOP:Ljnr/constants/platform/Errno;
            invokevirtual jnr.constants.platform.Errno.ordinal:()I
            bipush 63
            iastore
       195: goto 197
      StackMap locals:
      StackMap stack: java.lang.NoSuchFieldError
       196: pop
      StackMap locals:
      StackMap stack:
       197: aload 0
            getstatic jnr.constants.platform.Errno.EMEDIUMTYPE:Ljnr/constants/platform/Errno;
            invokevirtual jnr.constants.platform.Errno.ordinal:()I
            bipush 127
            iastore
       198: goto 200
      StackMap locals:
      StackMap stack: java.lang.NoSuchFieldError
       199: pop
      StackMap locals:
      StackMap stack:
       200: aload 0
            getstatic jnr.constants.platform.Errno.EMFILE:Ljnr/constants/platform/Errno;
            invokevirtual jnr.constants.platform.Errno.ordinal:()I
            bipush 24
            iastore
       201: goto 203
      StackMap locals:
      StackMap stack: java.lang.NoSuchFieldError
       202: pop
      StackMap locals:
      StackMap stack:
       203: aload 0
            getstatic jnr.constants.platform.Errno.EMLINK:Ljnr/constants/platform/Errno;
            invokevirtual jnr.constants.platform.Errno.ordinal:()I
            bipush 31
            iastore
       204: goto 206
      StackMap locals:
      StackMap stack: java.lang.NoSuchFieldError
       205: pop
      StackMap locals:
      StackMap stack:
       206: aload 0
            getstatic jnr.constants.platform.Errno.EMSGSIZE:Ljnr/constants/platform/Errno;
            invokevirtual jnr.constants.platform.Errno.ordinal:()I
            bipush 41
            iastore
       207: goto 209
      StackMap locals:
      StackMap stack: java.lang.NoSuchFieldError
       208: pop
      StackMap locals:
      StackMap stack:
       209: aload 0
            getstatic jnr.constants.platform.Errno.EMULTIHOP:Ljnr/constants/platform/Errno;
            invokevirtual jnr.constants.platform.Errno.ordinal:()I
            bipush 79
            iastore
       210: goto 212
      StackMap locals:
      StackMap stack: java.lang.NoSuchFieldError
       211: pop
      StackMap locals:
      StackMap stack:
       212: aload 0
            getstatic jnr.constants.platform.Errno.ENAMETOOLONG:Ljnr/constants/platform/Errno;
            invokevirtual jnr.constants.platform.Errno.ordinal:()I
            bipush 64
            iastore
       213: goto 215
      StackMap locals:
      StackMap stack: java.lang.NoSuchFieldError
       214: pop
      StackMap locals:
      StackMap stack:
       215: aload 0
            getstatic jnr.constants.platform.Errno.ENAVAIL:Ljnr/constants/platform/Errno;
            invokevirtual jnr.constants.platform.Errno.ordinal:()I
            bipush 120
            iastore
       216: goto 218
      StackMap locals:
      StackMap stack: java.lang.NoSuchFieldError
       217: pop
      StackMap locals:
      StackMap stack:
       218: aload 0
            getstatic jnr.constants.platform.Errno.ENEEDAUTH:Ljnr/constants/platform/Errno;
            invokevirtual jnr.constants.platform.Errno.ordinal:()I
            sipush 137
            iastore
       219: goto 221
      StackMap locals:
      StackMap stack: java.lang.NoSuchFieldError
       220: pop
      StackMap locals:
      StackMap stack:
       221: aload 0
            getstatic jnr.constants.platform.Errno.ENETDOWN:Ljnr/constants/platform/Errno;
            invokevirtual jnr.constants.platform.Errno.ordinal:()I
            bipush 51
            iastore
       222: goto 224
      StackMap locals:
      StackMap stack: java.lang.NoSuchFieldError
       223: pop
      StackMap locals:
      StackMap stack:
       224: aload 0
            getstatic jnr.constants.platform.Errno.ENETRESET:Ljnr/constants/platform/Errno;
            invokevirtual jnr.constants.platform.Errno.ordinal:()I
            bipush 53
            iastore
       225: goto 227
      StackMap locals:
      StackMap stack: java.lang.NoSuchFieldError
       226: pop
      StackMap locals:
      StackMap stack:
       227: aload 0
            getstatic jnr.constants.platform.Errno.ENETUNREACH:Ljnr/constants/platform/Errno;
            invokevirtual jnr.constants.platform.Errno.ordinal:()I
            bipush 52
            iastore
       228: goto 230
      StackMap locals:
      StackMap stack: java.lang.NoSuchFieldError
       229: pop
      StackMap locals:
      StackMap stack:
       230: aload 0
            getstatic jnr.constants.platform.Errno.ENFILE:Ljnr/constants/platform/Errno;
            invokevirtual jnr.constants.platform.Errno.ordinal:()I
            bipush 23
            iastore
       231: goto 233
      StackMap locals:
      StackMap stack: java.lang.NoSuchFieldError
       232: pop
      StackMap locals:
      StackMap stack:
       233: aload 0
            getstatic jnr.constants.platform.Errno.ENOANO:Ljnr/constants/platform/Errno;
            invokevirtual jnr.constants.platform.Errno.ordinal:()I
            bipush 97
            iastore
       234: goto 236
      StackMap locals:
      StackMap stack: java.lang.NoSuchFieldError
       235: pop
      StackMap locals:
      StackMap stack:
       236: aload 0
            getstatic jnr.constants.platform.Errno.ENOATTR:Ljnr/constants/platform/Errno;
            invokevirtual jnr.constants.platform.Errno.ordinal:()I
            sipush 138
            iastore
       237: goto 239
      StackMap locals:
      StackMap stack: java.lang.NoSuchFieldError
       238: pop
      StackMap locals:
      StackMap stack:
       239: aload 0
            getstatic jnr.constants.platform.Errno.ENOBUFS:Ljnr/constants/platform/Errno;
            invokevirtual jnr.constants.platform.Errno.ordinal:()I
            bipush 56
            iastore
       240: goto 242
      StackMap locals:
      StackMap stack: java.lang.NoSuchFieldError
       241: pop
      StackMap locals:
      StackMap stack:
       242: aload 0
            getstatic jnr.constants.platform.Errno.ENOCSI:Ljnr/constants/platform/Errno;
            invokevirtual jnr.constants.platform.Errno.ordinal:()I
            bipush 92
            iastore
       243: goto 245
      StackMap locals:
      StackMap stack: java.lang.NoSuchFieldError
       244: pop
      StackMap locals:
      StackMap stack:
       245: aload 0
            getstatic jnr.constants.platform.Errno.ENODATA:Ljnr/constants/platform/Errno;
            invokevirtual jnr.constants.platform.Errno.ordinal:()I
            bipush 80
            iastore
       246: goto 248
      StackMap locals:
      StackMap stack: java.lang.NoSuchFieldError
       247: pop
      StackMap locals:
      StackMap stack:
       248: aload 0
            getstatic jnr.constants.platform.Errno.ENODEV:Ljnr/constants/platform/Errno;
            invokevirtual jnr.constants.platform.Errno.ordinal:()I
            bipush 19
            iastore
       249: goto 251
      StackMap locals:
      StackMap stack: java.lang.NoSuchFieldError
       250: pop
      StackMap locals:
      StackMap stack:
       251: aload 0
            getstatic jnr.constants.platform.Errno.ENOENT:Ljnr/constants/platform/Errno;
            invokevirtual jnr.constants.platform.Errno.ordinal:()I
            iconst_2
            iastore
       252: goto 254
      StackMap locals:
      StackMap stack: java.lang.NoSuchFieldError
       253: pop
      StackMap locals:
      StackMap stack:
       254: aload 0
            getstatic jnr.constants.platform.Errno.ENOEXEC:Ljnr/constants/platform/Errno;
            invokevirtual jnr.constants.platform.Errno.ordinal:()I
            bipush 8
            iastore
       255: goto 257
      StackMap locals:
      StackMap stack: java.lang.NoSuchFieldError
       256: pop
      StackMap locals:
      StackMap stack:
       257: aload 0
            getstatic jnr.constants.platform.Errno.ENOKEY:Ljnr/constants/platform/Errno;
            invokevirtual jnr.constants.platform.Errno.ordinal:()I
            sipush 128
            iastore
       258: goto 260
      StackMap locals:
      StackMap stack: java.lang.NoSuchFieldError
       259: pop
      StackMap locals:
      StackMap stack:
       260: aload 0
            getstatic jnr.constants.platform.Errno.ENOLCK:Ljnr/constants/platform/Errno;
            invokevirtual jnr.constants.platform.Errno.ordinal:()I
            bipush 72
            iastore
       261: goto 263
      StackMap locals:
      StackMap stack: java.lang.NoSuchFieldError
       262: pop
      StackMap locals:
      StackMap stack:
       263: aload 0
            getstatic jnr.constants.platform.Errno.ENOLINK:Ljnr/constants/platform/Errno;
            invokevirtual jnr.constants.platform.Errno.ordinal:()I
            bipush 81
            iastore
       264: goto 266
      StackMap locals:
      StackMap stack: java.lang.NoSuchFieldError
       265: pop
      StackMap locals:
      StackMap stack:
       266: aload 0
            getstatic jnr.constants.platform.Errno.ENOMEDIUM:Ljnr/constants/platform/Errno;
            invokevirtual jnr.constants.platform.Errno.ordinal:()I
            sipush 129
            iastore
       267: goto 269
      StackMap locals:
      StackMap stack: java.lang.NoSuchFieldError
       268: pop
      StackMap locals:
      StackMap stack:
       269: aload 0
            getstatic jnr.constants.platform.Errno.ENOMEM:Ljnr/constants/platform/Errno;
            invokevirtual jnr.constants.platform.Errno.ordinal:()I
            bipush 12
            iastore
       270: goto 272
      StackMap locals:
      StackMap stack: java.lang.NoSuchFieldError
       271: pop
      StackMap locals:
      StackMap stack:
       272: aload 0
            getstatic jnr.constants.platform.Errno.ENOMSG:Ljnr/constants/platform/Errno;
            invokevirtual jnr.constants.platform.Errno.ordinal:()I
            bipush 76
            iastore
       273: goto 275
      StackMap locals:
      StackMap stack: java.lang.NoSuchFieldError
       274: pop
      StackMap locals:
      StackMap stack:
       275: aload 0
            getstatic jnr.constants.platform.Errno.ENONET:Ljnr/constants/platform/Errno;
            invokevirtual jnr.constants.platform.Errno.ordinal:()I
            bipush 102
            iastore
       276: goto 278
      StackMap locals:
      StackMap stack: java.lang.NoSuchFieldError
       277: pop
      StackMap locals:
      StackMap stack:
       278: aload 0
            getstatic jnr.constants.platform.Errno.ENOPKG:Ljnr/constants/platform/Errno;
            invokevirtual jnr.constants.platform.Errno.ordinal:()I
            bipush 103
            iastore
       279: goto 281
      StackMap locals:
      StackMap stack: java.lang.NoSuchFieldError
       280: pop
      StackMap locals:
      StackMap stack:
       281: aload 0
            getstatic jnr.constants.platform.Errno.ENOPROTOOPT:Ljnr/constants/platform/Errno;
            invokevirtual jnr.constants.platform.Errno.ordinal:()I
            bipush 43
            iastore
       282: goto 284
      StackMap locals:
      StackMap stack: java.lang.NoSuchFieldError
       283: pop
      StackMap locals:
      StackMap stack:
       284: aload 0
            getstatic jnr.constants.platform.Errno.ENOSPC:Ljnr/constants/platform/Errno;
            invokevirtual jnr.constants.platform.Errno.ordinal:()I
            bipush 28
            iastore
       285: goto 287
      StackMap locals:
      StackMap stack: java.lang.NoSuchFieldError
       286: pop
      StackMap locals:
      StackMap stack:
       287: aload 0
            getstatic jnr.constants.platform.Errno.ENOSR:Ljnr/constants/platform/Errno;
            invokevirtual jnr.constants.platform.Errno.ordinal:()I
            bipush 82
            iastore
       288: goto 290
      StackMap locals:
      StackMap stack: java.lang.NoSuchFieldError
       289: pop
      StackMap locals:
      StackMap stack:
       290: aload 0
            getstatic jnr.constants.platform.Errno.ENOSTR:Ljnr/constants/platform/Errno;
            invokevirtual jnr.constants.platform.Errno.ordinal:()I
            bipush 83
            iastore
       291: goto 293
      StackMap locals:
      StackMap stack: java.lang.NoSuchFieldError
       292: pop
      StackMap locals:
      StackMap stack:
       293: aload 0
            getstatic jnr.constants.platform.Errno.ENOSYS:Ljnr/constants/platform/Errno;
            invokevirtual jnr.constants.platform.Errno.ordinal:()I
            bipush 73
            iastore
       294: goto 296
      StackMap locals:
      StackMap stack: java.lang.NoSuchFieldError
       295: pop
      StackMap locals:
      StackMap stack:
       296: aload 0
            getstatic jnr.constants.platform.Errno.ENOTBLK:Ljnr/constants/platform/Errno;
            invokevirtual jnr.constants.platform.Errno.ordinal:()I
            bipush 15
            iastore
       297: goto 299
      StackMap locals:
      StackMap stack: java.lang.NoSuchFieldError
       298: pop
      StackMap locals:
      StackMap stack:
       299: aload 0
            getstatic jnr.constants.platform.Errno.ENOTCAPABLE:Ljnr/constants/platform/Errno;
            invokevirtual jnr.constants.platform.Errno.ordinal:()I
            sipush 148
            iastore
       300: goto 302
      StackMap locals:
      StackMap stack: java.lang.NoSuchFieldError
       301: pop
      StackMap locals:
      StackMap stack:
       302: aload 0
            getstatic jnr.constants.platform.Errno.ENOTCONN:Ljnr/constants/platform/Errno;
            invokevirtual jnr.constants.platform.Errno.ordinal:()I
            bipush 58
            iastore
       303: goto 305
      StackMap locals:
      StackMap stack: java.lang.NoSuchFieldError
       304: pop
      StackMap locals:
      StackMap stack:
       305: aload 0
            getstatic jnr.constants.platform.Errno.ENOTDIR:Ljnr/constants/platform/Errno;
            invokevirtual jnr.constants.platform.Errno.ordinal:()I
            bipush 20
            iastore
       306: goto 308
      StackMap locals:
      StackMap stack: java.lang.NoSuchFieldError
       307: pop
      StackMap locals:
      StackMap stack:
       308: aload 0
            getstatic jnr.constants.platform.Errno.ENOTEMPTY:Ljnr/constants/platform/Errno;
            invokevirtual jnr.constants.platform.Errno.ordinal:()I
            bipush 67
            iastore
       309: goto 311
      StackMap locals:
      StackMap stack: java.lang.NoSuchFieldError
       310: pop
      StackMap locals:
      StackMap stack:
       311: aload 0
            getstatic jnr.constants.platform.Errno.ENOTNAM:Ljnr/constants/platform/Errno;
            invokevirtual jnr.constants.platform.Errno.ordinal:()I
            bipush 119
            iastore
       312: goto 314
      StackMap locals:
      StackMap stack: java.lang.NoSuchFieldError
       313: pop
      StackMap locals:
      StackMap stack:
       314: aload 0
            getstatic jnr.constants.platform.Errno.ENOTRECOVERABLE:Ljnr/constants/platform/Errno;
            invokevirtual jnr.constants.platform.Errno.ordinal:()I
            sipush 130
            iastore
       315: goto 317
      StackMap locals:
      StackMap stack: java.lang.NoSuchFieldError
       316: pop
      StackMap locals:
      StackMap stack:
       317: aload 0
            getstatic jnr.constants.platform.Errno.ENOTSOCK:Ljnr/constants/platform/Errno;
            invokevirtual jnr.constants.platform.Errno.ordinal:()I
            bipush 39
            iastore
       318: goto 320
      StackMap locals:
      StackMap stack: java.lang.NoSuchFieldError
       319: pop
      StackMap locals:
      StackMap stack:
       320: aload 0
            getstatic jnr.constants.platform.Errno.ENOTSUP:Ljnr/constants/platform/Errno;
            invokevirtual jnr.constants.platform.Errno.ordinal:()I
            sipush 139
            iastore
       321: goto 323
      StackMap locals:
      StackMap stack: java.lang.NoSuchFieldError
       322: pop
      StackMap locals:
      StackMap stack:
       323: aload 0
            getstatic jnr.constants.platform.Errno.ENOTTY:Ljnr/constants/platform/Errno;
            invokevirtual jnr.constants.platform.Errno.ordinal:()I
            bipush 25
            iastore
       324: goto 326
      StackMap locals:
      StackMap stack: java.lang.NoSuchFieldError
       325: pop
      StackMap locals:
      StackMap stack:
       326: aload 0
            getstatic jnr.constants.platform.Errno.ENOTUNIQ:Ljnr/constants/platform/Errno;
            invokevirtual jnr.constants.platform.Errno.ordinal:()I
            bipush 108
            iastore
       327: goto 329
      StackMap locals:
      StackMap stack: java.lang.NoSuchFieldError
       328: pop
      StackMap locals:
      StackMap stack:
       329: aload 0
            getstatic jnr.constants.platform.Errno.ENXIO:Ljnr/constants/platform/Errno;
            invokevirtual jnr.constants.platform.Errno.ordinal:()I
            bipush 6
            iastore
       330: goto 332
      StackMap locals:
      StackMap stack: java.lang.NoSuchFieldError
       331: pop
      StackMap locals:
      StackMap stack:
       332: aload 0
            getstatic jnr.constants.platform.Errno.EOPNOTSUPP:Ljnr/constants/platform/Errno;
            invokevirtual jnr.constants.platform.Errno.ordinal:()I
            bipush 46
            iastore
       333: goto 335
      StackMap locals:
      StackMap stack: java.lang.NoSuchFieldError
       334: pop
      StackMap locals:
      StackMap stack:
       335: aload 0
            getstatic jnr.constants.platform.Errno.EOVERFLOW:Ljnr/constants/platform/Errno;
            invokevirtual jnr.constants.platform.Errno.ordinal:()I
            bipush 74
            iastore
       336: goto 338
      StackMap locals:
      StackMap stack: java.lang.NoSuchFieldError
       337: pop
      StackMap locals:
      StackMap stack:
       338: aload 0
            getstatic jnr.constants.platform.Errno.EOWNERDEAD:Ljnr/constants/platform/Errno;
            invokevirtual jnr.constants.platform.Errno.ordinal:()I
            sipush 131
            iastore
       339: goto 341
      StackMap locals:
      StackMap stack: java.lang.NoSuchFieldError
       340: pop
      StackMap locals:
      StackMap stack:
       341: aload 0
            getstatic jnr.constants.platform.Errno.EPERM:Ljnr/constants/platform/Errno;
            invokevirtual jnr.constants.platform.Errno.ordinal:()I
            iconst_1
            iastore
       342: goto 344
      StackMap locals:
      StackMap stack: java.lang.NoSuchFieldError
       343: pop
      StackMap locals:
      StackMap stack:
       344: aload 0
            getstatic jnr.constants.platform.Errno.EPFNOSUPPORT:Ljnr/constants/platform/Errno;
            invokevirtual jnr.constants.platform.Errno.ordinal:()I
            bipush 47
            iastore
       345: goto 347
      StackMap locals:
      StackMap stack: java.lang.NoSuchFieldError
       346: pop
      StackMap locals:
      StackMap stack:
       347: aload 0
            getstatic jnr.constants.platform.Errno.EPIPE:Ljnr/constants/platform/Errno;
            invokevirtual jnr.constants.platform.Errno.ordinal:()I
            bipush 32
            iastore
       348: goto 350
      StackMap locals:
      StackMap stack: java.lang.NoSuchFieldError
       349: pop
      StackMap locals:
      StackMap stack:
       350: aload 0
            getstatic jnr.constants.platform.Errno.EPROCLIM:Ljnr/constants/platform/Errno;
            invokevirtual jnr.constants.platform.Errno.ordinal:()I
            sipush 140
            iastore
       351: goto 353
      StackMap locals:
      StackMap stack: java.lang.NoSuchFieldError
       352: pop
      StackMap locals:
      StackMap stack:
       353: aload 0
            getstatic jnr.constants.platform.Errno.EPROCUNAVAIL:Ljnr/constants/platform/Errno;
            invokevirtual jnr.constants.platform.Errno.ordinal:()I
            sipush 141
            iastore
       354: goto 356
      StackMap locals:
      StackMap stack: java.lang.NoSuchFieldError
       355: pop
      StackMap locals:
      StackMap stack:
       356: aload 0
            getstatic jnr.constants.platform.Errno.EPROGMISMATCH:Ljnr/constants/platform/Errno;
            invokevirtual jnr.constants.platform.Errno.ordinal:()I
            sipush 142
            iastore
       357: goto 359
      StackMap locals:
      StackMap stack: java.lang.NoSuchFieldError
       358: pop
      StackMap locals:
      StackMap stack:
       359: aload 0
            getstatic jnr.constants.platform.Errno.EPROGUNAVAIL:Ljnr/constants/platform/Errno;
            invokevirtual jnr.constants.platform.Errno.ordinal:()I
            sipush 143
            iastore
       360: goto 362
      StackMap locals:
      StackMap stack: java.lang.NoSuchFieldError
       361: pop
      StackMap locals:
      StackMap stack:
       362: aload 0
            getstatic jnr.constants.platform.Errno.EPROTO:Ljnr/constants/platform/Errno;
            invokevirtual jnr.constants.platform.Errno.ordinal:()I
            bipush 84
            iastore
       363: goto 365
      StackMap locals:
      StackMap stack: java.lang.NoSuchFieldError
       364: pop
      StackMap locals:
      StackMap stack:
       365: aload 0
            getstatic jnr.constants.platform.Errno.EPROTONOSUPPORT:Ljnr/constants/platform/Errno;
            invokevirtual jnr.constants.platform.Errno.ordinal:()I
            bipush 44
            iastore
       366: goto 368
      StackMap locals:
      StackMap stack: java.lang.NoSuchFieldError
       367: pop
      StackMap locals:
      StackMap stack:
       368: aload 0
            getstatic jnr.constants.platform.Errno.EPROTOTYPE:Ljnr/constants/platform/Errno;
            invokevirtual jnr.constants.platform.Errno.ordinal:()I
            bipush 42
            iastore
       369: goto 371
      StackMap locals:
      StackMap stack: java.lang.NoSuchFieldError
       370: pop
      StackMap locals:
      StackMap stack:
       371: aload 0
            getstatic jnr.constants.platform.Errno.ERANGE:Ljnr/constants/platform/Errno;
            invokevirtual jnr.constants.platform.Errno.ordinal:()I
            bipush 34
            iastore
       372: goto 374
      StackMap locals:
      StackMap stack: java.lang.NoSuchFieldError
       373: pop
      StackMap locals:
      StackMap stack:
       374: aload 0
            getstatic jnr.constants.platform.Errno.EREMCHG:Ljnr/constants/platform/Errno;
            invokevirtual jnr.constants.platform.Errno.ordinal:()I
            bipush 110
            iastore
       375: goto 377
      StackMap locals:
      StackMap stack: java.lang.NoSuchFieldError
       376: pop
      StackMap locals:
      StackMap stack:
       377: aload 0
            getstatic jnr.constants.platform.Errno.EREMOTE:Ljnr/constants/platform/Errno;
            invokevirtual jnr.constants.platform.Errno.ordinal:()I
            bipush 71
            iastore
       378: goto 380
      StackMap locals:
      StackMap stack: java.lang.NoSuchFieldError
       379: pop
      StackMap locals:
      StackMap stack:
       380: aload 0
            getstatic jnr.constants.platform.Errno.EREMOTEIO:Ljnr/constants/platform/Errno;
            invokevirtual jnr.constants.platform.Errno.ordinal:()I
            bipush 122
            iastore
       381: goto 383
      StackMap locals:
      StackMap stack: java.lang.NoSuchFieldError
       382: pop
      StackMap locals:
      StackMap stack:
       383: aload 0
            getstatic jnr.constants.platform.Errno.ERESTART:Ljnr/constants/platform/Errno;
            invokevirtual jnr.constants.platform.Errno.ordinal:()I
            bipush 116
            iastore
       384: goto 386
      StackMap locals:
      StackMap stack: java.lang.NoSuchFieldError
       385: pop
      StackMap locals:
      StackMap stack:
       386: aload 0
            getstatic jnr.constants.platform.Errno.ERFKILL:Ljnr/constants/platform/Errno;
            invokevirtual jnr.constants.platform.Errno.ordinal:()I
            sipush 132
            iastore
       387: goto 389
      StackMap locals:
      StackMap stack: java.lang.NoSuchFieldError
       388: pop
      StackMap locals:
      StackMap stack:
       389: aload 0
            getstatic jnr.constants.platform.Errno.EROFS:Ljnr/constants/platform/Errno;
            invokevirtual jnr.constants.platform.Errno.ordinal:()I
            bipush 30
            iastore
       390: goto 392
      StackMap locals:
      StackMap stack: java.lang.NoSuchFieldError
       391: pop
      StackMap locals:
      StackMap stack:
       392: aload 0
            getstatic jnr.constants.platform.Errno.ERPCMISMATCH:Ljnr/constants/platform/Errno;
            invokevirtual jnr.constants.platform.Errno.ordinal:()I
            sipush 144
            iastore
       393: goto 395
      StackMap locals:
      StackMap stack: java.lang.NoSuchFieldError
       394: pop
      StackMap locals:
      StackMap stack:
       395: aload 0
            getstatic jnr.constants.platform.Errno.ESHUTDOWN:Ljnr/constants/platform/Errno;
            invokevirtual jnr.constants.platform.Errno.ordinal:()I
            bipush 59
            iastore
       396: goto 398
      StackMap locals:
      StackMap stack: java.lang.NoSuchFieldError
       397: pop
      StackMap locals:
      StackMap stack:
       398: aload 0
            getstatic jnr.constants.platform.Errno.ESOCKTNOSUPPORT:Ljnr/constants/platform/Errno;
            invokevirtual jnr.constants.platform.Errno.ordinal:()I
            bipush 45
            iastore
       399: goto 401
      StackMap locals:
      StackMap stack: java.lang.NoSuchFieldError
       400: pop
      StackMap locals:
      StackMap stack:
       401: aload 0
            getstatic jnr.constants.platform.Errno.ESPIPE:Ljnr/constants/platform/Errno;
            invokevirtual jnr.constants.platform.Errno.ordinal:()I
            bipush 29
            iastore
       402: goto 404
      StackMap locals:
      StackMap stack: java.lang.NoSuchFieldError
       403: pop
      StackMap locals:
      StackMap stack:
       404: aload 0
            getstatic jnr.constants.platform.Errno.ESRCH:Ljnr/constants/platform/Errno;
            invokevirtual jnr.constants.platform.Errno.ordinal:()I
            iconst_3
            iastore
       405: goto 407
      StackMap locals:
      StackMap stack: java.lang.NoSuchFieldError
       406: pop
      StackMap locals:
      StackMap stack:
       407: aload 0
            getstatic jnr.constants.platform.Errno.ESRMNT:Ljnr/constants/platform/Errno;
            invokevirtual jnr.constants.platform.Errno.ordinal:()I
            bipush 105
            iastore
       408: goto 410
      StackMap locals:
      StackMap stack: java.lang.NoSuchFieldError
       409: pop
      StackMap locals:
      StackMap stack:
       410: aload 0
            getstatic jnr.constants.platform.Errno.ESTALE:Ljnr/constants/platform/Errno;
            invokevirtual jnr.constants.platform.Errno.ordinal:()I
            bipush 70
            iastore
       411: goto 413
      StackMap locals:
      StackMap stack: java.lang.NoSuchFieldError
       412: pop
      StackMap locals:
      StackMap stack:
       413: aload 0
            getstatic jnr.constants.platform.Errno.ESTRPIPE:Ljnr/constants/platform/Errno;
            invokevirtual jnr.constants.platform.Errno.ordinal:()I
            bipush 117
            iastore
       414: goto 416
      StackMap locals:
      StackMap stack: java.lang.NoSuchFieldError
       415: pop
      StackMap locals:
      StackMap stack:
       416: aload 0
            getstatic jnr.constants.platform.Errno.ETIME:Ljnr/constants/platform/Errno;
            invokevirtual jnr.constants.platform.Errno.ordinal:()I
            bipush 85
            iastore
       417: goto 419
      StackMap locals:
      StackMap stack: java.lang.NoSuchFieldError
       418: pop
      StackMap locals:
      StackMap stack:
       419: aload 0
            getstatic jnr.constants.platform.Errno.ETIMEDOUT:Ljnr/constants/platform/Errno;
            invokevirtual jnr.constants.platform.Errno.ordinal:()I
            bipush 61
            iastore
       420: goto 422
      StackMap locals:
      StackMap stack: java.lang.NoSuchFieldError
       421: pop
      StackMap locals:
      StackMap stack:
       422: aload 0
            getstatic jnr.constants.platform.Errno.ETOOMANYREFS:Ljnr/constants/platform/Errno;
            invokevirtual jnr.constants.platform.Errno.ordinal:()I
            bipush 60
            iastore
       423: goto 425
      StackMap locals:
      StackMap stack: java.lang.NoSuchFieldError
       424: pop
      StackMap locals:
      StackMap stack:
       425: aload 0
            getstatic jnr.constants.platform.Errno.ETXTBSY:Ljnr/constants/platform/Errno;
            invokevirtual jnr.constants.platform.Errno.ordinal:()I
            bipush 26
            iastore
       426: goto 428
      StackMap locals:
      StackMap stack: java.lang.NoSuchFieldError
       427: pop
      StackMap locals:
      StackMap stack:
       428: aload 0
            getstatic jnr.constants.platform.Errno.EUCLEAN:Ljnr/constants/platform/Errno;
            invokevirtual jnr.constants.platform.Errno.ordinal:()I
            bipush 118
            iastore
       429: goto 431
      StackMap locals:
      StackMap stack: java.lang.NoSuchFieldError
       430: pop
      StackMap locals:
      StackMap stack:
       431: aload 0
            getstatic jnr.constants.platform.Errno.EUNATCH:Ljnr/constants/platform/Errno;
            invokevirtual jnr.constants.platform.Errno.ordinal:()I
            bipush 91
            iastore
       432: goto 434
      StackMap locals:
      StackMap stack: java.lang.NoSuchFieldError
       433: pop
      StackMap locals:
      StackMap stack:
       434: aload 0
            getstatic jnr.constants.platform.Errno.EUSERS:Ljnr/constants/platform/Errno;
            invokevirtual jnr.constants.platform.Errno.ordinal:()I
            bipush 68
            iastore
       435: goto 437
      StackMap locals:
      StackMap stack: java.lang.NoSuchFieldError
       436: pop
      StackMap locals:
      StackMap stack:
       437: aload 0
            getstatic jnr.constants.platform.Errno.EWOULDBLOCK:Ljnr/constants/platform/Errno;
            invokevirtual jnr.constants.platform.Errno.ordinal:()I
            bipush 35
            iastore
       438: goto 440
      StackMap locals:
      StackMap stack: java.lang.NoSuchFieldError
       439: pop
      StackMap locals:
      StackMap stack:
       440: aload 0
            getstatic jnr.constants.platform.Errno.EXDEV:Ljnr/constants/platform/Errno;
            invokevirtual jnr.constants.platform.Errno.ordinal:()I
            bipush 18
            iastore
       441: goto 443
      StackMap locals:
      StackMap stack: java.lang.NoSuchFieldError
       442: pop
      StackMap locals:
      StackMap stack:
       443: aload 0
            getstatic jnr.constants.platform.Errno.EXFULL:Ljnr/constants/platform/Errno;
            invokevirtual jnr.constants.platform.Errno.ordinal:()I
            bipush 96
            iastore
       444: goto 446
      StackMap locals:
      StackMap stack: java.lang.NoSuchFieldError
       445: pop
      StackMap locals:
      StackMap stack:
       446: aload 0
            getstatic jnr.constants.platform.Errno.__UNKNOWN_CONSTANT__:Ljnr/constants/platform/Errno;
            invokevirtual jnr.constants.platform.Errno.ordinal:()I
            sipush 149
            iastore
       447: goto 449
      StackMap locals:
      StackMap stack: java.lang.NoSuchFieldError
       448: pop
      StackMap locals:
      StackMap stack:
       449: aload 0
            dup
            putstatic org.jruby.util.io.OpenFile.$SWITCH_TABLE$jnr$constants$platform$Errno:[I
            areturn
      LocalVariableTable:
        Start  End  Slot  Name  Signature
      Exception table:
        from    to  target  type
           2     3       4  Class java.lang.NoSuchFieldError
           5     6       7  Class java.lang.NoSuchFieldError
           8     9      10  Class java.lang.NoSuchFieldError
          11    12      13  Class java.lang.NoSuchFieldError
          14    15      16  Class java.lang.NoSuchFieldError
          17    18      19  Class java.lang.NoSuchFieldError
          20    21      22  Class java.lang.NoSuchFieldError
          23    24      25  Class java.lang.NoSuchFieldError
          26    27      28  Class java.lang.NoSuchFieldError
          29    30      31  Class java.lang.NoSuchFieldError
          32    33      34  Class java.lang.NoSuchFieldError
          35    36      37  Class java.lang.NoSuchFieldError
          38    39      40  Class java.lang.NoSuchFieldError
          41    42      43  Class java.lang.NoSuchFieldError
          44    45      46  Class java.lang.NoSuchFieldError
          47    48      49  Class java.lang.NoSuchFieldError
          50    51      52  Class java.lang.NoSuchFieldError
          53    54      55  Class java.lang.NoSuchFieldError
          56    57      58  Class java.lang.NoSuchFieldError
          59    60      61  Class java.lang.NoSuchFieldError
          62    63      64  Class java.lang.NoSuchFieldError
          65    66      67  Class java.lang.NoSuchFieldError
          68    69      70  Class java.lang.NoSuchFieldError
          71    72      73  Class java.lang.NoSuchFieldError
          74    75      76  Class java.lang.NoSuchFieldError
          77    78      79  Class java.lang.NoSuchFieldError
          80    81      82  Class java.lang.NoSuchFieldError
          83    84      85  Class java.lang.NoSuchFieldError
          86    87      88  Class java.lang.NoSuchFieldError
          89    90      91  Class java.lang.NoSuchFieldError
          92    93      94  Class java.lang.NoSuchFieldError
          95    96      97  Class java.lang.NoSuchFieldError
          98    99     100  Class java.lang.NoSuchFieldError
         101   102     103  Class java.lang.NoSuchFieldError
         104   105     106  Class java.lang.NoSuchFieldError
         107   108     109  Class java.lang.NoSuchFieldError
         110   111     112  Class java.lang.NoSuchFieldError
         113   114     115  Class java.lang.NoSuchFieldError
         116   117     118  Class java.lang.NoSuchFieldError
         119   120     121  Class java.lang.NoSuchFieldError
         122   123     124  Class java.lang.NoSuchFieldError
         125   126     127  Class java.lang.NoSuchFieldError
         128   129     130  Class java.lang.NoSuchFieldError
         131   132     133  Class java.lang.NoSuchFieldError
         134   135     136  Class java.lang.NoSuchFieldError
         137   138     139  Class java.lang.NoSuchFieldError
         140   141     142  Class java.lang.NoSuchFieldError
         143   144     145  Class java.lang.NoSuchFieldError
         146   147     148  Class java.lang.NoSuchFieldError
         149   150     151  Class java.lang.NoSuchFieldError
         152   153     154  Class java.lang.NoSuchFieldError
         155   156     157  Class java.lang.NoSuchFieldError
         158   159     160  Class java.lang.NoSuchFieldError
         161   162     163  Class java.lang.NoSuchFieldError
         164   165     166  Class java.lang.NoSuchFieldError
         167   168     169  Class java.lang.NoSuchFieldError
         170   171     172  Class java.lang.NoSuchFieldError
         173   174     175  Class java.lang.NoSuchFieldError
         176   177     178  Class java.lang.NoSuchFieldError
         179   180     181  Class java.lang.NoSuchFieldError
         182   183     184  Class java.lang.NoSuchFieldError
         185   186     187  Class java.lang.NoSuchFieldError
         188   189     190  Class java.lang.NoSuchFieldError
         191   192     193  Class java.lang.NoSuchFieldError
         194   195     196  Class java.lang.NoSuchFieldError
         197   198     199  Class java.lang.NoSuchFieldError
         200   201     202  Class java.lang.NoSuchFieldError
         203   204     205  Class java.lang.NoSuchFieldError
         206   207     208  Class java.lang.NoSuchFieldError
         209   210     211  Class java.lang.NoSuchFieldError
         212   213     214  Class java.lang.NoSuchFieldError
         215   216     217  Class java.lang.NoSuchFieldError
         218   219     220  Class java.lang.NoSuchFieldError
         221   222     223  Class java.lang.NoSuchFieldError
         224   225     226  Class java.lang.NoSuchFieldError
         227   228     229  Class java.lang.NoSuchFieldError
         230   231     232  Class java.lang.NoSuchFieldError
         233   234     235  Class java.lang.NoSuchFieldError
         236   237     238  Class java.lang.NoSuchFieldError
         239   240     241  Class java.lang.NoSuchFieldError
         242   243     244  Class java.lang.NoSuchFieldError
         245   246     247  Class java.lang.NoSuchFieldError
         248   249     250  Class java.lang.NoSuchFieldError
         251   252     253  Class java.lang.NoSuchFieldError
         254   255     256  Class java.lang.NoSuchFieldError
         257   258     259  Class java.lang.NoSuchFieldError
         260   261     262  Class java.lang.NoSuchFieldError
         263   264     265  Class java.lang.NoSuchFieldError
         266   267     268  Class java.lang.NoSuchFieldError
         269   270     271  Class java.lang.NoSuchFieldError
         272   273     274  Class java.lang.NoSuchFieldError
         275   276     277  Class java.lang.NoSuchFieldError
         278   279     280  Class java.lang.NoSuchFieldError
         281   282     283  Class java.lang.NoSuchFieldError
         284   285     286  Class java.lang.NoSuchFieldError
         287   288     289  Class java.lang.NoSuchFieldError
         290   291     292  Class java.lang.NoSuchFieldError
         293   294     295  Class java.lang.NoSuchFieldError
         296   297     298  Class java.lang.NoSuchFieldError
         299   300     301  Class java.lang.NoSuchFieldError
         302   303     304  Class java.lang.NoSuchFieldError
         305   306     307  Class java.lang.NoSuchFieldError
         308   309     310  Class java.lang.NoSuchFieldError
         311   312     313  Class java.lang.NoSuchFieldError
         314   315     316  Class java.lang.NoSuchFieldError
         317   318     319  Class java.lang.NoSuchFieldError
         320   321     322  Class java.lang.NoSuchFieldError
         323   324     325  Class java.lang.NoSuchFieldError
         326   327     328  Class java.lang.NoSuchFieldError
         329   330     331  Class java.lang.NoSuchFieldError
         332   333     334  Class java.lang.NoSuchFieldError
         335   336     337  Class java.lang.NoSuchFieldError
         338   339     340  Class java.lang.NoSuchFieldError
         341   342     343  Class java.lang.NoSuchFieldError
         344   345     346  Class java.lang.NoSuchFieldError
         347   348     349  Class java.lang.NoSuchFieldError
         350   351     352  Class java.lang.NoSuchFieldError
         353   354     355  Class java.lang.NoSuchFieldError
         356   357     358  Class java.lang.NoSuchFieldError
         359   360     361  Class java.lang.NoSuchFieldError
         362   363     364  Class java.lang.NoSuchFieldError
         365   366     367  Class java.lang.NoSuchFieldError
         368   369     370  Class java.lang.NoSuchFieldError
         371   372     373  Class java.lang.NoSuchFieldError
         374   375     376  Class java.lang.NoSuchFieldError
         377   378     379  Class java.lang.NoSuchFieldError
         380   381     382  Class java.lang.NoSuchFieldError
         383   384     385  Class java.lang.NoSuchFieldError
         386   387     388  Class java.lang.NoSuchFieldError
         389   390     391  Class java.lang.NoSuchFieldError
         392   393     394  Class java.lang.NoSuchFieldError
         395   396     397  Class java.lang.NoSuchFieldError
         398   399     400  Class java.lang.NoSuchFieldError
         401   402     403  Class java.lang.NoSuchFieldError
         404   405     406  Class java.lang.NoSuchFieldError
         407   408     409  Class java.lang.NoSuchFieldError
         410   411     412  Class java.lang.NoSuchFieldError
         413   414     415  Class java.lang.NoSuchFieldError
         416   417     418  Class java.lang.NoSuchFieldError
         419   420     421  Class java.lang.NoSuchFieldError
         422   423     424  Class java.lang.NoSuchFieldError
         425   426     427  Class java.lang.NoSuchFieldError
         428   429     430  Class java.lang.NoSuchFieldError
         431   432     433  Class java.lang.NoSuchFieldError
         434   435     436  Class java.lang.NoSuchFieldError
         437   438     439  Class java.lang.NoSuchFieldError
         440   441     442  Class java.lang.NoSuchFieldError
         443   444     445  Class java.lang.NoSuchFieldError
         446   447     448  Class java.lang.NoSuchFieldError
}
SourceFile: "OpenFile.java"
NestMembers:
  org.jruby.util.io.OpenFile$1  org.jruby.util.io.OpenFile$2  org.jruby.util.io.OpenFile$3  org.jruby.util.io.OpenFile$4  org.jruby.util.io.OpenFile$BinwriteArg  org.jruby.util.io.OpenFile$Buffer  org.jruby.util.io.OpenFile$BufreadArg  org.jruby.util.io.OpenFile$Finalizer  org.jruby.util.io.OpenFile$InternalReadStruct  org.jruby.util.io.OpenFile$InternalWriteStruct
InnerClasses:
  public WriteLock = java.util.concurrent.locks.ReentrantReadWriteLock$WriteLock of java.util.concurrent.locks.ReentrantReadWriteLock
  public final ArgsFileData = org.jruby.RubyArgsFile$ArgsFileData of org.jruby.RubyArgsFile
  public abstract Task = org.jruby.RubyThread$Task of org.jruby.RubyThread
  public ConvConfig = org.jruby.util.io.IOEncodable$ConvConfig of org.jruby.util.io.IOEncodable
  org.jruby.util.io.OpenFile$1
  org.jruby.util.io.OpenFile$2
  org.jruby.util.io.OpenFile$3
  org.jruby.util.io.OpenFile$4
  private BinwriteArg = org.jruby.util.io.OpenFile$BinwriteArg of org.jruby.util.io.OpenFile
  public Buffer = org.jruby.util.io.OpenFile$Buffer of org.jruby.util.io.OpenFile
  private BufreadArg = org.jruby.util.io.OpenFile$BufreadArg of org.jruby.util.io.OpenFile
  public abstract Finalizer = org.jruby.util.io.OpenFile$Finalizer of org.jruby.util.io.OpenFile
  public InternalReadStruct = org.jruby.util.io.OpenFile$InternalReadStruct of org.jruby.util.io.OpenFile
  public InternalWriteStruct = org.jruby.util.io.OpenFile$InternalWriteStruct of org.jruby.util.io.OpenFile