public class org.jruby.ext.stringio.StringIO extends org.jruby.RubyObject implements org.jruby.runtime.encoding.EncodingCapable, org.jruby.runtime.marshal.DataType
  minor version: 0
  major version: 59
  flags: flags: (0x0021) ACC_PUBLIC, ACC_SUPER
  this_class: org.jruby.ext.stringio.StringIO
  super_class: org.jruby.RubyObject
{
  org.jruby.ext.stringio.StringIO$StringIOData ptr;
    descriptor: Lorg/jruby/ext/stringio/StringIO$StringIOData;
    flags: (0x0000) 

  private static final int STRIO_READABLE;
    descriptor: I
    flags: (0x001a) ACC_PRIVATE, ACC_STATIC, ACC_FINAL

  private static final int STRIO_WRITABLE;
    descriptor: I
    flags: (0x001a) ACC_PRIVATE, ACC_STATIC, ACC_FINAL

  private static final int STRIO_READWRITE;
    descriptor: I
    flags: (0x001a) ACC_PRIVATE, ACC_STATIC, ACC_FINAL

  private static org.jruby.runtime.ObjectAllocator STRINGIO_ALLOCATOR;
    descriptor: Lorg/jruby/runtime/ObjectAllocator;
    flags: (0x000a) ACC_PRIVATE, ACC_STATIC

  private static final int CHAR_BIT;
    descriptor: I
    flags: (0x001a) ACC_PRIVATE, ACC_STATIC, ACC_FINAL
    ConstantValue: 8

  private static final org.jruby.util.io.Getline$Callback<org.jruby.ext.stringio.StringIO, org.jruby.runtime.builtin.IRubyObject> GETLINE;
    descriptor: Lorg/jruby/util/io/Getline$Callback;
    flags: (0x001a) ACC_PRIVATE, ACC_STATIC, ACC_FINAL
    Signature: Lorg/jruby/util/io/Getline$Callback<Lorg/jruby/ext/stringio/StringIO;Lorg/jruby/runtime/builtin/IRubyObject;>;

  private static final org.jruby.util.io.Getline$Callback<org.jruby.ext.stringio.StringIO, org.jruby.ext.stringio.StringIO> GETLINE_YIELD;
    descriptor: Lorg/jruby/util/io/Getline$Callback;
    flags: (0x001a) ACC_PRIVATE, ACC_STATIC, ACC_FINAL
    Signature: Lorg/jruby/util/io/Getline$Callback<Lorg/jruby/ext/stringio/StringIO;Lorg/jruby/ext/stringio/StringIO;>;

  private static final org.jruby.util.io.Getline$Callback<org.jruby.ext.stringio.StringIO, org.jruby.RubyArray> GETLINE_ARY;
    descriptor: Lorg/jruby/util/io/Getline$Callback;
    flags: (0x001a) ACC_PRIVATE, ACC_STATIC, ACC_FINAL
    Signature: Lorg/jruby/util/io/Getline$Callback<Lorg/jruby/ext/stringio/StringIO;Lorg/jruby/RubyArray;>;

  public static final org.jruby.util.ByteList NEWLINE;
    descriptor: Lorg/jruby/util/ByteList;
    flags: (0x0019) ACC_PUBLIC, ACC_STATIC, ACC_FINAL

  static void <clinit>();
    descriptor: ()V
    flags: (0x0008) ACC_STATIC
    Code:
      stack=2, locals=0, args_size=0
         0: .line 79
            getstatic org.jruby.ObjectFlags.STRIO_READABLE:I
            putstatic org.jruby.ext.stringio.StringIO.STRIO_READABLE:I
         1: .line 80
            getstatic org.jruby.ObjectFlags.STRIO_WRITABLE:I
            putstatic org.jruby.ext.stringio.StringIO.STRIO_WRITABLE:I
         2: .line 81
            getstatic org.jruby.ext.stringio.StringIO.STRIO_READABLE:I
            getstatic org.jruby.ext.stringio.StringIO.STRIO_WRITABLE:I
            ior
            putstatic org.jruby.ext.stringio.StringIO.STRIO_READWRITE:I
         3: .line 83
            new org.jruby.ext.stringio.StringIO$1
            dup
            invokespecial org.jruby.ext.stringio.StringIO$1.<init>:()V
            putstatic org.jruby.ext.stringio.StringIO.STRINGIO_ALLOCATOR:Lorg/jruby/runtime/ObjectAllocator;
         4: .line 587
            new org.jruby.ext.stringio.StringIO$2
            dup
            invokespecial org.jruby.ext.stringio.StringIO$2.<init>:()V
            putstatic org.jruby.ext.stringio.StringIO.GETLINE:Lorg/jruby/util/io/Getline$Callback;
         5: .line 602
            new org.jruby.ext.stringio.StringIO$3
            dup
            invokespecial org.jruby.ext.stringio.StringIO$3.<init>:()V
            putstatic org.jruby.ext.stringio.StringIO.GETLINE_YIELD:Lorg/jruby/util/io/Getline$Callback;
         6: .line 619
            new org.jruby.ext.stringio.StringIO$4
            dup
            invokespecial org.jruby.ext.stringio.StringIO$4.<init>:()V
            putstatic org.jruby.ext.stringio.StringIO.GETLINE_ARY:Lorg/jruby/util/io/Getline$Callback;
         7: .line 825
            ldc "\n"
            invokestatic org.jruby.util.ByteList.create:(Ljava/lang/CharSequence;)Lorg/jruby/util/ByteList;
            putstatic org.jruby.ext.stringio.StringIO.NEWLINE:Lorg/jruby/util/ByteList;
            return
      LocalVariableTable:
        Start  End  Slot  Name  Signature

  public static org.jruby.RubyClass createStringIOClass(org.jruby.Ruby);
    descriptor: (Lorg/jruby/Ruby;)Lorg/jruby/RubyClass;
    flags: (0x0009) ACC_PUBLIC, ACC_STATIC
    Code:
      stack=4, locals=4, args_size=1
        start local 0 // org.jruby.Ruby runtime
         0: .line 90
            aload 0 /* runtime */
         1: .line 91
            ldc "StringIO"
            aload 0 /* runtime */
            invokevirtual org.jruby.Ruby.getData:()Lorg/jruby/RubyClass;
            getstatic org.jruby.ext.stringio.StringIO.STRINGIO_ALLOCATOR:Lorg/jruby/runtime/ObjectAllocator;
         2: .line 90
            invokevirtual org.jruby.Ruby.defineClass:(Ljava/lang/String;Lorg/jruby/RubyClass;Lorg/jruby/runtime/ObjectAllocator;)Lorg/jruby/RubyClass;
            astore 1 /* stringIOClass */
        start local 1 // org.jruby.RubyClass stringIOClass
         3: .line 93
            aload 1 /* stringIOClass */
            ldc Lorg/jruby/ext/stringio/StringIO;
            invokevirtual org.jruby.RubyClass.defineAnnotatedMethods:(Ljava/lang/Class;)V
         4: .line 94
            aload 1 /* stringIOClass */
            aload 0 /* runtime */
            invokevirtual org.jruby.Ruby.getEnumerable:()Lorg/jruby/RubyModule;
            invokevirtual org.jruby.RubyClass.includeModule:(Lorg/jruby/runtime/builtin/IRubyObject;)V
         5: .line 96
            aload 0 /* runtime */
            invokevirtual org.jruby.Ruby.getObject:()Lorg/jruby/RubyClass;
            ldc "Java"
            invokevirtual org.jruby.RubyClass.isConstantDefined:(Ljava/lang/String;)Z
            ifeq 7
         6: .line 97
            aload 1 /* stringIOClass */
            ldc Lorg/jruby/java/addons/IOJavaAddons$AnyIO;
            invokevirtual org.jruby.RubyClass.defineAnnotatedMethods:(Ljava/lang/Class;)V
         7: .line 100
      StackMap locals: org.jruby.RubyClass
      StackMap stack:
            aload 0 /* runtime */
            invokevirtual org.jruby.Ruby.getIO:()Lorg/jruby/RubyClass;
            ldc "GenericReadable"
            invokevirtual org.jruby.RubyClass.defineOrGetModuleUnder:(Ljava/lang/String;)Lorg/jruby/RubyModule;
            astore 2 /* genericReadable */
        start local 2 // org.jruby.RubyModule genericReadable
         8: .line 101
            aload 2 /* genericReadable */
            ldc Lorg/jruby/ext/stringio/StringIO$GenericReadable;
            invokevirtual org.jruby.RubyModule.defineAnnotatedMethods:(Ljava/lang/Class;)V
         9: .line 102
            aload 1 /* stringIOClass */
            aload 2 /* genericReadable */
            invokevirtual org.jruby.RubyClass.includeModule:(Lorg/jruby/runtime/builtin/IRubyObject;)V
        10: .line 104
            aload 0 /* runtime */
            invokevirtual org.jruby.Ruby.getIO:()Lorg/jruby/RubyClass;
            ldc "GenericWritable"
            invokevirtual org.jruby.RubyClass.defineOrGetModuleUnder:(Ljava/lang/String;)Lorg/jruby/RubyModule;
            astore 3 /* genericWritable */
        start local 3 // org.jruby.RubyModule genericWritable
        11: .line 105
            aload 3 /* genericWritable */
            ldc Lorg/jruby/ext/stringio/StringIO$GenericWritable;
            invokevirtual org.jruby.RubyModule.defineAnnotatedMethods:(Ljava/lang/Class;)V
        12: .line 106
            aload 1 /* stringIOClass */
            aload 3 /* genericWritable */
            invokevirtual org.jruby.RubyClass.includeModule:(Lorg/jruby/runtime/builtin/IRubyObject;)V
        13: .line 108
            aload 1 /* stringIOClass */
            areturn
        end local 3 // org.jruby.RubyModule genericWritable
        end local 2 // org.jruby.RubyModule genericReadable
        end local 1 // org.jruby.RubyClass stringIOClass
        end local 0 // org.jruby.Ruby runtime
      LocalVariableTable:
        Start  End  Slot             Name  Signature
            0   14     0          runtime  Lorg/jruby/Ruby;
            3   14     1    stringIOClass  Lorg/jruby/RubyClass;
            8   14     2  genericReadable  Lorg/jruby/RubyModule;
           11   14     3  genericWritable  Lorg/jruby/RubyModule;
    MethodParameters:
         Name  Flags
      runtime  final

  public org.jcodings.Encoding getEncoding();
    descriptor: ()Lorg/jcodings/Encoding;
    flags: (0x0001) ACC_PUBLIC
    Code:
      stack=1, locals=1, args_size=1
        start local 0 // org.jruby.ext.stringio.StringIO this
         0: .line 113
            aload 0 /* this */
            getfield org.jruby.ext.stringio.StringIO.ptr:Lorg/jruby/ext/stringio/StringIO$StringIOData;
            getfield org.jruby.ext.stringio.StringIO$StringIOData.enc:Lorg/jcodings/Encoding;
            ifnull 1
            aload 0 /* this */
            getfield org.jruby.ext.stringio.StringIO.ptr:Lorg/jruby/ext/stringio/StringIO$StringIOData;
            getfield org.jruby.ext.stringio.StringIO$StringIOData.enc:Lorg/jcodings/Encoding;
            goto 2
      StackMap locals:
      StackMap stack:
         1: aload 0 /* this */
            getfield org.jruby.ext.stringio.StringIO.ptr:Lorg/jruby/ext/stringio/StringIO$StringIOData;
            getfield org.jruby.ext.stringio.StringIO$StringIOData.string:Lorg/jruby/RubyString;
            invokevirtual org.jruby.RubyString.getEncoding:()Lorg/jcodings/Encoding;
      StackMap locals:
      StackMap stack: org.jcodings.Encoding
         2: areturn
        end local 0 // org.jruby.ext.stringio.StringIO this
      LocalVariableTable:
        Start  End  Slot  Name  Signature
            0    3     0  this  Lorg/jruby/ext/stringio/StringIO;

  public void setEncoding(org.jcodings.Encoding);
    descriptor: (Lorg/jcodings/Encoding;)V
    flags: (0x0001) ACC_PUBLIC
    Code:
      stack=2, locals=2, args_size=2
        start local 0 // org.jruby.ext.stringio.StringIO this
        start local 1 // org.jcodings.Encoding enc
         0: .line 117
            aload 0 /* this */
            getfield org.jruby.ext.stringio.StringIO.ptr:Lorg/jruby/ext/stringio/StringIO$StringIOData;
            aload 1 /* enc */
            putfield org.jruby.ext.stringio.StringIO$StringIOData.enc:Lorg/jcodings/Encoding;
         1: .line 118
            return
        end local 1 // org.jcodings.Encoding enc
        end local 0 // org.jruby.ext.stringio.StringIO this
      LocalVariableTable:
        Start  End  Slot  Name  Signature
            0    2     0  this  Lorg/jruby/ext/stringio/StringIO;
            0    2     1   enc  Lorg/jcodings/Encoding;
    MethodParameters:
      Name  Flags
      enc   

  public static org.jruby.runtime.builtin.IRubyObject newInstance(org.jruby.runtime.ThreadContext, org.jruby.runtime.builtin.IRubyObject, org.jruby.runtime.builtin.IRubyObject[], org.jruby.runtime.Block);
    descriptor: (Lorg/jruby/runtime/ThreadContext;Lorg/jruby/runtime/builtin/IRubyObject;[Lorg/jruby/runtime/builtin/IRubyObject;Lorg/jruby/runtime/Block;)Lorg/jruby/runtime/builtin/IRubyObject;
    flags: (0x0009) ACC_PUBLIC, ACC_STATIC
    Code:
      stack=4, locals=4, args_size=4
        start local 0 // org.jruby.runtime.ThreadContext context
        start local 1 // org.jruby.runtime.builtin.IRubyObject recv
        start local 2 // org.jruby.runtime.builtin.IRubyObject[] args
        start local 3 // org.jruby.runtime.Block block
         0: .line 122
            aload 0 /* context */
            aload 1 /* recv */
            aload 2 /* args */
            aload 3 /* block */
            invokestatic org.jruby.RubyIO.newInstance:(Lorg/jruby/runtime/ThreadContext;Lorg/jruby/runtime/builtin/IRubyObject;[Lorg/jruby/runtime/builtin/IRubyObject;Lorg/jruby/runtime/Block;)Lorg/jruby/runtime/builtin/IRubyObject;
            areturn
        end local 3 // org.jruby.runtime.Block block
        end local 2 // org.jruby.runtime.builtin.IRubyObject[] args
        end local 1 // org.jruby.runtime.builtin.IRubyObject recv
        end local 0 // org.jruby.runtime.ThreadContext context
      LocalVariableTable:
        Start  End  Slot     Name  Signature
            0    1     0  context  Lorg/jruby/runtime/ThreadContext;
            0    1     1     recv  Lorg/jruby/runtime/builtin/IRubyObject;
            0    1     2     args  [Lorg/jruby/runtime/builtin/IRubyObject;
            0    1     3    block  Lorg/jruby/runtime/Block;
    RuntimeVisibleAnnotations: 
      org.jruby.anno.JRubyMethod(name = {"new"}, rest = true, meta = true)
    MethodParameters:
         Name  Flags
      context  
      recv     
      args     
      block    

  public static org.jruby.runtime.builtin.IRubyObject open(org.jruby.runtime.ThreadContext, org.jruby.runtime.builtin.IRubyObject, org.jruby.runtime.builtin.IRubyObject[], org.jruby.runtime.Block);
    descriptor: (Lorg/jruby/runtime/ThreadContext;Lorg/jruby/runtime/builtin/IRubyObject;[Lorg/jruby/runtime/builtin/IRubyObject;Lorg/jruby/runtime/Block;)Lorg/jruby/runtime/builtin/IRubyObject;
    flags: (0x0009) ACC_PUBLIC, ACC_STATIC
    Code:
      stack=4, locals=7, args_size=4
        start local 0 // org.jruby.runtime.ThreadContext context
        start local 1 // org.jruby.runtime.builtin.IRubyObject recv
        start local 2 // org.jruby.runtime.builtin.IRubyObject[] args
        start local 3 // org.jruby.runtime.Block block
         0: .line 127
            aload 1 /* recv */
            checkcast org.jruby.RubyClass
            aload 0 /* context */
            aload 2 /* args */
            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.ext.stringio.StringIO
            astore 4 /* strio */
        start local 4 // org.jruby.ext.stringio.StringIO strio
         1: .line 128
            aload 4 /* strio */
            astore 5 /* val */
        start local 5 // org.jruby.runtime.builtin.IRubyObject val
         2: .line 130
            aload 3 /* block */
            invokevirtual org.jruby.runtime.Block.isGiven:()Z
            ifeq 11
         3: .line 132
            aload 3 /* block */
            aload 0 /* context */
            aload 4 /* strio */
            invokevirtual org.jruby.runtime.Block.yield:(Lorg/jruby/runtime/ThreadContext;Lorg/jruby/runtime/builtin/IRubyObject;)Lorg/jruby/runtime/builtin/IRubyObject;
            astore 5 /* val */
         4: .line 133
            goto 9
      StackMap locals: org.jruby.runtime.ThreadContext org.jruby.runtime.builtin.IRubyObject org.jruby.runtime.builtin.IRubyObject[] org.jruby.runtime.Block org.jruby.ext.stringio.StringIO org.jruby.runtime.builtin.IRubyObject
      StackMap stack: java.lang.Throwable
         5: astore 6
         6: .line 134
            aload 4 /* strio */
            getfield org.jruby.ext.stringio.StringIO.ptr:Lorg/jruby/ext/stringio/StringIO$StringIOData;
            aconst_null
            putfield org.jruby.ext.stringio.StringIO$StringIOData.string:Lorg/jruby/RubyString;
         7: .line 135
            aload 4 /* strio */
            dup
            getfield org.jruby.ext.stringio.StringIO.flags:I
            getstatic org.jruby.ext.stringio.StringIO.STRIO_READWRITE:I
            iconst_m1
            ixor
            iand
            putfield org.jruby.ext.stringio.StringIO.flags:I
         8: .line 136
            aload 6
            athrow
         9: .line 134
      StackMap locals:
      StackMap stack:
            aload 4 /* strio */
            getfield org.jruby.ext.stringio.StringIO.ptr:Lorg/jruby/ext/stringio/StringIO$StringIOData;
            aconst_null
            putfield org.jruby.ext.stringio.StringIO$StringIOData.string:Lorg/jruby/RubyString;
        10: .line 135
            aload 4 /* strio */
            dup
            getfield org.jruby.ext.stringio.StringIO.flags:I
            getstatic org.jruby.ext.stringio.StringIO.STRIO_READWRITE:I
            iconst_m1
            ixor
            iand
            putfield org.jruby.ext.stringio.StringIO.flags:I
        11: .line 138
      StackMap locals:
      StackMap stack:
            aload 5 /* val */
            areturn
        end local 5 // org.jruby.runtime.builtin.IRubyObject val
        end local 4 // org.jruby.ext.stringio.StringIO strio
        end local 3 // org.jruby.runtime.Block block
        end local 2 // org.jruby.runtime.builtin.IRubyObject[] args
        end local 1 // org.jruby.runtime.builtin.IRubyObject recv
        end local 0 // org.jruby.runtime.ThreadContext context
      LocalVariableTable:
        Start  End  Slot     Name  Signature
            0   12     0  context  Lorg/jruby/runtime/ThreadContext;
            0   12     1     recv  Lorg/jruby/runtime/builtin/IRubyObject;
            0   12     2     args  [Lorg/jruby/runtime/builtin/IRubyObject;
            0   12     3    block  Lorg/jruby/runtime/Block;
            1   12     4    strio  Lorg/jruby/ext/stringio/StringIO;
            2   12     5      val  Lorg/jruby/runtime/builtin/IRubyObject;
      Exception table:
        from    to  target  type
           3     5       5  any
    RuntimeVisibleAnnotations: 
      org.jruby.anno.JRubyMethod(meta = true, rest = true)
    MethodParameters:
         Name  Flags
      context  
      recv     
      args     
      block    

  protected void <init>(org.jruby.Ruby, org.jruby.RubyClass);
    descriptor: (Lorg/jruby/Ruby;Lorg/jruby/RubyClass;)V
    flags: (0x0004) ACC_PROTECTED
    Code:
      stack=3, locals=3, args_size=3
        start local 0 // org.jruby.ext.stringio.StringIO this
        start local 1 // org.jruby.Ruby runtime
        start local 2 // org.jruby.RubyClass klass
         0: .line 142
            aload 0 /* this */
            aload 1 /* runtime */
            aload 2 /* klass */
            invokespecial org.jruby.RubyObject.<init>:(Lorg/jruby/Ruby;Lorg/jruby/RubyClass;)V
         1: .line 143
            return
        end local 2 // org.jruby.RubyClass klass
        end local 1 // org.jruby.Ruby runtime
        end local 0 // org.jruby.ext.stringio.StringIO this
      LocalVariableTable:
        Start  End  Slot     Name  Signature
            0    2     0     this  Lorg/jruby/ext/stringio/StringIO;
            0    2     1  runtime  Lorg/jruby/Ruby;
            0    2     2    klass  Lorg/jruby/RubyClass;
    MethodParameters:
         Name  Flags
      runtime  
      klass    

  public org.jruby.runtime.builtin.IRubyObject initialize(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=3, locals=3, args_size=3
        start local 0 // org.jruby.ext.stringio.StringIO this
        start local 1 // org.jruby.runtime.ThreadContext context
        start local 2 // org.jruby.runtime.builtin.IRubyObject[] args
         0: .line 147
            aload 0 /* this */
            getfield org.jruby.ext.stringio.StringIO.ptr:Lorg/jruby/ext/stringio/StringIO$StringIOData;
            ifnonnull 2
         1: .line 148
            aload 0 /* this */
            new org.jruby.ext.stringio.StringIO$StringIOData
            dup
            invokespecial org.jruby.ext.stringio.StringIO$StringIOData.<init>:()V
            putfield org.jruby.ext.stringio.StringIO.ptr:Lorg/jruby/ext/stringio/StringIO$StringIOData;
         2: .line 153
      StackMap locals:
      StackMap stack:
            aload 0 /* this */
            aload 1 /* context */
            aload 2 /* args */
            invokevirtual org.jruby.ext.stringio.StringIO.strioInit:(Lorg/jruby/runtime/ThreadContext;[Lorg/jruby/runtime/builtin/IRubyObject;)V
         3: .line 154
            aload 0 /* this */
            areturn
        end local 2 // org.jruby.runtime.builtin.IRubyObject[] args
        end local 1 // org.jruby.runtime.ThreadContext context
        end local 0 // org.jruby.ext.stringio.StringIO this
      LocalVariableTable:
        Start  End  Slot     Name  Signature
            0    4     0     this  Lorg/jruby/ext/stringio/StringIO;
            0    4     1  context  Lorg/jruby/runtime/ThreadContext;
            0    4     2     args  [Lorg/jruby/runtime/builtin/IRubyObject;
    RuntimeVisibleAnnotations: 
      org.jruby.anno.JRubyMethod(optional = 2, visibility = org.jruby.runtime.Visibility.PRIVATE:Lorg/jruby/runtime/Visibility;)
    MethodParameters:
         Name  Flags
      context  
      args     

  private void strioInit(org.jruby.runtime.ThreadContext, org.jruby.runtime.builtin.IRubyObject[]);
    descriptor: (Lorg/jruby/runtime/ThreadContext;[Lorg/jruby/runtime/builtin/IRubyObject;)V
    flags: (0x0002) ACC_PRIVATE
    Code:
      stack=5, locals=10, args_size=3
        start local 0 // org.jruby.ext.stringio.StringIO this
        start local 1 // org.jruby.runtime.ThreadContext context
        start local 2 // org.jruby.runtime.builtin.IRubyObject[] args
         0: .line 159
            aload 1 /* context */
            getfield org.jruby.runtime.ThreadContext.runtime:Lorg/jruby/Ruby;
            astore 3 /* runtime */
        start local 3 // org.jruby.Ruby runtime
         1: .line 163
            aload 0 /* this */
            getfield org.jruby.ext.stringio.StringIO.ptr:Lorg/jruby/ext/stringio/StringIO$StringIOData;
            astore 6 /* ptr */
        start local 6 // org.jruby.ext.stringio.StringIO$StringIOData ptr
         2: .line 165
            aload 6 /* ptr */
            dup
            astore 7
            monitorenter
         3: .line 166
            aload 2 /* args */
            arraylength
            tableswitch { // 0 - 2
                    0: 28
                    1: 23
                    2: 4
              default: 31
          }
         4: .line 168
      StackMap locals: org.jruby.ext.stringio.StringIO org.jruby.runtime.ThreadContext org.jruby.runtime.builtin.IRubyObject[] org.jruby.Ruby top top org.jruby.ext.stringio.StringIO$StringIOData org.jruby.ext.stringio.StringIO$StringIOData
      StackMap stack:
            aload 2 /* args */
            iconst_1
            aaload
            astore 5 /* mode */
        start local 5 // org.jruby.runtime.builtin.IRubyObject mode
         5: .line 170
            aload 5 /* mode */
            instanceof org.jruby.RubyFixnum
            ifeq 12
         6: .line 171
            aload 5 /* mode */
            invokestatic org.jruby.RubyFixnum.fix2int:(Lorg/jruby/runtime/builtin/IRubyObject;)I
            istore 9 /* flags */
        start local 9 // int flags
         7: .line 172
            aload 6 /* ptr */
            iload 9 /* flags */
            invokestatic org.jruby.util.io.ModeFlags.getOpenFileFlagsFor:(I)I
            putfield org.jruby.ext.stringio.StringIO$StringIOData.flags:I
         8: .line 173
            iload 9 /* flags */
            getstatic org.jruby.util.io.ModeFlags.TRUNC:I
            iand
            ifeq 9
            iconst_1
            goto 10
      StackMap locals: org.jruby.ext.stringio.StringIO org.jruby.runtime.ThreadContext org.jruby.runtime.builtin.IRubyObject[] org.jruby.Ruby top org.jruby.runtime.builtin.IRubyObject org.jruby.ext.stringio.StringIO$StringIOData org.jruby.ext.stringio.StringIO$StringIOData top int
      StackMap stack:
         9: iconst_0
      StackMap locals:
      StackMap stack: int
        10: istore 8 /* trunc */
        end local 9 // int flags
        start local 8 // boolean trunc
        11: .line 174
            goto 17
        end local 8 // boolean trunc
        12: .line 175
      StackMap locals: org.jruby.ext.stringio.StringIO org.jruby.runtime.ThreadContext org.jruby.runtime.builtin.IRubyObject[] org.jruby.Ruby top org.jruby.runtime.builtin.IRubyObject org.jruby.ext.stringio.StringIO$StringIOData org.jruby.ext.stringio.StringIO$StringIOData
      StackMap stack:
            aload 2 /* args */
            iconst_1
            aaload
            invokeinterface org.jruby.runtime.builtin.IRubyObject.convertToString:()Lorg/jruby/RubyString;
            invokevirtual org.jruby.RubyString.toString:()Ljava/lang/String;
            astore 9 /* m */
        start local 9 // java.lang.String m
        13: .line 176
            aload 6 /* ptr */
            aload 3 /* runtime */
            aload 9 /* m */
            invokestatic org.jruby.util.io.OpenFile.ioModestrFmode:(Lorg/jruby/Ruby;Ljava/lang/String;)I
            putfield org.jruby.ext.stringio.StringIO$StringIOData.flags:I
        14: .line 177
            aload 9 /* m */
            invokevirtual java.lang.String.length:()I
            ifle 15
            aload 9 /* m */
            iconst_0
            invokevirtual java.lang.String.charAt:(I)C
            bipush 119
            if_icmpne 15
            iconst_1
            goto 16
      StackMap locals: org.jruby.ext.stringio.StringIO org.jruby.runtime.ThreadContext org.jruby.runtime.builtin.IRubyObject[] org.jruby.Ruby top org.jruby.runtime.builtin.IRubyObject org.jruby.ext.stringio.StringIO$StringIOData org.jruby.ext.stringio.StringIO$StringIOData top java.lang.String
      StackMap stack:
        15: iconst_0
      StackMap locals:
      StackMap stack: int
        16: istore 8 /* trunc */
        end local 9 // java.lang.String m
        start local 8 // boolean trunc
        17: .line 179
      StackMap locals: org.jruby.ext.stringio.StringIO org.jruby.runtime.ThreadContext org.jruby.runtime.builtin.IRubyObject[] org.jruby.Ruby top org.jruby.runtime.builtin.IRubyObject org.jruby.ext.stringio.StringIO$StringIOData org.jruby.ext.stringio.StringIO$StringIOData int
      StackMap stack:
            aload 2 /* args */
            iconst_0
            aaload
            invokeinterface org.jruby.runtime.builtin.IRubyObject.convertToString:()Lorg/jruby/RubyString;
            astore 4 /* string */
        start local 4 // org.jruby.RubyString string
        18: .line 180
            aload 6 /* ptr */
            getfield org.jruby.ext.stringio.StringIO$StringIOData.flags:I
            iconst_2
            iand
            ifeq 20
            aload 4 /* string */
            invokevirtual org.jruby.RubyString.isFrozen:()Z
            ifeq 20
        19: .line 181
            aload 3 /* runtime */
            ldc "Permission denied"
            invokevirtual org.jruby.Ruby.newErrnoEACCESError:(Ljava/lang/String;)Lorg/jruby/exceptions/RaiseException;
            athrow
        20: .line 183
      StackMap locals: org.jruby.ext.stringio.StringIO org.jruby.runtime.ThreadContext org.jruby.runtime.builtin.IRubyObject[] org.jruby.Ruby org.jruby.RubyString org.jruby.runtime.builtin.IRubyObject org.jruby.ext.stringio.StringIO$StringIOData org.jruby.ext.stringio.StringIO$StringIOData int
      StackMap stack:
            iload 8 /* trunc */
            ifeq 32
        21: .line 184
            aload 4 /* string */
            iconst_0
            invokevirtual org.jruby.RubyString.resize:(I)V
        22: .line 186
            goto 32
        end local 8 // boolean trunc
        end local 5 // org.jruby.runtime.builtin.IRubyObject mode
        end local 4 // org.jruby.RubyString string
        23: .line 188
      StackMap locals: org.jruby.ext.stringio.StringIO org.jruby.runtime.ThreadContext org.jruby.runtime.builtin.IRubyObject[] org.jruby.Ruby top top org.jruby.ext.stringio.StringIO$StringIOData org.jruby.ext.stringio.StringIO$StringIOData
      StackMap stack:
            aload 2 /* args */
            iconst_0
            aaload
            invokeinterface org.jruby.runtime.builtin.IRubyObject.convertToString:()Lorg/jruby/RubyString;
            astore 4 /* string */
        start local 4 // org.jruby.RubyString string
        24: .line 189
            aload 6 /* ptr */
            aload 4 /* string */
            invokevirtual org.jruby.RubyString.isFrozen:()Z
            ifeq 25
            iconst_1
            goto 26
      StackMap locals: org.jruby.ext.stringio.StringIO org.jruby.runtime.ThreadContext org.jruby.runtime.builtin.IRubyObject[] org.jruby.Ruby org.jruby.RubyString top org.jruby.ext.stringio.StringIO$StringIOData org.jruby.ext.stringio.StringIO$StringIOData
      StackMap stack: org.jruby.ext.stringio.StringIO$StringIOData
        25: iconst_3
      StackMap locals: org.jruby.ext.stringio.StringIO org.jruby.runtime.ThreadContext org.jruby.runtime.builtin.IRubyObject[] org.jruby.Ruby org.jruby.RubyString top org.jruby.ext.stringio.StringIO$StringIOData org.jruby.ext.stringio.StringIO$StringIOData
      StackMap stack: org.jruby.ext.stringio.StringIO$StringIOData int
        26: putfield org.jruby.ext.stringio.StringIO$StringIOData.flags:I
        27: .line 190
            goto 32
        end local 4 // org.jruby.RubyString string
        28: .line 192
      StackMap locals: org.jruby.ext.stringio.StringIO org.jruby.runtime.ThreadContext org.jruby.runtime.builtin.IRubyObject[] org.jruby.Ruby top top org.jruby.ext.stringio.StringIO$StringIOData org.jruby.ext.stringio.StringIO$StringIOData
      StackMap stack:
            aload 3 /* runtime */
            aload 3 /* runtime */
            invokevirtual org.jruby.Ruby.getDefaultExternalEncoding:()Lorg/jcodings/Encoding;
            invokestatic org.jruby.RubyString.newEmptyString:(Lorg/jruby/Ruby;Lorg/jcodings/Encoding;)Lorg/jruby/RubyString;
            astore 4 /* string */
        start local 4 // org.jruby.RubyString string
        29: .line 193
            aload 6 /* ptr */
            iconst_3
            putfield org.jruby.ext.stringio.StringIO$StringIOData.flags:I
        30: .line 194
            goto 32
        end local 4 // org.jruby.RubyString string
        31: .line 196
      StackMap locals:
      StackMap stack:
            aload 3 /* runtime */
            aload 2 /* args */
            arraylength
            iconst_2
            invokevirtual org.jruby.Ruby.newArgumentError:(II)Lorg/jruby/exceptions/RaiseException;
            athrow
        start local 4 // org.jruby.RubyString string
        32: .line 199
      StackMap locals: org.jruby.ext.stringio.StringIO org.jruby.runtime.ThreadContext org.jruby.runtime.builtin.IRubyObject[] org.jruby.Ruby org.jruby.RubyString top org.jruby.ext.stringio.StringIO$StringIOData org.jruby.ext.stringio.StringIO$StringIOData
      StackMap stack:
            aload 6 /* ptr */
            aload 4 /* string */
            putfield org.jruby.ext.stringio.StringIO$StringIOData.string:Lorg/jruby/RubyString;
        33: .line 200
            aload 6 /* ptr */
            aconst_null
            putfield org.jruby.ext.stringio.StringIO$StringIOData.enc:Lorg/jcodings/Encoding;
        34: .line 201
            aload 6 /* ptr */
            iconst_0
            putfield org.jruby.ext.stringio.StringIO$StringIOData.pos:I
        35: .line 202
            aload 6 /* ptr */
            iconst_0
            putfield org.jruby.ext.stringio.StringIO$StringIOData.lineno:I
        36: .line 204
            aload 0 /* this */
            dup
            getfield org.jruby.ext.stringio.StringIO.flags:I
            aload 6 /* ptr */
            getfield org.jruby.ext.stringio.StringIO$StringIOData.flags:I
            iconst_3
            iand
            getstatic org.jruby.ext.stringio.StringIO.STRIO_READABLE:I
            iconst_1
            idiv
            imul
            ior
            putfield org.jruby.ext.stringio.StringIO.flags:I
        37: .line 165
            aload 7
            monitorexit
        38: goto 41
        end local 4 // org.jruby.RubyString string
      StackMap locals: org.jruby.ext.stringio.StringIO org.jruby.runtime.ThreadContext org.jruby.runtime.builtin.IRubyObject[] org.jruby.Ruby top top org.jruby.ext.stringio.StringIO$StringIOData org.jruby.ext.stringio.StringIO$StringIOData
      StackMap stack: java.lang.Throwable
        39: aload 7
            monitorexit
        40: athrow
        start local 4 // org.jruby.RubyString string
        41: .line 206
      StackMap locals: org.jruby.ext.stringio.StringIO org.jruby.runtime.ThreadContext org.jruby.runtime.builtin.IRubyObject[] org.jruby.Ruby org.jruby.RubyString top org.jruby.ext.stringio.StringIO$StringIOData
      StackMap stack:
            return
        end local 6 // org.jruby.ext.stringio.StringIO$StringIOData ptr
        end local 4 // org.jruby.RubyString string
        end local 3 // org.jruby.Ruby runtime
        end local 2 // org.jruby.runtime.builtin.IRubyObject[] args
        end local 1 // org.jruby.runtime.ThreadContext context
        end local 0 // org.jruby.ext.stringio.StringIO this
      LocalVariableTable:
        Start  End  Slot     Name  Signature
            0   42     0     this  Lorg/jruby/ext/stringio/StringIO;
            0   42     1  context  Lorg/jruby/runtime/ThreadContext;
            0   42     2     args  [Lorg/jruby/runtime/builtin/IRubyObject;
            1   42     3  runtime  Lorg/jruby/Ruby;
           18   23     4   string  Lorg/jruby/RubyString;
           24   28     4   string  Lorg/jruby/RubyString;
           29   31     4   string  Lorg/jruby/RubyString;
           32   39     4   string  Lorg/jruby/RubyString;
           41   42     4   string  Lorg/jruby/RubyString;
            5   23     5     mode  Lorg/jruby/runtime/builtin/IRubyObject;
            2   42     6      ptr  Lorg/jruby/ext/stringio/StringIO$StringIOData;
           11   12     8    trunc  Z
           17   23     8    trunc  Z
            7   11     9    flags  I
           13   17     9        m  Ljava/lang/String;
      Exception table:
        from    to  target  type
           3    38      39  any
          39    40      39  any
    MethodParameters:
         Name  Flags
      context  
      args     

  public org.jruby.runtime.builtin.IRubyObject initialize_copy(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=4, locals=4, args_size=3
        start local 0 // org.jruby.ext.stringio.StringIO this
        start local 1 // org.jruby.runtime.ThreadContext context
        start local 2 // org.jruby.runtime.builtin.IRubyObject other
         0: .line 211
            aload 2 /* other */
         1: .line 212
            aload 1 /* context */
            getfield org.jruby.runtime.ThreadContext.runtime:Lorg/jruby/Ruby;
            ldc "StringIO"
            invokevirtual org.jruby.Ruby.getClass:(Ljava/lang/String;)Lorg/jruby/RubyClass;
            ldc "to_strio"
         2: .line 211
            invokestatic org.jruby.util.TypeConverter.convertToType:(Lorg/jruby/runtime/builtin/IRubyObject;Lorg/jruby/RubyClass;Ljava/lang/String;)Lorg/jruby/runtime/builtin/IRubyObject;
            checkcast org.jruby.ext.stringio.StringIO
            astore 3 /* otherIO */
        start local 3 // org.jruby.ext.stringio.StringIO otherIO
         3: .line 214
            aload 0 /* this */
            aload 3 /* otherIO */
            if_acmpne 4
            aload 0 /* this */
            areturn
         4: .line 216
      StackMap locals: org.jruby.ext.stringio.StringIO
      StackMap stack:
            aload 0 /* this */
            aload 3 /* otherIO */
            getfield org.jruby.ext.stringio.StringIO.ptr:Lorg/jruby/ext/stringio/StringIO$StringIOData;
            putfield org.jruby.ext.stringio.StringIO.ptr:Lorg/jruby/ext/stringio/StringIO$StringIOData;
         5: .line 217
            aload 0 /* this */
            aload 3 /* otherIO */
            invokevirtual org.jruby.ext.stringio.StringIO.infectBy:(Lorg/jruby/runtime/builtin/IRubyObject;)Lorg/jruby/runtime/builtin/IRubyObject;
            pop
         6: .line 218
            aload 0 /* this */
            dup
            getfield org.jruby.ext.stringio.StringIO.flags:I
            getstatic org.jruby.ext.stringio.StringIO.STRIO_READWRITE:I
            iconst_m1
            ixor
            iand
            putfield org.jruby.ext.stringio.StringIO.flags:I
         7: .line 219
            aload 0 /* this */
            dup
            getfield org.jruby.ext.stringio.StringIO.flags:I
            aload 3 /* otherIO */
            getfield org.jruby.ext.stringio.StringIO.flags:I
            getstatic org.jruby.ext.stringio.StringIO.STRIO_READWRITE:I
            iand
            ior
            putfield org.jruby.ext.stringio.StringIO.flags:I
         8: .line 221
            aload 0 /* this */
            areturn
        end local 3 // org.jruby.ext.stringio.StringIO otherIO
        end local 2 // org.jruby.runtime.builtin.IRubyObject other
        end local 1 // org.jruby.runtime.ThreadContext context
        end local 0 // org.jruby.ext.stringio.StringIO this
      LocalVariableTable:
        Start  End  Slot     Name  Signature
            0    9     0     this  Lorg/jruby/ext/stringio/StringIO;
            0    9     1  context  Lorg/jruby/runtime/ThreadContext;
            0    9     2    other  Lorg/jruby/runtime/builtin/IRubyObject;
            3    9     3  otherIO  Lorg/jruby/ext/stringio/StringIO;
    RuntimeVisibleAnnotations: 
      org.jruby.anno.JRubyMethod(visibility = org.jruby.runtime.Visibility.PRIVATE:Lorg/jruby/runtime/Visibility;)
    MethodParameters:
         Name  Flags
      context  
      other    

  public org.jruby.runtime.builtin.IRubyObject binmode(org.jruby.runtime.ThreadContext);
    descriptor: (Lorg/jruby/runtime/ThreadContext;)Lorg/jruby/runtime/builtin/IRubyObject;
    flags: (0x0001) ACC_PUBLIC
    Code:
      stack=2, locals=2, args_size=2
        start local 0 // org.jruby.ext.stringio.StringIO this
        start local 1 // org.jruby.runtime.ThreadContext context
         0: .line 226
            aload 0 /* this */
            getfield org.jruby.ext.stringio.StringIO.ptr:Lorg/jruby/ext/stringio/StringIO$StringIOData;
            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;
            putfield org.jruby.ext.stringio.StringIO$StringIOData.enc:Lorg/jcodings/Encoding;
         1: .line 227
            aload 0 /* this */
            invokevirtual org.jruby.ext.stringio.StringIO.writable:()Z
            ifeq 2
            aload 0 /* this */
            getfield org.jruby.ext.stringio.StringIO.ptr:Lorg/jruby/ext/stringio/StringIO$StringIOData;
            getfield org.jruby.ext.stringio.StringIO$StringIOData.string:Lorg/jruby/RubyString;
            aload 0 /* this */
            getfield org.jruby.ext.stringio.StringIO.ptr:Lorg/jruby/ext/stringio/StringIO$StringIOData;
            getfield org.jruby.ext.stringio.StringIO$StringIOData.enc:Lorg/jcodings/Encoding;
            invokevirtual org.jruby.RubyString.setEncoding:(Lorg/jcodings/Encoding;)V
         2: .line 229
      StackMap locals:
      StackMap stack:
            aload 0 /* this */
            areturn
        end local 1 // org.jruby.runtime.ThreadContext context
        end local 0 // org.jruby.ext.stringio.StringIO this
      LocalVariableTable:
        Start  End  Slot     Name  Signature
            0    3     0     this  Lorg/jruby/ext/stringio/StringIO;
            0    3     1  context  Lorg/jruby/runtime/ThreadContext;
    RuntimeVisibleAnnotations: 
      org.jruby.anno.JRubyMethod()
    MethodParameters:
         Name  Flags
      context  

  public org.jruby.runtime.builtin.IRubyObject strio_self();
    descriptor: ()Lorg/jruby/runtime/builtin/IRubyObject;
    flags: (0x0001) ACC_PUBLIC
    Code:
      stack=1, locals=1, args_size=1
        start local 0 // org.jruby.ext.stringio.StringIO this
         0: .line 234
            aload 0 /* this */
            areturn
        end local 0 // org.jruby.ext.stringio.StringIO this
      LocalVariableTable:
        Start  End  Slot  Name  Signature
            0    1     0  this  Lorg/jruby/ext/stringio/StringIO;
    RuntimeVisibleAnnotations: 
      org.jruby.anno.JRubyMethod(name = {"flush"})

  public org.jruby.runtime.builtin.IRubyObject strio_unimpl(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=2, locals=3, args_size=3
        start local 0 // org.jruby.ext.stringio.StringIO this
        start local 1 // org.jruby.runtime.ThreadContext context
        start local 2 // org.jruby.runtime.builtin.IRubyObject[] args
         0: .line 239
            aload 1 /* context */
            getfield org.jruby.runtime.ThreadContext.runtime:Lorg/jruby/Ruby;
            ldc ""
            invokevirtual org.jruby.Ruby.newNotImplementedError:(Ljava/lang/String;)Lorg/jruby/exceptions/RaiseException;
            athrow
        end local 2 // org.jruby.runtime.builtin.IRubyObject[] args
        end local 1 // org.jruby.runtime.ThreadContext context
        end local 0 // org.jruby.ext.stringio.StringIO this
      LocalVariableTable:
        Start  End  Slot     Name  Signature
            0    1     0     this  Lorg/jruby/ext/stringio/StringIO;
            0    1     1  context  Lorg/jruby/runtime/ThreadContext;
            0    1     2     args  [Lorg/jruby/runtime/builtin/IRubyObject;
    RuntimeVisibleAnnotations: 
      org.jruby.anno.JRubyMethod(name = {"fcntl"}, rest = true)
    MethodParameters:
         Name  Flags
      context  
      args     

  public org.jruby.runtime.builtin.IRubyObject strioZero(org.jruby.runtime.ThreadContext);
    descriptor: (Lorg/jruby/runtime/ThreadContext;)Lorg/jruby/runtime/builtin/IRubyObject;
    flags: (0x0001) ACC_PUBLIC
    Code:
      stack=1, locals=2, args_size=2
        start local 0 // org.jruby.ext.stringio.StringIO this
        start local 1 // org.jruby.runtime.ThreadContext context
         0: .line 244
            aload 1 /* context */
            getfield org.jruby.runtime.ThreadContext.runtime:Lorg/jruby/Ruby;
            invokestatic org.jruby.RubyFixnum.zero:(Lorg/jruby/Ruby;)Lorg/jruby/RubyFixnum;
            areturn
        end local 1 // org.jruby.runtime.ThreadContext context
        end local 0 // org.jruby.ext.stringio.StringIO this
      LocalVariableTable:
        Start  End  Slot     Name  Signature
            0    1     0     this  Lorg/jruby/ext/stringio/StringIO;
            0    1     1  context  Lorg/jruby/runtime/ThreadContext;
    RuntimeVisibleAnnotations: 
      org.jruby.anno.JRubyMethod(name = {"fsync"})
    MethodParameters:
         Name  Flags
      context  

  public org.jruby.runtime.builtin.IRubyObject strioFirst(org.jruby.runtime.builtin.IRubyObject);
    descriptor: (Lorg/jruby/runtime/builtin/IRubyObject;)Lorg/jruby/runtime/builtin/IRubyObject;
    flags: (0x0001) ACC_PUBLIC
    Code:
      stack=1, locals=2, args_size=2
        start local 0 // org.jruby.ext.stringio.StringIO this
        start local 1 // org.jruby.runtime.builtin.IRubyObject arg
         0: .line 249
            aload 0 /* this */
            invokevirtual org.jruby.ext.stringio.StringIO.checkInitialized:()V
         1: .line 250
            aload 1 /* arg */
            areturn
        end local 1 // org.jruby.runtime.builtin.IRubyObject arg
        end local 0 // org.jruby.ext.stringio.StringIO this
      LocalVariableTable:
        Start  End  Slot  Name  Signature
            0    2     0  this  Lorg/jruby/ext/stringio/StringIO;
            0    2     1   arg  Lorg/jruby/runtime/builtin/IRubyObject;
    RuntimeVisibleAnnotations: 
      org.jruby.anno.JRubyMethod(name = {"sync="})
    MethodParameters:
      Name  Flags
      arg   

  public org.jruby.runtime.builtin.IRubyObject strioFalse(org.jruby.runtime.ThreadContext);
    descriptor: (Lorg/jruby/runtime/ThreadContext;)Lorg/jruby/runtime/builtin/IRubyObject;
    flags: (0x0001) ACC_PUBLIC
    Code:
      stack=1, locals=2, args_size=2
        start local 0 // org.jruby.ext.stringio.StringIO this
        start local 1 // org.jruby.runtime.ThreadContext context
         0: .line 255
            aload 1 /* context */
            getfield org.jruby.runtime.ThreadContext.fals:Lorg/jruby/RubyBoolean;
            areturn
        end local 1 // org.jruby.runtime.ThreadContext context
        end local 0 // org.jruby.ext.stringio.StringIO this
      LocalVariableTable:
        Start  End  Slot     Name  Signature
            0    1     0     this  Lorg/jruby/ext/stringio/StringIO;
            0    1     1  context  Lorg/jruby/runtime/ThreadContext;
    RuntimeVisibleAnnotations: 
      org.jruby.anno.JRubyMethod(name = {"isatty", "tty?"})
    MethodParameters:
         Name  Flags
      context  

  public org.jruby.runtime.builtin.IRubyObject strioNil(org.jruby.runtime.ThreadContext);
    descriptor: (Lorg/jruby/runtime/ThreadContext;)Lorg/jruby/runtime/builtin/IRubyObject;
    flags: (0x0001) ACC_PUBLIC
    Code:
      stack=1, locals=2, args_size=2
        start local 0 // org.jruby.ext.stringio.StringIO this
        start local 1 // org.jruby.runtime.ThreadContext context
         0: .line 260
            aload 1 /* context */
            getfield org.jruby.runtime.ThreadContext.nil:Lorg/jruby/runtime/builtin/IRubyObject;
            areturn
        end local 1 // org.jruby.runtime.ThreadContext context
        end local 0 // org.jruby.ext.stringio.StringIO this
      LocalVariableTable:
        Start  End  Slot     Name  Signature
            0    1     0     this  Lorg/jruby/ext/stringio/StringIO;
            0    1     1  context  Lorg/jruby/runtime/ThreadContext;
    RuntimeVisibleAnnotations: 
      org.jruby.anno.JRubyMethod(name = {"pid", "fileno"})
    MethodParameters:
         Name  Flags
      context  

  public org.jruby.runtime.builtin.IRubyObject close(org.jruby.runtime.ThreadContext);
    descriptor: (Lorg/jruby/runtime/ThreadContext;)Lorg/jruby/runtime/builtin/IRubyObject;
    flags: (0x0001) ACC_PUBLIC
    Code:
      stack=4, locals=2, args_size=2
        start local 0 // org.jruby.ext.stringio.StringIO this
        start local 1 // org.jruby.runtime.ThreadContext context
         0: .line 265
            aload 0 /* this */
            invokevirtual org.jruby.ext.stringio.StringIO.checkInitialized:()V
         1: .line 266
            aload 0 /* this */
            invokevirtual org.jruby.ext.stringio.StringIO.closed:()Z
            ifeq 2
            aload 1 /* context */
            getfield org.jruby.runtime.ThreadContext.nil:Lorg/jruby/runtime/builtin/IRubyObject;
            areturn
         2: .line 269
      StackMap locals:
      StackMap stack:
            aload 0 /* this */
            dup
            getfield org.jruby.ext.stringio.StringIO.flags:I
            getstatic org.jruby.ext.stringio.StringIO.STRIO_READWRITE:I
            iconst_m1
            ixor
            iand
            putfield org.jruby.ext.stringio.StringIO.flags:I
         3: .line 271
            aload 1 /* context */
            getfield org.jruby.runtime.ThreadContext.nil:Lorg/jruby/runtime/builtin/IRubyObject;
            areturn
        end local 1 // org.jruby.runtime.ThreadContext context
        end local 0 // org.jruby.ext.stringio.StringIO this
      LocalVariableTable:
        Start  End  Slot     Name  Signature
            0    4     0     this  Lorg/jruby/ext/stringio/StringIO;
            0    4     1  context  Lorg/jruby/runtime/ThreadContext;
    RuntimeVisibleAnnotations: 
      org.jruby.anno.JRubyMethod()
    MethodParameters:
         Name  Flags
      context  

  public org.jruby.runtime.builtin.IRubyObject closed_p();
    descriptor: ()Lorg/jruby/runtime/builtin/IRubyObject;
    flags: (0x0001) ACC_PUBLIC
    Code:
      stack=2, locals=1, args_size=1
        start local 0 // org.jruby.ext.stringio.StringIO this
         0: .line 276
            aload 0 /* this */
            invokevirtual org.jruby.ext.stringio.StringIO.checkInitialized:()V
         1: .line 277
            aload 0 /* this */
            invokevirtual org.jruby.ext.stringio.StringIO.getRuntime:()Lorg/jruby/Ruby;
            aload 0 /* this */
            invokevirtual org.jruby.ext.stringio.StringIO.closed:()Z
            invokevirtual org.jruby.Ruby.newBoolean:(Z)Lorg/jruby/RubyBoolean;
            areturn
        end local 0 // org.jruby.ext.stringio.StringIO this
      LocalVariableTable:
        Start  End  Slot  Name  Signature
            0    2     0  this  Lorg/jruby/ext/stringio/StringIO;
    RuntimeVisibleAnnotations: 
      org.jruby.anno.JRubyMethod(name = {"closed?"})

  public org.jruby.runtime.builtin.IRubyObject close_read(org.jruby.runtime.ThreadContext);
    descriptor: (Lorg/jruby/runtime/ThreadContext;)Lorg/jruby/runtime/builtin/IRubyObject;
    flags: (0x0001) ACC_PUBLIC
    Code:
      stack=4, locals=2, args_size=2
        start local 0 // org.jruby.ext.stringio.StringIO this
        start local 1 // org.jruby.runtime.ThreadContext context
         0: .line 283
            aload 0 /* this */
            invokevirtual org.jruby.ext.stringio.StringIO.checkInitialized:()V
         1: .line 284
            aload 0 /* this */
            getfield org.jruby.ext.stringio.StringIO.ptr:Lorg/jruby/ext/stringio/StringIO$StringIOData;
            getfield org.jruby.ext.stringio.StringIO$StringIOData.flags:I
            iconst_1
            iand
            ifne 3
         2: .line 285
            aload 1 /* context */
            getfield org.jruby.runtime.ThreadContext.runtime:Lorg/jruby/Ruby;
            ldc "not opened for reading"
            invokevirtual org.jruby.Ruby.newIOError:(Ljava/lang/String;)Lorg/jruby/exceptions/RaiseException;
            athrow
         3: .line 287
      StackMap locals:
      StackMap stack:
            aload 0 /* this */
            getfield org.jruby.ext.stringio.StringIO.flags:I
            getstatic org.jruby.ext.stringio.StringIO.STRIO_READABLE:I
            iand
            ifeq 5
         4: .line 288
            aload 0 /* this */
            dup
            getfield org.jruby.ext.stringio.StringIO.flags:I
            getstatic org.jruby.ext.stringio.StringIO.STRIO_READABLE:I
            iconst_m1
            ixor
            iand
            putfield org.jruby.ext.stringio.StringIO.flags:I
         5: .line 290
      StackMap locals:
      StackMap stack:
            aload 1 /* context */
            getfield org.jruby.runtime.ThreadContext.nil:Lorg/jruby/runtime/builtin/IRubyObject;
            areturn
        end local 1 // org.jruby.runtime.ThreadContext context
        end local 0 // org.jruby.ext.stringio.StringIO this
      LocalVariableTable:
        Start  End  Slot     Name  Signature
            0    6     0     this  Lorg/jruby/ext/stringio/StringIO;
            0    6     1  context  Lorg/jruby/runtime/ThreadContext;
    RuntimeVisibleAnnotations: 
      org.jruby.anno.JRubyMethod()
    MethodParameters:
         Name  Flags
      context  

  public org.jruby.runtime.builtin.IRubyObject closed_read_p();
    descriptor: ()Lorg/jruby/runtime/builtin/IRubyObject;
    flags: (0x0001) ACC_PUBLIC
    Code:
      stack=2, locals=1, args_size=1
        start local 0 // org.jruby.ext.stringio.StringIO this
         0: .line 295
            aload 0 /* this */
            invokevirtual org.jruby.ext.stringio.StringIO.checkInitialized:()V
         1: .line 296
            aload 0 /* this */
            invokevirtual org.jruby.ext.stringio.StringIO.getRuntime:()Lorg/jruby/Ruby;
            aload 0 /* this */
            invokevirtual org.jruby.ext.stringio.StringIO.readable:()Z
            ifeq 2
            iconst_0
            goto 3
      StackMap locals:
      StackMap stack: org.jruby.Ruby
         2: iconst_1
      StackMap locals: org.jruby.ext.stringio.StringIO
      StackMap stack: org.jruby.Ruby int
         3: invokevirtual org.jruby.Ruby.newBoolean:(Z)Lorg/jruby/RubyBoolean;
            areturn
        end local 0 // org.jruby.ext.stringio.StringIO this
      LocalVariableTable:
        Start  End  Slot  Name  Signature
            0    4     0  this  Lorg/jruby/ext/stringio/StringIO;
    RuntimeVisibleAnnotations: 
      org.jruby.anno.JRubyMethod(name = {"closed_read?"})

  public org.jruby.runtime.builtin.IRubyObject close_write(org.jruby.runtime.ThreadContext);
    descriptor: (Lorg/jruby/runtime/ThreadContext;)Lorg/jruby/runtime/builtin/IRubyObject;
    flags: (0x0001) ACC_PUBLIC
    Code:
      stack=4, locals=2, args_size=2
        start local 0 // org.jruby.ext.stringio.StringIO this
        start local 1 // org.jruby.runtime.ThreadContext context
         0: .line 302
            aload 0 /* this */
            invokevirtual org.jruby.ext.stringio.StringIO.checkInitialized:()V
         1: .line 303
            aload 0 /* this */
            getfield org.jruby.ext.stringio.StringIO.ptr:Lorg/jruby/ext/stringio/StringIO$StringIOData;
            getfield org.jruby.ext.stringio.StringIO$StringIOData.flags:I
            iconst_2
            iand
            ifne 3
         2: .line 304
            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
         3: .line 306
      StackMap locals:
      StackMap stack:
            aload 0 /* this */
            getfield org.jruby.ext.stringio.StringIO.flags:I
            getstatic org.jruby.ext.stringio.StringIO.STRIO_WRITABLE:I
            iand
            ifeq 5
         4: .line 307
            aload 0 /* this */
            dup
            getfield org.jruby.ext.stringio.StringIO.flags:I
            getstatic org.jruby.ext.stringio.StringIO.STRIO_WRITABLE:I
            iconst_m1
            ixor
            iand
            putfield org.jruby.ext.stringio.StringIO.flags:I
         5: .line 309
      StackMap locals:
      StackMap stack:
            aload 1 /* context */
            getfield org.jruby.runtime.ThreadContext.nil:Lorg/jruby/runtime/builtin/IRubyObject;
            areturn
        end local 1 // org.jruby.runtime.ThreadContext context
        end local 0 // org.jruby.ext.stringio.StringIO this
      LocalVariableTable:
        Start  End  Slot     Name  Signature
            0    6     0     this  Lorg/jruby/ext/stringio/StringIO;
            0    6     1  context  Lorg/jruby/runtime/ThreadContext;
    RuntimeVisibleAnnotations: 
      org.jruby.anno.JRubyMethod()
    MethodParameters:
         Name  Flags
      context  

  public org.jruby.runtime.builtin.IRubyObject closed_write_p();
    descriptor: ()Lorg/jruby/runtime/builtin/IRubyObject;
    flags: (0x0001) ACC_PUBLIC
    Code:
      stack=2, locals=1, args_size=1
        start local 0 // org.jruby.ext.stringio.StringIO this
         0: .line 314
            aload 0 /* this */
            invokevirtual org.jruby.ext.stringio.StringIO.checkInitialized:()V
         1: .line 315
            aload 0 /* this */
            invokevirtual org.jruby.ext.stringio.StringIO.getRuntime:()Lorg/jruby/Ruby;
            aload 0 /* this */
            invokevirtual org.jruby.ext.stringio.StringIO.writable:()Z
            ifeq 2
            iconst_0
            goto 3
      StackMap locals:
      StackMap stack: org.jruby.Ruby
         2: iconst_1
      StackMap locals: org.jruby.ext.stringio.StringIO
      StackMap stack: org.jruby.Ruby int
         3: invokevirtual org.jruby.Ruby.newBoolean:(Z)Lorg/jruby/RubyBoolean;
            areturn
        end local 0 // org.jruby.ext.stringio.StringIO this
      LocalVariableTable:
        Start  End  Slot  Name  Signature
            0    4     0  this  Lorg/jruby/ext/stringio/StringIO;
    RuntimeVisibleAnnotations: 
      org.jruby.anno.JRubyMethod(name = {"closed_write?"})

  public org.jruby.runtime.builtin.IRubyObject each(org.jruby.runtime.ThreadContext, org.jruby.runtime.Block);
    descriptor: (Lorg/jruby/runtime/ThreadContext;Lorg/jruby/runtime/Block;)Lorg/jruby/runtime/builtin/IRubyObject;
    flags: (0x0001) ACC_PUBLIC
    Code:
      stack=9, locals=3, args_size=3
        start local 0 // org.jruby.ext.stringio.StringIO this
        start local 1 // org.jruby.runtime.ThreadContext context
        start local 2 // org.jruby.runtime.Block block
         0: .line 321
            aload 2 /* block */
            invokevirtual org.jruby.runtime.Block.isGiven:()Z
            ifne 1
            aload 1 /* context */
            getfield org.jruby.runtime.ThreadContext.runtime:Lorg/jruby/Ruby;
            aload 0 /* this */
            ldc "each"
            invokestatic org.jruby.RubyEnumerator.enumeratorize:(Lorg/jruby/Ruby;Lorg/jruby/runtime/builtin/IRubyObject;Ljava/lang/String;)Lorg/jruby/runtime/builtin/IRubyObject;
            areturn
         1: .line 323
      StackMap locals:
      StackMap stack:
            aload 1 /* context */
            getstatic org.jruby.ext.stringio.StringIO.GETLINE_YIELD:Lorg/jruby/util/io/Getline$Callback;
            aload 0 /* this */
            aload 0 /* this */
            invokevirtual org.jruby.ext.stringio.StringIO.getEncoding:()Lorg/jcodings/Encoding;
            iconst_0
            aconst_null
            aconst_null
            aconst_null
            aload 2 /* block */
            invokestatic org.jruby.util.io.Getline.getlineCall:(Lorg/jruby/runtime/ThreadContext;Lorg/jruby/util/io/Getline$Callback;Ljava/lang/Object;Lorg/jcodings/Encoding;ILorg/jruby/runtime/builtin/IRubyObject;Lorg/jruby/runtime/builtin/IRubyObject;Lorg/jruby/runtime/builtin/IRubyObject;Lorg/jruby/runtime/Block;)Lorg/jruby/runtime/builtin/IRubyObject;
            areturn
        end local 2 // org.jruby.runtime.Block block
        end local 1 // org.jruby.runtime.ThreadContext context
        end local 0 // org.jruby.ext.stringio.StringIO this
      LocalVariableTable:
        Start  End  Slot     Name  Signature
            0    2     0     this  Lorg/jruby/ext/stringio/StringIO;
            0    2     1  context  Lorg/jruby/runtime/ThreadContext;
            0    2     2    block  Lorg/jruby/runtime/Block;
    RuntimeVisibleAnnotations: 
      org.jruby.anno.JRubyMethod(name = {"each"}, writes = {org.jruby.anno.FrameField.LASTLINE:Lorg/jruby/anno/FrameField;})
    MethodParameters:
         Name  Flags
      context  
      block    

  public org.jruby.runtime.builtin.IRubyObject each(org.jruby.runtime.ThreadContext, org.jruby.runtime.builtin.IRubyObject, org.jruby.runtime.Block);
    descriptor: (Lorg/jruby/runtime/ThreadContext;Lorg/jruby/runtime/builtin/IRubyObject;Lorg/jruby/runtime/Block;)Lorg/jruby/runtime/builtin/IRubyObject;
    flags: (0x0001) ACC_PUBLIC
    Code:
      stack=9, locals=4, args_size=4
        start local 0 // org.jruby.ext.stringio.StringIO this
        start local 1 // org.jruby.runtime.ThreadContext context
        start local 2 // org.jruby.runtime.builtin.IRubyObject arg0
        start local 3 // org.jruby.runtime.Block block
         0: .line 329
            aload 3 /* block */
            invokevirtual org.jruby.runtime.Block.isGiven:()Z
            ifne 1
            aload 1 /* context */
            getfield org.jruby.runtime.ThreadContext.runtime:Lorg/jruby/Ruby;
            aload 0 /* this */
            ldc "each"
            aload 2 /* arg0 */
            invokestatic org.jruby.RubyEnumerator.enumeratorize:(Lorg/jruby/Ruby;Lorg/jruby/runtime/builtin/IRubyObject;Ljava/lang/String;Lorg/jruby/runtime/builtin/IRubyObject;)Lorg/jruby/runtime/builtin/IRubyObject;
            areturn
         1: .line 331
      StackMap locals:
      StackMap stack:
            aload 1 /* context */
            getstatic org.jruby.ext.stringio.StringIO.GETLINE_YIELD:Lorg/jruby/util/io/Getline$Callback;
            aload 0 /* this */
            aload 0 /* this */
            invokevirtual org.jruby.ext.stringio.StringIO.getEncoding:()Lorg/jcodings/Encoding;
            iconst_1
            aload 2 /* arg0 */
            aconst_null
            aconst_null
            aload 3 /* block */
            invokestatic org.jruby.util.io.Getline.getlineCall:(Lorg/jruby/runtime/ThreadContext;Lorg/jruby/util/io/Getline$Callback;Ljava/lang/Object;Lorg/jcodings/Encoding;ILorg/jruby/runtime/builtin/IRubyObject;Lorg/jruby/runtime/builtin/IRubyObject;Lorg/jruby/runtime/builtin/IRubyObject;Lorg/jruby/runtime/Block;)Lorg/jruby/runtime/builtin/IRubyObject;
            areturn
        end local 3 // org.jruby.runtime.Block block
        end local 2 // org.jruby.runtime.builtin.IRubyObject arg0
        end local 1 // org.jruby.runtime.ThreadContext context
        end local 0 // org.jruby.ext.stringio.StringIO this
      LocalVariableTable:
        Start  End  Slot     Name  Signature
            0    2     0     this  Lorg/jruby/ext/stringio/StringIO;
            0    2     1  context  Lorg/jruby/runtime/ThreadContext;
            0    2     2     arg0  Lorg/jruby/runtime/builtin/IRubyObject;
            0    2     3    block  Lorg/jruby/runtime/Block;
    RuntimeVisibleAnnotations: 
      org.jruby.anno.JRubyMethod(name = {"each"}, writes = {org.jruby.anno.FrameField.LASTLINE:Lorg/jruby/anno/FrameField;})
    MethodParameters:
         Name  Flags
      context  
      arg0     
      block    

  public org.jruby.runtime.builtin.IRubyObject each(org.jruby.runtime.ThreadContext, org.jruby.runtime.builtin.IRubyObject, org.jruby.runtime.builtin.IRubyObject, org.jruby.runtime.Block);
    descriptor: (Lorg/jruby/runtime/ThreadContext;Lorg/jruby/runtime/builtin/IRubyObject;Lorg/jruby/runtime/builtin/IRubyObject;Lorg/jruby/runtime/Block;)Lorg/jruby/runtime/builtin/IRubyObject;
    flags: (0x0001) ACC_PUBLIC
    Code:
      stack=9, locals=5, args_size=5
        start local 0 // org.jruby.ext.stringio.StringIO this
        start local 1 // org.jruby.runtime.ThreadContext context
        start local 2 // org.jruby.runtime.builtin.IRubyObject arg0
        start local 3 // org.jruby.runtime.builtin.IRubyObject arg1
        start local 4 // org.jruby.runtime.Block block
         0: .line 337
            aload 4 /* block */
            invokevirtual org.jruby.runtime.Block.isGiven:()Z
            ifne 1
            aload 1 /* context */
            getfield org.jruby.runtime.ThreadContext.runtime:Lorg/jruby/Ruby;
            aload 0 /* this */
            ldc "each"
            iconst_2
            anewarray org.jruby.runtime.builtin.IRubyObject
            dup
            iconst_0
            aload 2 /* arg0 */
            aastore
            dup
            iconst_1
            aload 3 /* arg1 */
            aastore
            invokestatic org.jruby.runtime.Helpers.arrayOf:([Ljava/lang/Object;)[Ljava/lang/Object;
            checkcast org.jruby.runtime.builtin.IRubyObject[]
            invokestatic org.jruby.RubyEnumerator.enumeratorize:(Lorg/jruby/Ruby;Lorg/jruby/runtime/builtin/IRubyObject;Ljava/lang/String;[Lorg/jruby/runtime/builtin/IRubyObject;)Lorg/jruby/runtime/builtin/IRubyObject;
            areturn
         1: .line 339
      StackMap locals:
      StackMap stack:
            aload 1 /* context */
            getstatic org.jruby.ext.stringio.StringIO.GETLINE_YIELD:Lorg/jruby/util/io/Getline$Callback;
            aload 0 /* this */
            aload 0 /* this */
            invokevirtual org.jruby.ext.stringio.StringIO.getEncoding:()Lorg/jcodings/Encoding;
            iconst_2
            aload 2 /* arg0 */
            aload 3 /* arg1 */
            aconst_null
            aload 4 /* block */
            invokestatic org.jruby.util.io.Getline.getlineCall:(Lorg/jruby/runtime/ThreadContext;Lorg/jruby/util/io/Getline$Callback;Ljava/lang/Object;Lorg/jcodings/Encoding;ILorg/jruby/runtime/builtin/IRubyObject;Lorg/jruby/runtime/builtin/IRubyObject;Lorg/jruby/runtime/builtin/IRubyObject;Lorg/jruby/runtime/Block;)Lorg/jruby/runtime/builtin/IRubyObject;
            areturn
        end local 4 // org.jruby.runtime.Block block
        end local 3 // org.jruby.runtime.builtin.IRubyObject arg1
        end local 2 // org.jruby.runtime.builtin.IRubyObject arg0
        end local 1 // org.jruby.runtime.ThreadContext context
        end local 0 // org.jruby.ext.stringio.StringIO this
      LocalVariableTable:
        Start  End  Slot     Name  Signature
            0    2     0     this  Lorg/jruby/ext/stringio/StringIO;
            0    2     1  context  Lorg/jruby/runtime/ThreadContext;
            0    2     2     arg0  Lorg/jruby/runtime/builtin/IRubyObject;
            0    2     3     arg1  Lorg/jruby/runtime/builtin/IRubyObject;
            0    2     4    block  Lorg/jruby/runtime/Block;
    RuntimeVisibleAnnotations: 
      org.jruby.anno.JRubyMethod(name = {"each"}, writes = {org.jruby.anno.FrameField.LASTLINE:Lorg/jruby/anno/FrameField;})
    MethodParameters:
         Name  Flags
      context  
      arg0     
      arg1     
      block    

  public org.jruby.runtime.builtin.IRubyObject each(org.jruby.runtime.ThreadContext, org.jruby.runtime.builtin.IRubyObject, org.jruby.runtime.builtin.IRubyObject, org.jruby.runtime.builtin.IRubyObject, org.jruby.runtime.Block);
    descriptor: (Lorg/jruby/runtime/ThreadContext;Lorg/jruby/runtime/builtin/IRubyObject;Lorg/jruby/runtime/builtin/IRubyObject;Lorg/jruby/runtime/builtin/IRubyObject;Lorg/jruby/runtime/Block;)Lorg/jruby/runtime/builtin/IRubyObject;
    flags: (0x0001) ACC_PUBLIC
    Code:
      stack=9, locals=6, args_size=6
        start local 0 // org.jruby.ext.stringio.StringIO this
        start local 1 // org.jruby.runtime.ThreadContext context
        start local 2 // org.jruby.runtime.builtin.IRubyObject arg0
        start local 3 // org.jruby.runtime.builtin.IRubyObject arg1
        start local 4 // org.jruby.runtime.builtin.IRubyObject arg2
        start local 5 // org.jruby.runtime.Block block
         0: .line 345
            aload 5 /* block */
            invokevirtual org.jruby.runtime.Block.isGiven:()Z
            ifne 1
            aload 1 /* context */
            getfield org.jruby.runtime.ThreadContext.runtime:Lorg/jruby/Ruby;
            aload 0 /* this */
            ldc "each"
            iconst_3
            anewarray org.jruby.runtime.builtin.IRubyObject
            dup
            iconst_0
            aload 2 /* arg0 */
            aastore
            dup
            iconst_1
            aload 3 /* arg1 */
            aastore
            dup
            iconst_2
            aload 4 /* arg2 */
            aastore
            invokestatic org.jruby.runtime.Helpers.arrayOf:([Ljava/lang/Object;)[Ljava/lang/Object;
            checkcast org.jruby.runtime.builtin.IRubyObject[]
            invokestatic org.jruby.RubyEnumerator.enumeratorize:(Lorg/jruby/Ruby;Lorg/jruby/runtime/builtin/IRubyObject;Ljava/lang/String;[Lorg/jruby/runtime/builtin/IRubyObject;)Lorg/jruby/runtime/builtin/IRubyObject;
            areturn
         1: .line 347
      StackMap locals:
      StackMap stack:
            aload 1 /* context */
            getstatic org.jruby.ext.stringio.StringIO.GETLINE_YIELD:Lorg/jruby/util/io/Getline$Callback;
            aload 0 /* this */
            aload 0 /* this */
            invokevirtual org.jruby.ext.stringio.StringIO.getEncoding:()Lorg/jcodings/Encoding;
            iconst_3
            aload 2 /* arg0 */
            aload 3 /* arg1 */
            aload 4 /* arg2 */
            aload 5 /* block */
            invokestatic org.jruby.util.io.Getline.getlineCall:(Lorg/jruby/runtime/ThreadContext;Lorg/jruby/util/io/Getline$Callback;Ljava/lang/Object;Lorg/jcodings/Encoding;ILorg/jruby/runtime/builtin/IRubyObject;Lorg/jruby/runtime/builtin/IRubyObject;Lorg/jruby/runtime/builtin/IRubyObject;Lorg/jruby/runtime/Block;)Lorg/jruby/runtime/builtin/IRubyObject;
            areturn
        end local 5 // org.jruby.runtime.Block block
        end local 4 // org.jruby.runtime.builtin.IRubyObject arg2
        end local 3 // org.jruby.runtime.builtin.IRubyObject arg1
        end local 2 // org.jruby.runtime.builtin.IRubyObject arg0
        end local 1 // org.jruby.runtime.ThreadContext context
        end local 0 // org.jruby.ext.stringio.StringIO this
      LocalVariableTable:
        Start  End  Slot     Name  Signature
            0    2     0     this  Lorg/jruby/ext/stringio/StringIO;
            0    2     1  context  Lorg/jruby/runtime/ThreadContext;
            0    2     2     arg0  Lorg/jruby/runtime/builtin/IRubyObject;
            0    2     3     arg1  Lorg/jruby/runtime/builtin/IRubyObject;
            0    2     4     arg2  Lorg/jruby/runtime/builtin/IRubyObject;
            0    2     5    block  Lorg/jruby/runtime/Block;
    RuntimeVisibleAnnotations: 
      org.jruby.anno.JRubyMethod(name = {"each"})
    MethodParameters:
         Name  Flags
      context  
      arg0     
      arg1     
      arg2     
      block    

  public org.jruby.runtime.builtin.IRubyObject each(org.jruby.runtime.ThreadContext, org.jruby.runtime.builtin.IRubyObject[], org.jruby.runtime.Block);
    descriptor: (Lorg/jruby/runtime/ThreadContext;[Lorg/jruby/runtime/builtin/IRubyObject;Lorg/jruby/runtime/Block;)Lorg/jruby/runtime/builtin/IRubyObject;
    flags: (0x0001) ACC_PUBLIC
    Code:
      stack=6, locals=4, args_size=4
        start local 0 // org.jruby.ext.stringio.StringIO this
        start local 1 // org.jruby.runtime.ThreadContext context
        start local 2 // org.jruby.runtime.builtin.IRubyObject[] args
        start local 3 // org.jruby.runtime.Block block
         0: .line 351
            aload 3 /* block */
            invokevirtual org.jruby.runtime.Block.isGiven:()Z
            ifne 1
            aload 1 /* context */
            getfield org.jruby.runtime.ThreadContext.runtime:Lorg/jruby/Ruby;
            aload 0 /* this */
            ldc "each"
            aload 2 /* args */
            invokestatic org.jruby.RubyEnumerator.enumeratorize:(Lorg/jruby/Ruby;Lorg/jruby/runtime/builtin/IRubyObject;Ljava/lang/String;[Lorg/jruby/runtime/builtin/IRubyObject;)Lorg/jruby/runtime/builtin/IRubyObject;
            areturn
         1: .line 352
      StackMap locals:
      StackMap stack:
            aload 2 /* args */
            arraylength
            tableswitch { // 0 - 3
                    0: 2
                    1: 3
                    2: 4
                    3: 5
              default: 6
          }
         2: .line 354
      StackMap locals:
      StackMap stack:
            aload 0 /* this */
            aload 1 /* context */
            aload 3 /* block */
            invokevirtual org.jruby.ext.stringio.StringIO.each:(Lorg/jruby/runtime/ThreadContext;Lorg/jruby/runtime/Block;)Lorg/jruby/runtime/builtin/IRubyObject;
            areturn
         3: .line 356
      StackMap locals:
      StackMap stack:
            aload 0 /* this */
            aload 1 /* context */
            aload 2 /* args */
            iconst_0
            aaload
            aload 3 /* block */
            invokevirtual org.jruby.ext.stringio.StringIO.each:(Lorg/jruby/runtime/ThreadContext;Lorg/jruby/runtime/builtin/IRubyObject;Lorg/jruby/runtime/Block;)Lorg/jruby/runtime/builtin/IRubyObject;
            areturn
         4: .line 358
      StackMap locals:
      StackMap stack:
            aload 0 /* this */
            aload 1 /* context */
            aload 2 /* args */
            iconst_0
            aaload
            aload 2 /* args */
            iconst_1
            aaload
            aload 3 /* block */
            invokevirtual org.jruby.ext.stringio.StringIO.each:(Lorg/jruby/runtime/ThreadContext;Lorg/jruby/runtime/builtin/IRubyObject;Lorg/jruby/runtime/builtin/IRubyObject;Lorg/jruby/runtime/Block;)Lorg/jruby/runtime/builtin/IRubyObject;
            areturn
         5: .line 360
      StackMap locals:
      StackMap stack:
            aload 0 /* this */
            aload 1 /* context */
            aload 2 /* args */
            iconst_0
            aaload
            aload 2 /* args */
            iconst_1
            aaload
            aload 2 /* args */
            iconst_2
            aaload
            aload 3 /* block */
            invokevirtual org.jruby.ext.stringio.StringIO.each:(Lorg/jruby/runtime/ThreadContext;Lorg/jruby/runtime/builtin/IRubyObject;Lorg/jruby/runtime/builtin/IRubyObject;Lorg/jruby/runtime/builtin/IRubyObject;Lorg/jruby/runtime/Block;)Lorg/jruby/runtime/builtin/IRubyObject;
            areturn
         6: .line 362
      StackMap locals:
      StackMap stack:
            aload 1 /* context */
            aload 2 /* args */
            arraylength
            iconst_0
            iconst_3
            invokestatic org.jruby.runtime.Arity.raiseArgumentError:(Lorg/jruby/runtime/ThreadContext;III)V
         7: .line 363
            new java.lang.AssertionError
            dup
            ldc "BUG"
            invokespecial java.lang.AssertionError.<init>:(Ljava/lang/Object;)V
            athrow
        end local 3 // org.jruby.runtime.Block block
        end local 2 // org.jruby.runtime.builtin.IRubyObject[] args
        end local 1 // org.jruby.runtime.ThreadContext context
        end local 0 // org.jruby.ext.stringio.StringIO this
      LocalVariableTable:
        Start  End  Slot     Name  Signature
            0    8     0     this  Lorg/jruby/ext/stringio/StringIO;
            0    8     1  context  Lorg/jruby/runtime/ThreadContext;
            0    8     2     args  [Lorg/jruby/runtime/builtin/IRubyObject;
            0    8     3    block  Lorg/jruby/runtime/Block;
    MethodParameters:
         Name  Flags
      context  
      args     
      block    

  public org.jruby.runtime.builtin.IRubyObject each_line(org.jruby.runtime.ThreadContext, org.jruby.runtime.Block);
    descriptor: (Lorg/jruby/runtime/ThreadContext;Lorg/jruby/runtime/Block;)Lorg/jruby/runtime/builtin/IRubyObject;
    flags: (0x0001) ACC_PUBLIC
    Code:
      stack=3, locals=3, args_size=3
        start local 0 // org.jruby.ext.stringio.StringIO this
        start local 1 // org.jruby.runtime.ThreadContext context
        start local 2 // org.jruby.runtime.Block block
         0: .line 369
            aload 2 /* block */
            invokevirtual org.jruby.runtime.Block.isGiven:()Z
            ifne 1
            aload 1 /* context */
            getfield org.jruby.runtime.ThreadContext.runtime:Lorg/jruby/Ruby;
            aload 0 /* this */
            ldc "each_line"
            invokestatic org.jruby.RubyEnumerator.enumeratorize:(Lorg/jruby/Ruby;Lorg/jruby/runtime/builtin/IRubyObject;Ljava/lang/String;)Lorg/jruby/runtime/builtin/IRubyObject;
            areturn
         1: .line 371
      StackMap locals:
      StackMap stack:
            aload 0 /* this */
            aload 1 /* context */
            aload 2 /* block */
            invokevirtual org.jruby.ext.stringio.StringIO.each:(Lorg/jruby/runtime/ThreadContext;Lorg/jruby/runtime/Block;)Lorg/jruby/runtime/builtin/IRubyObject;
            areturn
        end local 2 // org.jruby.runtime.Block block
        end local 1 // org.jruby.runtime.ThreadContext context
        end local 0 // org.jruby.ext.stringio.StringIO this
      LocalVariableTable:
        Start  End  Slot     Name  Signature
            0    2     0     this  Lorg/jruby/ext/stringio/StringIO;
            0    2     1  context  Lorg/jruby/runtime/ThreadContext;
            0    2     2    block  Lorg/jruby/runtime/Block;
    RuntimeVisibleAnnotations: 
      org.jruby.anno.JRubyMethod(name = {"each_line"})
    MethodParameters:
         Name  Flags
      context  
      block    

  public org.jruby.runtime.builtin.IRubyObject each_line(org.jruby.runtime.ThreadContext, org.jruby.runtime.builtin.IRubyObject, org.jruby.runtime.Block);
    descriptor: (Lorg/jruby/runtime/ThreadContext;Lorg/jruby/runtime/builtin/IRubyObject;Lorg/jruby/runtime/Block;)Lorg/jruby/runtime/builtin/IRubyObject;
    flags: (0x0001) ACC_PUBLIC
    Code:
      stack=4, locals=4, args_size=4
        start local 0 // org.jruby.ext.stringio.StringIO this
        start local 1 // org.jruby.runtime.ThreadContext context
        start local 2 // org.jruby.runtime.builtin.IRubyObject arg0
        start local 3 // org.jruby.runtime.Block block
         0: .line 376
            aload 3 /* block */
            invokevirtual org.jruby.runtime.Block.isGiven:()Z
            ifne 1
            aload 1 /* context */
            getfield org.jruby.runtime.ThreadContext.runtime:Lorg/jruby/Ruby;
            aload 0 /* this */
            ldc "each_line"
            aload 2 /* arg0 */
            invokestatic org.jruby.RubyEnumerator.enumeratorize:(Lorg/jruby/Ruby;Lorg/jruby/runtime/builtin/IRubyObject;Ljava/lang/String;Lorg/jruby/runtime/builtin/IRubyObject;)Lorg/jruby/runtime/builtin/IRubyObject;
            areturn
         1: .line 378
      StackMap locals:
      StackMap stack:
            aload 0 /* this */
            aload 1 /* context */
            aload 2 /* arg0 */
            aload 3 /* block */
            invokevirtual org.jruby.ext.stringio.StringIO.each:(Lorg/jruby/runtime/ThreadContext;Lorg/jruby/runtime/builtin/IRubyObject;Lorg/jruby/runtime/Block;)Lorg/jruby/runtime/builtin/IRubyObject;
            areturn
        end local 3 // org.jruby.runtime.Block block
        end local 2 // org.jruby.runtime.builtin.IRubyObject arg0
        end local 1 // org.jruby.runtime.ThreadContext context
        end local 0 // org.jruby.ext.stringio.StringIO this
      LocalVariableTable:
        Start  End  Slot     Name  Signature
            0    2     0     this  Lorg/jruby/ext/stringio/StringIO;
            0    2     1  context  Lorg/jruby/runtime/ThreadContext;
            0    2     2     arg0  Lorg/jruby/runtime/builtin/IRubyObject;
            0    2     3    block  Lorg/jruby/runtime/Block;
    RuntimeVisibleAnnotations: 
      org.jruby.anno.JRubyMethod(name = {"each_line"})
    MethodParameters:
         Name  Flags
      context  
      arg0     
      block    

  public org.jruby.runtime.builtin.IRubyObject each_line(org.jruby.runtime.ThreadContext, org.jruby.runtime.builtin.IRubyObject, org.jruby.runtime.builtin.IRubyObject, org.jruby.runtime.Block);
    descriptor: (Lorg/jruby/runtime/ThreadContext;Lorg/jruby/runtime/builtin/IRubyObject;Lorg/jruby/runtime/builtin/IRubyObject;Lorg/jruby/runtime/Block;)Lorg/jruby/runtime/builtin/IRubyObject;
    flags: (0x0001) ACC_PUBLIC
    Code:
      stack=7, locals=5, args_size=5
        start local 0 // org.jruby.ext.stringio.StringIO this
        start local 1 // org.jruby.runtime.ThreadContext context
        start local 2 // org.jruby.runtime.builtin.IRubyObject arg0
        start local 3 // org.jruby.runtime.builtin.IRubyObject arg1
        start local 4 // org.jruby.runtime.Block block
         0: .line 383
            aload 4 /* block */
            invokevirtual org.jruby.runtime.Block.isGiven:()Z
            ifne 1
            aload 1 /* context */
            getfield org.jruby.runtime.ThreadContext.runtime:Lorg/jruby/Ruby;
            aload 0 /* this */
            ldc "each_line"
            iconst_2
            anewarray org.jruby.runtime.builtin.IRubyObject
            dup
            iconst_0
            aload 2 /* arg0 */
            aastore
            dup
            iconst_1
            aload 3 /* arg1 */
            aastore
            invokestatic org.jruby.RubyEnumerator.enumeratorize:(Lorg/jruby/Ruby;Lorg/jruby/runtime/builtin/IRubyObject;Ljava/lang/String;[Lorg/jruby/runtime/builtin/IRubyObject;)Lorg/jruby/runtime/builtin/IRubyObject;
            areturn
         1: .line 385
      StackMap locals:
      StackMap stack:
            aload 0 /* this */
            aload 1 /* context */
            aload 2 /* arg0 */
            aload 3 /* arg1 */
            aload 4 /* block */
            invokevirtual org.jruby.ext.stringio.StringIO.each:(Lorg/jruby/runtime/ThreadContext;Lorg/jruby/runtime/builtin/IRubyObject;Lorg/jruby/runtime/builtin/IRubyObject;Lorg/jruby/runtime/Block;)Lorg/jruby/runtime/builtin/IRubyObject;
            areturn
        end local 4 // org.jruby.runtime.Block block
        end local 3 // org.jruby.runtime.builtin.IRubyObject arg1
        end local 2 // org.jruby.runtime.builtin.IRubyObject arg0
        end local 1 // org.jruby.runtime.ThreadContext context
        end local 0 // org.jruby.ext.stringio.StringIO this
      LocalVariableTable:
        Start  End  Slot     Name  Signature
            0    2     0     this  Lorg/jruby/ext/stringio/StringIO;
            0    2     1  context  Lorg/jruby/runtime/ThreadContext;
            0    2     2     arg0  Lorg/jruby/runtime/builtin/IRubyObject;
            0    2     3     arg1  Lorg/jruby/runtime/builtin/IRubyObject;
            0    2     4    block  Lorg/jruby/runtime/Block;
    RuntimeVisibleAnnotations: 
      org.jruby.anno.JRubyMethod(name = {"each_line"})
    MethodParameters:
         Name  Flags
      context  
      arg0     
      arg1     
      block    

  public org.jruby.runtime.builtin.IRubyObject each_line(org.jruby.runtime.ThreadContext, org.jruby.runtime.builtin.IRubyObject, org.jruby.runtime.builtin.IRubyObject, org.jruby.runtime.builtin.IRubyObject, org.jruby.runtime.Block);
    descriptor: (Lorg/jruby/runtime/ThreadContext;Lorg/jruby/runtime/builtin/IRubyObject;Lorg/jruby/runtime/builtin/IRubyObject;Lorg/jruby/runtime/builtin/IRubyObject;Lorg/jruby/runtime/Block;)Lorg/jruby/runtime/builtin/IRubyObject;
    flags: (0x0001) ACC_PUBLIC
    Code:
      stack=7, locals=6, args_size=6
        start local 0 // org.jruby.ext.stringio.StringIO this
        start local 1 // org.jruby.runtime.ThreadContext context
        start local 2 // org.jruby.runtime.builtin.IRubyObject arg0
        start local 3 // org.jruby.runtime.builtin.IRubyObject arg1
        start local 4 // org.jruby.runtime.builtin.IRubyObject arg2
        start local 5 // org.jruby.runtime.Block block
         0: .line 390
            aload 5 /* block */
            invokevirtual org.jruby.runtime.Block.isGiven:()Z
            ifne 1
            aload 1 /* context */
            getfield org.jruby.runtime.ThreadContext.runtime:Lorg/jruby/Ruby;
            aload 0 /* this */
            ldc "each_line"
            iconst_3
            anewarray org.jruby.runtime.builtin.IRubyObject
            dup
            iconst_0
            aload 2 /* arg0 */
            aastore
            dup
            iconst_1
            aload 3 /* arg1 */
            aastore
            dup
            iconst_2
            aload 4 /* arg2 */
            aastore
            invokestatic org.jruby.RubyEnumerator.enumeratorize:(Lorg/jruby/Ruby;Lorg/jruby/runtime/builtin/IRubyObject;Ljava/lang/String;[Lorg/jruby/runtime/builtin/IRubyObject;)Lorg/jruby/runtime/builtin/IRubyObject;
            areturn
         1: .line 392
      StackMap locals:
      StackMap stack:
            aload 0 /* this */
            aload 1 /* context */
            aload 2 /* arg0 */
            aload 3 /* arg1 */
            aload 4 /* arg2 */
            aload 5 /* block */
            invokevirtual org.jruby.ext.stringio.StringIO.each:(Lorg/jruby/runtime/ThreadContext;Lorg/jruby/runtime/builtin/IRubyObject;Lorg/jruby/runtime/builtin/IRubyObject;Lorg/jruby/runtime/builtin/IRubyObject;Lorg/jruby/runtime/Block;)Lorg/jruby/runtime/builtin/IRubyObject;
            areturn
        end local 5 // org.jruby.runtime.Block block
        end local 4 // org.jruby.runtime.builtin.IRubyObject arg2
        end local 3 // org.jruby.runtime.builtin.IRubyObject arg1
        end local 2 // org.jruby.runtime.builtin.IRubyObject arg0
        end local 1 // org.jruby.runtime.ThreadContext context
        end local 0 // org.jruby.ext.stringio.StringIO this
      LocalVariableTable:
        Start  End  Slot     Name  Signature
            0    2     0     this  Lorg/jruby/ext/stringio/StringIO;
            0    2     1  context  Lorg/jruby/runtime/ThreadContext;
            0    2     2     arg0  Lorg/jruby/runtime/builtin/IRubyObject;
            0    2     3     arg1  Lorg/jruby/runtime/builtin/IRubyObject;
            0    2     4     arg2  Lorg/jruby/runtime/builtin/IRubyObject;
            0    2     5    block  Lorg/jruby/runtime/Block;
    RuntimeVisibleAnnotations: 
      org.jruby.anno.JRubyMethod(name = {"each_line"})
    MethodParameters:
         Name  Flags
      context  
      arg0     
      arg1     
      arg2     
      block    

  public org.jruby.runtime.builtin.IRubyObject each_line(org.jruby.runtime.ThreadContext, org.jruby.runtime.builtin.IRubyObject[], org.jruby.runtime.Block);
    descriptor: (Lorg/jruby/runtime/ThreadContext;[Lorg/jruby/runtime/builtin/IRubyObject;Lorg/jruby/runtime/Block;)Lorg/jruby/runtime/builtin/IRubyObject;
    flags: (0x0001) ACC_PUBLIC
    Code:
      stack=6, locals=4, args_size=4
        start local 0 // org.jruby.ext.stringio.StringIO this
        start local 1 // org.jruby.runtime.ThreadContext context
        start local 2 // org.jruby.runtime.builtin.IRubyObject[] args
        start local 3 // org.jruby.runtime.Block block
         0: .line 396
            aload 3 /* block */
            invokevirtual org.jruby.runtime.Block.isGiven:()Z
            ifne 1
            aload 1 /* context */
            getfield org.jruby.runtime.ThreadContext.runtime:Lorg/jruby/Ruby;
            aload 0 /* this */
            ldc "each_line"
            aload 2 /* args */
            invokestatic org.jruby.RubyEnumerator.enumeratorize:(Lorg/jruby/Ruby;Lorg/jruby/runtime/builtin/IRubyObject;Ljava/lang/String;[Lorg/jruby/runtime/builtin/IRubyObject;)Lorg/jruby/runtime/builtin/IRubyObject;
            areturn
         1: .line 397
      StackMap locals:
      StackMap stack:
            aload 2 /* args */
            arraylength
            tableswitch { // 0 - 3
                    0: 2
                    1: 3
                    2: 4
                    3: 5
              default: 6
          }
         2: .line 399
      StackMap locals:
      StackMap stack:
            aload 0 /* this */
            aload 1 /* context */
            aload 3 /* block */
            invokevirtual org.jruby.ext.stringio.StringIO.each_line:(Lorg/jruby/runtime/ThreadContext;Lorg/jruby/runtime/Block;)Lorg/jruby/runtime/builtin/IRubyObject;
            areturn
         3: .line 401
      StackMap locals:
      StackMap stack:
            aload 0 /* this */
            aload 1 /* context */
            aload 2 /* args */
            iconst_0
            aaload
            aload 3 /* block */
            invokevirtual org.jruby.ext.stringio.StringIO.each_line:(Lorg/jruby/runtime/ThreadContext;Lorg/jruby/runtime/builtin/IRubyObject;Lorg/jruby/runtime/Block;)Lorg/jruby/runtime/builtin/IRubyObject;
            areturn
         4: .line 403
      StackMap locals:
      StackMap stack:
            aload 0 /* this */
            aload 1 /* context */
            aload 2 /* args */
            iconst_0
            aaload
            aload 2 /* args */
            iconst_1
            aaload
            aload 3 /* block */
            invokevirtual org.jruby.ext.stringio.StringIO.each_line:(Lorg/jruby/runtime/ThreadContext;Lorg/jruby/runtime/builtin/IRubyObject;Lorg/jruby/runtime/builtin/IRubyObject;Lorg/jruby/runtime/Block;)Lorg/jruby/runtime/builtin/IRubyObject;
            areturn
         5: .line 405
      StackMap locals:
      StackMap stack:
            aload 0 /* this */
            aload 1 /* context */
            aload 2 /* args */
            iconst_0
            aaload
            aload 2 /* args */
            iconst_1
            aaload
            aload 2 /* args */
            iconst_2
            aaload
            aload 3 /* block */
            invokevirtual org.jruby.ext.stringio.StringIO.each_line:(Lorg/jruby/runtime/ThreadContext;Lorg/jruby/runtime/builtin/IRubyObject;Lorg/jruby/runtime/builtin/IRubyObject;Lorg/jruby/runtime/builtin/IRubyObject;Lorg/jruby/runtime/Block;)Lorg/jruby/runtime/builtin/IRubyObject;
            areturn
         6: .line 407
      StackMap locals:
      StackMap stack:
            aload 1 /* context */
            aload 2 /* args */
            arraylength
            iconst_0
            iconst_3
            invokestatic org.jruby.runtime.Arity.raiseArgumentError:(Lorg/jruby/runtime/ThreadContext;III)V
         7: .line 408
            new java.lang.AssertionError
            dup
            ldc "BUG"
            invokespecial java.lang.AssertionError.<init>:(Ljava/lang/Object;)V
            athrow
        end local 3 // org.jruby.runtime.Block block
        end local 2 // org.jruby.runtime.builtin.IRubyObject[] args
        end local 1 // org.jruby.runtime.ThreadContext context
        end local 0 // org.jruby.ext.stringio.StringIO this
      LocalVariableTable:
        Start  End  Slot     Name  Signature
            0    8     0     this  Lorg/jruby/ext/stringio/StringIO;
            0    8     1  context  Lorg/jruby/runtime/ThreadContext;
            0    8     2     args  [Lorg/jruby/runtime/builtin/IRubyObject;
            0    8     3    block  Lorg/jruby/runtime/Block;
    MethodParameters:
         Name  Flags
      context  
      args     
      block    

  public org.jruby.runtime.builtin.IRubyObject lines(org.jruby.runtime.ThreadContext, org.jruby.runtime.builtin.IRubyObject[], org.jruby.runtime.Block);
    descriptor: (Lorg/jruby/runtime/ThreadContext;[Lorg/jruby/runtime/builtin/IRubyObject;Lorg/jruby/runtime/Block;)Lorg/jruby/runtime/builtin/IRubyObject;
    flags: (0x0001) ACC_PUBLIC
    Code:
      stack=4, locals=4, args_size=4
        start local 0 // org.jruby.ext.stringio.StringIO this
        start local 1 // org.jruby.runtime.ThreadContext context
        start local 2 // org.jruby.runtime.builtin.IRubyObject[] args
        start local 3 // org.jruby.runtime.Block block
         0: .line 414
            aload 1 /* context */
            getfield org.jruby.runtime.ThreadContext.runtime:Lorg/jruby/Ruby;
            invokevirtual org.jruby.Ruby.getWarnings:()Lorg/jruby/common/RubyWarnings;
            ldc "StringIO#lines is deprecated; use #each_line instead"
            invokevirtual org.jruby.common.RubyWarnings.warn:(Ljava/lang/String;)V
         1: .line 415
            aload 3 /* block */
            invokevirtual org.jruby.runtime.Block.isGiven:()Z
            ifeq 2
            aload 0 /* this */
            aload 1 /* context */
            aload 2 /* args */
            aload 3 /* block */
            invokevirtual org.jruby.ext.stringio.StringIO.each:(Lorg/jruby/runtime/ThreadContext;[Lorg/jruby/runtime/builtin/IRubyObject;Lorg/jruby/runtime/Block;)Lorg/jruby/runtime/builtin/IRubyObject;
            goto 3
      StackMap locals:
      StackMap stack:
         2: aload 1 /* context */
            getfield org.jruby.runtime.ThreadContext.runtime:Lorg/jruby/Ruby;
            aload 0 /* this */
            ldc "each_line"
            aload 2 /* args */
            invokestatic org.jruby.RubyEnumerator.enumeratorize:(Lorg/jruby/Ruby;Lorg/jruby/runtime/builtin/IRubyObject;Ljava/lang/String;[Lorg/jruby/runtime/builtin/IRubyObject;)Lorg/jruby/runtime/builtin/IRubyObject;
      StackMap locals:
      StackMap stack: org.jruby.runtime.builtin.IRubyObject
         3: areturn
        end local 3 // org.jruby.runtime.Block block
        end local 2 // org.jruby.runtime.builtin.IRubyObject[] args
        end local 1 // org.jruby.runtime.ThreadContext context
        end local 0 // org.jruby.ext.stringio.StringIO this
      LocalVariableTable:
        Start  End  Slot     Name  Signature
            0    4     0     this  Lorg/jruby/ext/stringio/StringIO;
            0    4     1  context  Lorg/jruby/runtime/ThreadContext;
            0    4     2     args  [Lorg/jruby/runtime/builtin/IRubyObject;
            0    4     3    block  Lorg/jruby/runtime/Block;
    RuntimeVisibleAnnotations: 
      org.jruby.anno.JRubyMethod(name = {"lines"}, optional = 2)
    MethodParameters:
         Name  Flags
      context  
      args     
      block    

  public org.jruby.runtime.builtin.IRubyObject each_byte(org.jruby.runtime.ThreadContext, org.jruby.runtime.Block);
    descriptor: (Lorg/jruby/runtime/ThreadContext;Lorg/jruby/runtime/Block;)Lorg/jruby/runtime/builtin/IRubyObject;
    flags: (0x0001) ACC_PUBLIC
    Code:
      stack=8, locals=7, args_size=3
        start local 0 // org.jruby.ext.stringio.StringIO this
        start local 1 // org.jruby.runtime.ThreadContext context
        start local 2 // org.jruby.runtime.Block block
         0: .line 420
            aload 2 /* block */
            invokevirtual org.jruby.runtime.Block.isGiven:()Z
            ifne 1
            aload 1 /* context */
            getfield org.jruby.runtime.ThreadContext.runtime:Lorg/jruby/Ruby;
            aload 0 /* this */
            ldc "each_byte"
            invokestatic org.jruby.RubyEnumerator.enumeratorize:(Lorg/jruby/Ruby;Lorg/jruby/runtime/builtin/IRubyObject;Ljava/lang/String;)Lorg/jruby/runtime/builtin/IRubyObject;
            areturn
         1: .line 422
      StackMap locals:
      StackMap stack:
            aload 0 /* this */
            invokevirtual org.jruby.ext.stringio.StringIO.checkReadable:()V
         2: .line 424
            aload 1 /* context */
            getfield org.jruby.runtime.ThreadContext.runtime:Lorg/jruby/Ruby;
            astore 3 /* runtime */
        start local 3 // org.jruby.Ruby runtime
         3: .line 425
            aload 0 /* this */
            getfield org.jruby.ext.stringio.StringIO.ptr:Lorg/jruby/ext/stringio/StringIO$StringIOData;
            astore 4 /* ptr */
        start local 4 // org.jruby.ext.stringio.StringIO$StringIOData ptr
         4: .line 427
            aload 4 /* ptr */
            dup
            astore 5
            monitorenter
         5: .line 428
            aload 4 /* ptr */
            getfield org.jruby.ext.stringio.StringIO$StringIOData.string:Lorg/jruby/RubyString;
            invokevirtual org.jruby.RubyString.getByteList:()Lorg/jruby/util/ByteList;
            astore 6 /* bytes */
        start local 6 // org.jruby.util.ByteList bytes
         6: .line 432
            goto 8
         7: .line 433
      StackMap locals: org.jruby.ext.stringio.StringIO org.jruby.runtime.ThreadContext org.jruby.runtime.Block org.jruby.Ruby org.jruby.ext.stringio.StringIO$StringIOData org.jruby.ext.stringio.StringIO$StringIOData org.jruby.util.ByteList
      StackMap stack:
            aload 2 /* block */
            aload 1 /* context */
            aload 3 /* runtime */
            aload 6 /* bytes */
            aload 4 /* ptr */
            dup
            getfield org.jruby.ext.stringio.StringIO$StringIOData.pos:I
            dup_x1
            iconst_1
            iadd
            putfield org.jruby.ext.stringio.StringIO$StringIOData.pos:I
            invokevirtual org.jruby.util.ByteList.get:(I)I
            sipush 255
            iand
            invokevirtual org.jruby.Ruby.newFixnum:(I)Lorg/jruby/RubyFixnum;
            invokevirtual org.jruby.runtime.Block.yield:(Lorg/jruby/runtime/ThreadContext;Lorg/jruby/runtime/builtin/IRubyObject;)Lorg/jruby/runtime/builtin/IRubyObject;
            pop
         8: .line 432
      StackMap locals:
      StackMap stack:
            aload 4 /* ptr */
            getfield org.jruby.ext.stringio.StringIO$StringIOData.pos:I
            aload 6 /* bytes */
            invokevirtual org.jruby.util.ByteList.length:()I
            if_icmplt 7
        end local 6 // org.jruby.util.ByteList bytes
         9: .line 427
            aload 5
            monitorexit
        10: goto 13
      StackMap locals: org.jruby.ext.stringio.StringIO org.jruby.runtime.ThreadContext org.jruby.runtime.Block org.jruby.Ruby org.jruby.ext.stringio.StringIO$StringIOData org.jruby.ext.stringio.StringIO$StringIOData
      StackMap stack: java.lang.Throwable
        11: aload 5
            monitorexit
        12: athrow
        13: .line 437
      StackMap locals:
      StackMap stack:
            aload 0 /* this */
            areturn
        end local 4 // org.jruby.ext.stringio.StringIO$StringIOData ptr
        end local 3 // org.jruby.Ruby runtime
        end local 2 // org.jruby.runtime.Block block
        end local 1 // org.jruby.runtime.ThreadContext context
        end local 0 // org.jruby.ext.stringio.StringIO this
      LocalVariableTable:
        Start  End  Slot     Name  Signature
            0   14     0     this  Lorg/jruby/ext/stringio/StringIO;
            0   14     1  context  Lorg/jruby/runtime/ThreadContext;
            0   14     2    block  Lorg/jruby/runtime/Block;
            3   14     3  runtime  Lorg/jruby/Ruby;
            4   14     4      ptr  Lorg/jruby/ext/stringio/StringIO$StringIOData;
            6    9     6    bytes  Lorg/jruby/util/ByteList;
      Exception table:
        from    to  target  type
           5    10      11  any
          11    12      11  any
    RuntimeVisibleAnnotations: 
      org.jruby.anno.JRubyMethod(name = {"each_byte", "bytes"})
    MethodParameters:
         Name  Flags
      context  
      block    

  public org.jruby.runtime.builtin.IRubyObject each_char(org.jruby.runtime.ThreadContext, org.jruby.runtime.Block);
    descriptor: (Lorg/jruby/runtime/ThreadContext;Lorg/jruby/runtime/Block;)Lorg/jruby/runtime/builtin/IRubyObject;
    flags: (0x0001) ACC_PUBLIC
    Code:
      stack=3, locals=4, args_size=3
        start local 0 // org.jruby.ext.stringio.StringIO this
        start local 1 // org.jruby.runtime.ThreadContext context
        start local 2 // org.jruby.runtime.Block block
         0: .line 442
            aload 2 /* block */
            invokevirtual org.jruby.runtime.Block.isGiven:()Z
            ifne 2
            aload 1 /* context */
            getfield org.jruby.runtime.ThreadContext.runtime:Lorg/jruby/Ruby;
            aload 0 /* this */
            ldc "each_char"
            invokestatic org.jruby.RubyEnumerator.enumeratorize:(Lorg/jruby/Ruby;Lorg/jruby/runtime/builtin/IRubyObject;Ljava/lang/String;)Lorg/jruby/runtime/builtin/IRubyObject;
            areturn
        start local 3 // org.jruby.runtime.builtin.IRubyObject c
         1: .line 446
      StackMap locals: org.jruby.runtime.builtin.IRubyObject
      StackMap stack:
            aload 2 /* block */
            aload 1 /* context */
            aload 3 /* c */
            invokevirtual org.jruby.runtime.Block.yieldSpecific:(Lorg/jruby/runtime/ThreadContext;Lorg/jruby/runtime/builtin/IRubyObject;)Lorg/jruby/runtime/builtin/IRubyObject;
            pop
        end local 3 // org.jruby.runtime.builtin.IRubyObject c
         2: .line 445
      StackMap locals:
      StackMap stack:
            aload 0 /* this */
            aload 1 /* context */
            invokevirtual org.jruby.ext.stringio.StringIO.getc:(Lorg/jruby/runtime/ThreadContext;)Lorg/jruby/runtime/builtin/IRubyObject;
            dup
            astore 3 /* c */
        start local 3 // org.jruby.runtime.builtin.IRubyObject c
         3: invokeinterface org.jruby.runtime.builtin.IRubyObject.isNil:()Z
            ifeq 1
         4: .line 448
            aload 0 /* this */
            areturn
        end local 3 // org.jruby.runtime.builtin.IRubyObject c
        end local 2 // org.jruby.runtime.Block block
        end local 1 // org.jruby.runtime.ThreadContext context
        end local 0 // org.jruby.ext.stringio.StringIO this
      LocalVariableTable:
        Start  End  Slot     Name  Signature
            0    5     0     this  Lorg/jruby/ext/stringio/StringIO;
            0    5     1  context  Lorg/jruby/runtime/ThreadContext;
            0    5     2    block  Lorg/jruby/runtime/Block;
            1    2     3        c  Lorg/jruby/runtime/builtin/IRubyObject;
            3    5     3        c  Lorg/jruby/runtime/builtin/IRubyObject;
    RuntimeVisibleAnnotations: 
      org.jruby.anno.JRubyMethod()
    MethodParameters:
         Name  Flags
      context  final
      block    final

  public org.jruby.runtime.builtin.IRubyObject chars(org.jruby.runtime.ThreadContext, org.jruby.runtime.Block);
    descriptor: (Lorg/jruby/runtime/ThreadContext;Lorg/jruby/runtime/Block;)Lorg/jruby/runtime/builtin/IRubyObject;
    flags: (0x0001) ACC_PUBLIC
    Code:
      stack=3, locals=3, args_size=3
        start local 0 // org.jruby.ext.stringio.StringIO this
        start local 1 // org.jruby.runtime.ThreadContext context
        start local 2 // org.jruby.runtime.Block block
         0: .line 453
            aload 1 /* context */
            getfield org.jruby.runtime.ThreadContext.runtime:Lorg/jruby/Ruby;
            invokevirtual org.jruby.Ruby.getWarnings:()Lorg/jruby/common/RubyWarnings;
            ldc "StringIO#chars is deprecated; use #each_char instead"
            invokevirtual org.jruby.common.RubyWarnings.warn:(Ljava/lang/String;)V
         1: .line 455
            aload 0 /* this */
            aload 1 /* context */
            aload 2 /* block */
            invokevirtual org.jruby.ext.stringio.StringIO.each_char:(Lorg/jruby/runtime/ThreadContext;Lorg/jruby/runtime/Block;)Lorg/jruby/runtime/builtin/IRubyObject;
            areturn
        end local 2 // org.jruby.runtime.Block block
        end local 1 // org.jruby.runtime.ThreadContext context
        end local 0 // org.jruby.ext.stringio.StringIO this
      LocalVariableTable:
        Start  End  Slot     Name  Signature
            0    2     0     this  Lorg/jruby/ext/stringio/StringIO;
            0    2     1  context  Lorg/jruby/runtime/ThreadContext;
            0    2     2    block  Lorg/jruby/runtime/Block;
    RuntimeVisibleAnnotations: 
      org.jruby.anno.JRubyMethod()
    MethodParameters:
         Name  Flags
      context  final
      block    final

  public org.jruby.runtime.builtin.IRubyObject eof(org.jruby.runtime.ThreadContext);
    descriptor: (Lorg/jruby/runtime/ThreadContext;)Lorg/jruby/runtime/builtin/IRubyObject;
    flags: (0x0001) ACC_PUBLIC
    Code:
      stack=2, locals=3, args_size=2
        start local 0 // org.jruby.ext.stringio.StringIO this
        start local 1 // org.jruby.runtime.ThreadContext context
         0: .line 460
            aload 0 /* this */
            invokevirtual org.jruby.ext.stringio.StringIO.checkReadable:()V
         1: .line 461
            aload 1 /* context */
            getfield org.jruby.runtime.ThreadContext.runtime:Lorg/jruby/Ruby;
            astore 2 /* runtime */
        start local 2 // org.jruby.Ruby runtime
         2: .line 462
            aload 0 /* this */
            getfield org.jruby.ext.stringio.StringIO.ptr:Lorg/jruby/ext/stringio/StringIO$StringIOData;
            getfield org.jruby.ext.stringio.StringIO$StringIOData.pos:I
            aload 0 /* this */
            getfield org.jruby.ext.stringio.StringIO.ptr:Lorg/jruby/ext/stringio/StringIO$StringIOData;
            getfield org.jruby.ext.stringio.StringIO$StringIOData.string:Lorg/jruby/RubyString;
            invokevirtual org.jruby.RubyString.size:()I
            if_icmpge 3
            aload 2 /* runtime */
            invokevirtual org.jruby.Ruby.getFalse:()Lorg/jruby/RubyBoolean;
            areturn
         3: .line 463
      StackMap locals: org.jruby.Ruby
      StackMap stack:
            aload 2 /* runtime */
            invokevirtual org.jruby.Ruby.getTrue:()Lorg/jruby/RubyBoolean;
            areturn
        end local 2 // org.jruby.Ruby runtime
        end local 1 // org.jruby.runtime.ThreadContext context
        end local 0 // org.jruby.ext.stringio.StringIO this
      LocalVariableTable:
        Start  End  Slot     Name  Signature
            0    4     0     this  Lorg/jruby/ext/stringio/StringIO;
            0    4     1  context  Lorg/jruby/runtime/ThreadContext;
            2    4     2  runtime  Lorg/jruby/Ruby;
    RuntimeVisibleAnnotations: 
      org.jruby.anno.JRubyMethod(name = {"eof", "eof?"})
    MethodParameters:
         Name  Flags
      context  

  private boolean isEndOfString();
    descriptor: ()Z
    flags: (0x0002) ACC_PRIVATE
    Code:
      stack=2, locals=1, args_size=1
        start local 0 // org.jruby.ext.stringio.StringIO this
         0: .line 467
            aload 0 /* this */
            getfield org.jruby.ext.stringio.StringIO.ptr:Lorg/jruby/ext/stringio/StringIO$StringIOData;
            getfield org.jruby.ext.stringio.StringIO$StringIOData.pos:I
            aload 0 /* this */
            getfield org.jruby.ext.stringio.StringIO.ptr:Lorg/jruby/ext/stringio/StringIO$StringIOData;
            getfield org.jruby.ext.stringio.StringIO$StringIOData.string:Lorg/jruby/RubyString;
            invokevirtual org.jruby.RubyString.size:()I
            if_icmplt 1
            iconst_1
            ireturn
      StackMap locals:
      StackMap stack:
         1: iconst_0
            ireturn
        end local 0 // org.jruby.ext.stringio.StringIO this
      LocalVariableTable:
        Start  End  Slot  Name  Signature
            0    2     0  this  Lorg/jruby/ext/stringio/StringIO;

  public org.jruby.runtime.builtin.IRubyObject getc(org.jruby.runtime.ThreadContext);
    descriptor: (Lorg/jruby/runtime/ThreadContext;)Lorg/jruby/runtime/builtin/IRubyObject;
    flags: (0x0001) ACC_PUBLIC
    Code:
      stack=4, locals=6, args_size=2
        start local 0 // org.jruby.ext.stringio.StringIO this
        start local 1 // org.jruby.runtime.ThreadContext context
         0: .line 472
            aload 0 /* this */
            invokevirtual org.jruby.ext.stringio.StringIO.checkReadable:()V
         1: .line 474
            aload 0 /* this */
            invokevirtual org.jruby.ext.stringio.StringIO.isEndOfString:()Z
            ifeq 2
            aload 1 /* context */
            getfield org.jruby.runtime.ThreadContext.nil:Lorg/jruby/runtime/builtin/IRubyObject;
            areturn
         2: .line 476
      StackMap locals:
      StackMap stack:
            aload 0 /* this */
            getfield org.jruby.ext.stringio.StringIO.ptr:Lorg/jruby/ext/stringio/StringIO$StringIOData;
            astore 2 /* ptr */
        start local 2 // org.jruby.ext.stringio.StringIO$StringIOData ptr
         3: .line 478
            aload 2 /* ptr */
            dup
            astore 3
            monitorenter
         4: .line 479
            aload 2 /* ptr */
            getfield org.jruby.ext.stringio.StringIO$StringIOData.pos:I
            istore 4 /* start */
        start local 4 // int start
         5: .line 480
            iconst_1
            aload 2 /* ptr */
            getfield org.jruby.ext.stringio.StringIO$StringIOData.string:Lorg/jruby/RubyString;
            invokevirtual org.jruby.RubyString.getByteList:()Lorg/jruby/util/ByteList;
            iload 4 /* start */
            iconst_1
            iadd
            invokestatic org.jruby.util.StringSupport.bytesToFixBrokenTrailingCharacter:(Lorg/jruby/util/ByteList;I)I
            iadd
            istore 5 /* total */
        start local 5 // int total
         6: .line 482
            aload 2 /* ptr */
            dup
            getfield org.jruby.ext.stringio.StringIO$StringIOData.pos:I
            iload 5 /* total */
            iadd
            putfield org.jruby.ext.stringio.StringIO$StringIOData.pos:I
         7: .line 484
            aload 1 /* context */
            getfield org.jruby.runtime.ThreadContext.runtime:Lorg/jruby/Ruby;
            aload 2 /* ptr */
            getfield org.jruby.ext.stringio.StringIO$StringIOData.string:Lorg/jruby/RubyString;
            invokevirtual org.jruby.RubyString.getByteList:()Lorg/jruby/util/ByteList;
            iload 4 /* start */
            iload 5 /* total */
            invokevirtual org.jruby.util.ByteList.makeShared:(II)Lorg/jruby/util/ByteList;
            invokevirtual org.jruby.Ruby.newString:(Lorg/jruby/util/ByteList;)Lorg/jruby/RubyString;
            aload 3
            monitorexit
         8: areturn
        end local 5 // int total
        end local 4 // int start
         9: .line 478
      StackMap locals: org.jruby.ext.stringio.StringIO org.jruby.runtime.ThreadContext org.jruby.ext.stringio.StringIO$StringIOData org.jruby.ext.stringio.StringIO$StringIOData
      StackMap stack: java.lang.Throwable
            aload 3
            monitorexit
        10: athrow
        end local 2 // org.jruby.ext.stringio.StringIO$StringIOData ptr
        end local 1 // org.jruby.runtime.ThreadContext context
        end local 0 // org.jruby.ext.stringio.StringIO this
      LocalVariableTable:
        Start  End  Slot     Name  Signature
            0   11     0     this  Lorg/jruby/ext/stringio/StringIO;
            0   11     1  context  Lorg/jruby/runtime/ThreadContext;
            3   11     2      ptr  Lorg/jruby/ext/stringio/StringIO$StringIOData;
            5    9     4    start  I
            6    9     5    total  I
      Exception table:
        from    to  target  type
           4     8       9  any
           9    10       9  any
    RuntimeVisibleAnnotations: 
      org.jruby.anno.JRubyMethod(name = {"getc"})
    MethodParameters:
         Name  Flags
      context  

  public org.jruby.runtime.builtin.IRubyObject getbyte(org.jruby.runtime.ThreadContext);
    descriptor: (Lorg/jruby/runtime/ThreadContext;)Lorg/jruby/runtime/builtin/IRubyObject;
    flags: (0x0001) ACC_PUBLIC
    Code:
      stack=5, locals=5, args_size=2
        start local 0 // org.jruby.ext.stringio.StringIO this
        start local 1 // org.jruby.runtime.ThreadContext context
         0: .line 490
            aload 0 /* this */
            invokevirtual org.jruby.ext.stringio.StringIO.checkReadable:()V
         1: .line 492
            aload 0 /* this */
            invokevirtual org.jruby.ext.stringio.StringIO.isEndOfString:()Z
            ifeq 2
            aload 1 /* context */
            getfield org.jruby.runtime.ThreadContext.nil:Lorg/jruby/runtime/builtin/IRubyObject;
            areturn
         2: .line 495
      StackMap locals:
      StackMap stack:
            aload 0 /* this */
            getfield org.jruby.ext.stringio.StringIO.ptr:Lorg/jruby/ext/stringio/StringIO$StringIOData;
            astore 3 /* ptr */
        start local 3 // org.jruby.ext.stringio.StringIO$StringIOData ptr
         3: .line 496
            aload 3 /* ptr */
            dup
            astore 4
            monitorenter
         4: .line 497
            aload 3 /* ptr */
            getfield org.jruby.ext.stringio.StringIO$StringIOData.string:Lorg/jruby/RubyString;
            invokevirtual org.jruby.RubyString.getByteList:()Lorg/jruby/util/ByteList;
            aload 0 /* this */
            getfield org.jruby.ext.stringio.StringIO.ptr:Lorg/jruby/ext/stringio/StringIO$StringIOData;
            dup
            getfield org.jruby.ext.stringio.StringIO$StringIOData.pos:I
            dup_x1
            iconst_1
            iadd
            putfield org.jruby.ext.stringio.StringIO$StringIOData.pos:I
            invokevirtual org.jruby.util.ByteList.get:(I)I
            sipush 255
            iand
            istore 2 /* c */
        start local 2 // int c
         5: .line 496
            aload 4
            monitorexit
         6: goto 9
        end local 2 // int c
      StackMap locals: org.jruby.ext.stringio.StringIO org.jruby.runtime.ThreadContext top org.jruby.ext.stringio.StringIO$StringIOData org.jruby.ext.stringio.StringIO$StringIOData
      StackMap stack: java.lang.Throwable
         7: aload 4
            monitorexit
         8: athrow
        start local 2 // int c
         9: .line 500
      StackMap locals: org.jruby.ext.stringio.StringIO org.jruby.runtime.ThreadContext int org.jruby.ext.stringio.StringIO$StringIOData
      StackMap stack:
            aload 1 /* context */
            getfield org.jruby.runtime.ThreadContext.runtime:Lorg/jruby/Ruby;
            iload 2 /* c */
            invokevirtual org.jruby.Ruby.newFixnum:(I)Lorg/jruby/RubyFixnum;
            areturn
        end local 3 // org.jruby.ext.stringio.StringIO$StringIOData ptr
        end local 2 // int c
        end local 1 // org.jruby.runtime.ThreadContext context
        end local 0 // org.jruby.ext.stringio.StringIO this
      LocalVariableTable:
        Start  End  Slot     Name  Signature
            0   10     0     this  Lorg/jruby/ext/stringio/StringIO;
            0   10     1  context  Lorg/jruby/runtime/ThreadContext;
            5    7     2        c  I
            9   10     2        c  I
            3   10     3      ptr  Lorg/jruby/ext/stringio/StringIO$StringIOData;
      Exception table:
        from    to  target  type
           4     6       7  any
           7     8       7  any
    RuntimeVisibleAnnotations: 
      org.jruby.anno.JRubyMethod(name = {"getbyte"})
    MethodParameters:
         Name  Flags
      context  

  private org.jruby.RubyString strioSubstr(org.jruby.Ruby, int, int, org.jcodings.Encoding);
    descriptor: (Lorg/jruby/Ruby;IILorg/jcodings/Encoding;)Lorg/jruby/RubyString;
    flags: (0x0002) ACC_PRIVATE
    Code:
      stack=5, locals=10, args_size=5
        start local 0 // org.jruby.ext.stringio.StringIO this
        start local 1 // org.jruby.Ruby runtime
        start local 2 // int pos
        start local 3 // int len
        start local 4 // org.jcodings.Encoding enc
         0: .line 504
            aload 0 /* this */
            getfield org.jruby.ext.stringio.StringIO.ptr:Lorg/jruby/ext/stringio/StringIO$StringIOData;
            astore 5 /* ptr */
        start local 5 // org.jruby.ext.stringio.StringIO$StringIOData ptr
         1: .line 506
            aload 5 /* ptr */
            dup
            astore 6
            monitorenter
         2: .line 507
            aload 5 /* ptr */
            getfield org.jruby.ext.stringio.StringIO$StringIOData.string:Lorg/jruby/RubyString;
            astore 7 /* string */
        start local 7 // org.jruby.RubyString string
         3: .line 508
            aload 7 /* string */
            invokevirtual org.jruby.RubyString.getByteList:()Lorg/jruby/util/ByteList;
            astore 8 /* stringBytes */
        start local 8 // org.jruby.util.ByteList stringBytes
         4: .line 509
            aload 7 /* string */
            invokevirtual org.jruby.RubyString.size:()I
            iload 2 /* pos */
            isub
            istore 9 /* rlen */
        start local 9 // int rlen
         5: .line 511
            iload 3 /* len */
            iload 9 /* rlen */
            if_icmple 6
            iload 9 /* rlen */
            istore 3 /* len */
         6: .line 512
      StackMap locals: org.jruby.ext.stringio.StringIO org.jruby.Ruby int int org.jcodings.Encoding org.jruby.ext.stringio.StringIO$StringIOData org.jruby.ext.stringio.StringIO$StringIOData org.jruby.RubyString org.jruby.util.ByteList int
      StackMap stack:
            iload 3 /* len */
            ifge 7
            iconst_0
            istore 3 /* len */
         7: .line 514
      StackMap locals:
      StackMap stack:
            iload 3 /* len */
            ifne 9
            aload 1 /* runtime */
            aload 4 /* enc */
            invokestatic org.jruby.RubyString.newEmptyString:(Lorg/jruby/Ruby;Lorg/jcodings/Encoding;)Lorg/jruby/RubyString;
            aload 6
            monitorexit
         8: areturn
         9: .line 515
      StackMap locals:
      StackMap stack:
            aload 7 /* string */
            invokevirtual org.jruby.RubyString.setByteListShared:()V
        10: .line 516
            aload 1 /* runtime */
            aload 8 /* stringBytes */
            invokevirtual org.jruby.util.ByteList.getUnsafeBytes:()[B
            aload 8 /* stringBytes */
            invokevirtual org.jruby.util.ByteList.getBegin:()I
            iload 2 /* pos */
            iadd
            iload 3 /* len */
            aload 4 /* enc */
            invokestatic org.jruby.RubyString.newStringShared:(Lorg/jruby/Ruby;[BIILorg/jcodings/Encoding;)Lorg/jruby/RubyString;
            aload 6
            monitorexit
        11: areturn
        end local 9 // int rlen
        end local 8 // org.jruby.util.ByteList stringBytes
        end local 7 // org.jruby.RubyString string
        12: .line 506
      StackMap locals: org.jruby.ext.stringio.StringIO org.jruby.Ruby int int org.jcodings.Encoding org.jruby.ext.stringio.StringIO$StringIOData org.jruby.ext.stringio.StringIO$StringIOData
      StackMap stack: java.lang.Throwable
            aload 6
            monitorexit
        13: athrow
        end local 5 // org.jruby.ext.stringio.StringIO$StringIOData ptr
        end local 4 // org.jcodings.Encoding enc
        end local 3 // int len
        end local 2 // int pos
        end local 1 // org.jruby.Ruby runtime
        end local 0 // org.jruby.ext.stringio.StringIO this
      LocalVariableTable:
        Start  End  Slot         Name  Signature
            0   14     0         this  Lorg/jruby/ext/stringio/StringIO;
            0   14     1      runtime  Lorg/jruby/Ruby;
            0   14     2          pos  I
            0   14     3          len  I
            0   14     4          enc  Lorg/jcodings/Encoding;
            1   14     5          ptr  Lorg/jruby/ext/stringio/StringIO$StringIOData;
            3   12     7       string  Lorg/jruby/RubyString;
            4   12     8  stringBytes  Lorg/jruby/util/ByteList;
            5   12     9         rlen  I
      Exception table:
        from    to  target  type
           2     8      12  any
           9    11      12  any
          12    13      12  any
    MethodParameters:
         Name  Flags
      runtime  
      pos      
      len      
      enc      

  private static void bm_init_skip(int[], byte[], int, int);
    descriptor: ([I[BII)V
    flags: (0x000a) ACC_PRIVATE, ACC_STATIC
    Code:
      stack=3, locals=5, args_size=4
        start local 0 // int[] skip
        start local 1 // byte[] pat
        start local 2 // int patPtr
        start local 3 // int m
         0: .line 525
            iconst_0
            istore 4 /* c */
        start local 4 // int c
         1: goto 4
         2: .line 526
      StackMap locals: int
      StackMap stack:
            aload 0 /* skip */
            iload 4 /* c */
            iload 3 /* m */
            iastore
         3: .line 525
            iinc 4 /* c */ 1
      StackMap locals:
      StackMap stack:
         4: iload 4 /* c */
            sipush 256
            if_icmplt 2
         5: .line 528
            goto 7
         6: .line 529
      StackMap locals:
      StackMap stack:
            aload 0 /* skip */
            aload 1 /* pat */
            iload 2 /* patPtr */
            iinc 2 /* patPtr */ 1
            baload
            iload 3 /* m */
            iastore
         7: .line 528
      StackMap locals:
      StackMap stack:
            iinc 3 /* m */ -1
            iload 3 /* m */
            ifgt 6
         8: .line 531
            return
        end local 4 // int c
        end local 3 // int m
        end local 2 // int patPtr
        end local 1 // byte[] pat
        end local 0 // int[] skip
      LocalVariableTable:
        Start  End  Slot    Name  Signature
            0    9     0    skip  [I
            0    9     1     pat  [B
            0    9     2  patPtr  I
            0    9     3       m  I
            1    9     4       c  I
    MethodParameters:
        Name  Flags
      skip    
      pat     
      patPtr  
      m       

  private static int bm_search(byte[], int, int, byte[], int, int, int[]);
    descriptor: ([BII[BII[I)I
    flags: (0x000a) ACC_PRIVATE, ACC_STATIC
    Code:
      stack=5, locals=10, args_size=7
        start local 0 // byte[] little
        start local 1 // int lstart
        start local 2 // int llen
        start local 3 // byte[] big
        start local 4 // int bstart
        start local 5 // int blen
        start local 6 // int[] skip
         0: .line 537
            iload 2 /* llen */
            iconst_1
            isub
            istore 7 /* i */
        start local 7 // int i
         1: .line 538
            goto 10
         2: .line 539
      StackMap locals: int
      StackMap stack:
            iload 7 /* i */
            istore 9 /* k */
        start local 9 // int k
         3: .line 540
            iload 2 /* llen */
            iconst_1
            isub
            istore 8 /* j */
        start local 8 // int j
         4: .line 541
            goto 7
         5: .line 542
      StackMap locals: int int
      StackMap stack:
            iinc 9 /* k */ -1
         6: .line 543
            iinc 8 /* j */ -1
         7: .line 541
      StackMap locals:
      StackMap stack:
            iload 8 /* j */
            iflt 8
            aload 3 /* big */
            iload 9 /* k */
            iload 4 /* bstart */
            iadd
            baload
            aload 0 /* little */
            iload 8 /* j */
            iload 1 /* lstart */
            iadd
            baload
            if_icmpeq 5
         8: .line 545
      StackMap locals:
      StackMap stack:
            iload 8 /* j */
            ifge 9
            iload 9 /* k */
            iconst_1
            iadd
            ireturn
         9: .line 546
      StackMap locals:
      StackMap stack:
            iload 7 /* i */
            aload 6 /* skip */
            aload 3 /* big */
            iload 7 /* i */
            iload 4 /* bstart */
            iadd
            baload
            sipush 255
            iand
            iaload
            iadd
            istore 7 /* i */
        end local 9 // int k
        end local 8 // int j
        10: .line 538
      StackMap locals:
      StackMap stack:
            iload 7 /* i */
            iload 5 /* blen */
            if_icmplt 2
        11: .line 548
            iconst_m1
            ireturn
        end local 7 // int i
        end local 6 // int[] skip
        end local 5 // int blen
        end local 4 // int bstart
        end local 3 // byte[] big
        end local 2 // int llen
        end local 1 // int lstart
        end local 0 // byte[] little
      LocalVariableTable:
        Start  End  Slot    Name  Signature
            0   12     0  little  [B
            0   12     1  lstart  I
            0   12     2    llen  I
            0   12     3     big  [B
            0   12     4  bstart  I
            0   12     5    blen  I
            0   12     6    skip  [I
            1   12     7       i  I
            4   10     8       j  I
            3   10     9       k  I
    MethodParameters:
        Name  Flags
      little  
      lstart  
      llen    
      big     
      bstart  
      blen    
      skip    

  public org.jruby.runtime.builtin.IRubyObject gets(org.jruby.runtime.ThreadContext);
    descriptor: (Lorg/jruby/runtime/ThreadContext;)Lorg/jruby/runtime/builtin/IRubyObject;
    flags: (0x0001) ACC_PUBLIC
    Code:
      stack=4, locals=2, args_size=2
        start local 0 // org.jruby.ext.stringio.StringIO this
        start local 1 // org.jruby.runtime.ThreadContext context
         0: .line 553
            aload 1 /* context */
            getstatic org.jruby.ext.stringio.StringIO.GETLINE:Lorg/jruby/util/io/Getline$Callback;
            aload 0 /* this */
            aload 0 /* this */
            invokevirtual org.jruby.ext.stringio.StringIO.getEncoding:()Lorg/jcodings/Encoding;
            invokestatic org.jruby.util.io.Getline.getlineCall:(Lorg/jruby/runtime/ThreadContext;Lorg/jruby/util/io/Getline$Callback;Ljava/lang/Object;Lorg/jcodings/Encoding;)Lorg/jruby/runtime/builtin/IRubyObject;
            areturn
        end local 1 // org.jruby.runtime.ThreadContext context
        end local 0 // org.jruby.ext.stringio.StringIO this
      LocalVariableTable:
        Start  End  Slot     Name  Signature
            0    1     0     this  Lorg/jruby/ext/stringio/StringIO;
            0    1     1  context  Lorg/jruby/runtime/ThreadContext;
    RuntimeVisibleAnnotations: 
      org.jruby.anno.JRubyMethod(name = {"gets"}, writes = {org.jruby.anno.FrameField.LASTLINE:Lorg/jruby/anno/FrameField;})
    MethodParameters:
         Name  Flags
      context  

  public org.jruby.runtime.builtin.IRubyObject gets(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=3, args_size=3
        start local 0 // org.jruby.ext.stringio.StringIO this
        start local 1 // org.jruby.runtime.ThreadContext context
        start local 2 // org.jruby.runtime.builtin.IRubyObject arg0
         0: .line 558
            aload 1 /* context */
            getstatic org.jruby.ext.stringio.StringIO.GETLINE:Lorg/jruby/util/io/Getline$Callback;
            aload 0 /* this */
            aload 0 /* this */
            invokevirtual org.jruby.ext.stringio.StringIO.getEncoding:()Lorg/jcodings/Encoding;
            aload 2 /* arg0 */
            invokestatic org.jruby.util.io.Getline.getlineCall:(Lorg/jruby/runtime/ThreadContext;Lorg/jruby/util/io/Getline$Callback;Ljava/lang/Object;Lorg/jcodings/Encoding;Lorg/jruby/runtime/builtin/IRubyObject;)Lorg/jruby/runtime/builtin/IRubyObject;
            areturn
        end local 2 // org.jruby.runtime.builtin.IRubyObject arg0
        end local 1 // org.jruby.runtime.ThreadContext context
        end local 0 // org.jruby.ext.stringio.StringIO this
      LocalVariableTable:
        Start  End  Slot     Name  Signature
            0    1     0     this  Lorg/jruby/ext/stringio/StringIO;
            0    1     1  context  Lorg/jruby/runtime/ThreadContext;
            0    1     2     arg0  Lorg/jruby/runtime/builtin/IRubyObject;
    RuntimeVisibleAnnotations: 
      org.jruby.anno.JRubyMethod(name = {"gets"}, writes = {org.jruby.anno.FrameField.LASTLINE:Lorg/jruby/anno/FrameField;})
    MethodParameters:
         Name  Flags
      context  
      arg0     

  public org.jruby.runtime.builtin.IRubyObject gets(org.jruby.runtime.ThreadContext, org.jruby.runtime.builtin.IRubyObject, org.jruby.runtime.builtin.IRubyObject);
    descriptor: (Lorg/jruby/runtime/ThreadContext;Lorg/jruby/runtime/builtin/IRubyObject;Lorg/jruby/runtime/builtin/IRubyObject;)Lorg/jruby/runtime/builtin/IRubyObject;
    flags: (0x0001) ACC_PUBLIC
    Code:
      stack=6, locals=4, args_size=4
        start local 0 // org.jruby.ext.stringio.StringIO this
        start local 1 // org.jruby.runtime.ThreadContext context
        start local 2 // org.jruby.runtime.builtin.IRubyObject arg0
        start local 3 // org.jruby.runtime.builtin.IRubyObject arg1
         0: .line 563
            aload 1 /* context */
            getstatic org.jruby.ext.stringio.StringIO.GETLINE:Lorg/jruby/util/io/Getline$Callback;
            aload 0 /* this */
            aload 0 /* this */
            invokevirtual org.jruby.ext.stringio.StringIO.getEncoding:()Lorg/jcodings/Encoding;
            aload 2 /* arg0 */
            aload 3 /* arg1 */
            invokestatic org.jruby.util.io.Getline.getlineCall:(Lorg/jruby/runtime/ThreadContext;Lorg/jruby/util/io/Getline$Callback;Ljava/lang/Object;Lorg/jcodings/Encoding;Lorg/jruby/runtime/builtin/IRubyObject;Lorg/jruby/runtime/builtin/IRubyObject;)Lorg/jruby/runtime/builtin/IRubyObject;
            areturn
        end local 3 // org.jruby.runtime.builtin.IRubyObject arg1
        end local 2 // org.jruby.runtime.builtin.IRubyObject arg0
        end local 1 // org.jruby.runtime.ThreadContext context
        end local 0 // org.jruby.ext.stringio.StringIO this
      LocalVariableTable:
        Start  End  Slot     Name  Signature
            0    1     0     this  Lorg/jruby/ext/stringio/StringIO;
            0    1     1  context  Lorg/jruby/runtime/ThreadContext;
            0    1     2     arg0  Lorg/jruby/runtime/builtin/IRubyObject;
            0    1     3     arg1  Lorg/jruby/runtime/builtin/IRubyObject;
    RuntimeVisibleAnnotations: 
      org.jruby.anno.JRubyMethod(name = {"gets"}, writes = {org.jruby.anno.FrameField.LASTLINE:Lorg/jruby/anno/FrameField;})
    MethodParameters:
         Name  Flags
      context  
      arg0     
      arg1     

  public org.jruby.runtime.builtin.IRubyObject gets(org.jruby.runtime.ThreadContext, org.jruby.runtime.builtin.IRubyObject, org.jruby.runtime.builtin.IRubyObject, org.jruby.runtime.builtin.IRubyObject);
    descriptor: (Lorg/jruby/runtime/ThreadContext;Lorg/jruby/runtime/builtin/IRubyObject;Lorg/jruby/runtime/builtin/IRubyObject;Lorg/jruby/runtime/builtin/IRubyObject;)Lorg/jruby/runtime/builtin/IRubyObject;
    flags: (0x0001) ACC_PUBLIC
    Code:
      stack=7, locals=5, args_size=5
        start local 0 // org.jruby.ext.stringio.StringIO this
        start local 1 // org.jruby.runtime.ThreadContext context
        start local 2 // org.jruby.runtime.builtin.IRubyObject arg0
        start local 3 // org.jruby.runtime.builtin.IRubyObject arg1
        start local 4 // org.jruby.runtime.builtin.IRubyObject arg2
         0: .line 568
            aload 1 /* context */
            getstatic org.jruby.ext.stringio.StringIO.GETLINE:Lorg/jruby/util/io/Getline$Callback;
            aload 0 /* this */
            aload 0 /* this */
            invokevirtual org.jruby.ext.stringio.StringIO.getEncoding:()Lorg/jcodings/Encoding;
            aload 2 /* arg0 */
            aload 3 /* arg1 */
            aload 4 /* arg2 */
            invokestatic org.jruby.util.io.Getline.getlineCall:(Lorg/jruby/runtime/ThreadContext;Lorg/jruby/util/io/Getline$Callback;Ljava/lang/Object;Lorg/jcodings/Encoding;Lorg/jruby/runtime/builtin/IRubyObject;Lorg/jruby/runtime/builtin/IRubyObject;Lorg/jruby/runtime/builtin/IRubyObject;)Lorg/jruby/runtime/builtin/IRubyObject;
            areturn
        end local 4 // org.jruby.runtime.builtin.IRubyObject arg2
        end local 3 // org.jruby.runtime.builtin.IRubyObject arg1
        end local 2 // org.jruby.runtime.builtin.IRubyObject arg0
        end local 1 // org.jruby.runtime.ThreadContext context
        end local 0 // org.jruby.ext.stringio.StringIO this
      LocalVariableTable:
        Start  End  Slot     Name  Signature
            0    1     0     this  Lorg/jruby/ext/stringio/StringIO;
            0    1     1  context  Lorg/jruby/runtime/ThreadContext;
            0    1     2     arg0  Lorg/jruby/runtime/builtin/IRubyObject;
            0    1     3     arg1  Lorg/jruby/runtime/builtin/IRubyObject;
            0    1     4     arg2  Lorg/jruby/runtime/builtin/IRubyObject;
    RuntimeVisibleAnnotations: 
      org.jruby.anno.JRubyMethod(name = {"gets"}, writes = {org.jruby.anno.FrameField.LASTLINE:Lorg/jruby/anno/FrameField;})
    MethodParameters:
         Name  Flags
      context  
      arg0     
      arg1     
      arg2     

  public org.jruby.runtime.builtin.IRubyObject gets(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=6, locals=3, args_size=3
        start local 0 // org.jruby.ext.stringio.StringIO this
        start local 1 // org.jruby.runtime.ThreadContext context
        start local 2 // org.jruby.runtime.builtin.IRubyObject[] args
         0: .line 572
            aload 2 /* args */
            arraylength
            tableswitch { // 0 - 3
                    0: 1
                    1: 2
                    2: 3
                    3: 4
              default: 5
          }
         1: .line 574
      StackMap locals:
      StackMap stack:
            aload 0 /* this */
            aload 1 /* context */
            invokevirtual org.jruby.ext.stringio.StringIO.gets:(Lorg/jruby/runtime/ThreadContext;)Lorg/jruby/runtime/builtin/IRubyObject;
            areturn
         2: .line 576
      StackMap locals:
      StackMap stack:
            aload 0 /* this */
            aload 1 /* context */
            aload 2 /* args */
            iconst_0
            aaload
            invokevirtual org.jruby.ext.stringio.StringIO.gets:(Lorg/jruby/runtime/ThreadContext;Lorg/jruby/runtime/builtin/IRubyObject;)Lorg/jruby/runtime/builtin/IRubyObject;
            areturn
         3: .line 578
      StackMap locals:
      StackMap stack:
            aload 0 /* this */
            aload 1 /* context */
            aload 2 /* args */
            iconst_0
            aaload
            aload 2 /* args */
            iconst_1
            aaload
            invokevirtual org.jruby.ext.stringio.StringIO.gets:(Lorg/jruby/runtime/ThreadContext;Lorg/jruby/runtime/builtin/IRubyObject;Lorg/jruby/runtime/builtin/IRubyObject;)Lorg/jruby/runtime/builtin/IRubyObject;
            areturn
         4: .line 580
      StackMap locals:
      StackMap stack:
            aload 0 /* this */
            aload 1 /* context */
            aload 2 /* args */
            iconst_0
            aaload
            aload 2 /* args */
            iconst_1
            aaload
            aload 2 /* args */
            iconst_2
            aaload
            invokevirtual org.jruby.ext.stringio.StringIO.gets:(Lorg/jruby/runtime/ThreadContext;Lorg/jruby/runtime/builtin/IRubyObject;Lorg/jruby/runtime/builtin/IRubyObject;Lorg/jruby/runtime/builtin/IRubyObject;)Lorg/jruby/runtime/builtin/IRubyObject;
            areturn
         5: .line 582
      StackMap locals:
      StackMap stack:
            aload 1 /* context */
            aload 2 /* args */
            arraylength
            iconst_0
            iconst_3
            invokestatic org.jruby.runtime.Arity.raiseArgumentError:(Lorg/jruby/runtime/ThreadContext;III)V
         6: .line 583
            new java.lang.AssertionError
            dup
            ldc "BUG"
            invokespecial java.lang.AssertionError.<init>:(Ljava/lang/Object;)V
            athrow
        end local 2 // org.jruby.runtime.builtin.IRubyObject[] args
        end local 1 // org.jruby.runtime.ThreadContext context
        end local 0 // org.jruby.ext.stringio.StringIO this
      LocalVariableTable:
        Start  End  Slot     Name  Signature
            0    7     0     this  Lorg/jruby/ext/stringio/StringIO;
            0    7     1  context  Lorg/jruby/runtime/ThreadContext;
            0    7     2     args  [Lorg/jruby/runtime/builtin/IRubyObject;
    MethodParameters:
         Name  Flags
      context  
      args     

  private org.jruby.runtime.builtin.IRubyObject getline(org.jruby.runtime.ThreadContext, org.jruby.runtime.builtin.IRubyObject, int, boolean);
    descriptor: (Lorg/jruby/runtime/ThreadContext;Lorg/jruby/runtime/builtin/IRubyObject;IZ)Lorg/jruby/runtime/builtin/IRubyObject;
    flags: (0x0002) ACC_PRIVATE
    Code:
      stack=7, locals=23, args_size=5
        start local 0 // org.jruby.ext.stringio.StringIO this
        start local 1 // org.jruby.runtime.ThreadContext context
        start local 2 // org.jruby.runtime.builtin.IRubyObject rs
        start local 3 // int limit
        start local 4 // boolean chomp
         0: .line 639
            aload 1 /* context */
            getfield org.jruby.runtime.ThreadContext.runtime:Lorg/jruby/Ruby;
            astore 5 /* runtime */
        start local 5 // org.jruby.Ruby runtime
         1: .line 643
            aload 0 /* this */
            invokevirtual org.jruby.ext.stringio.StringIO.checkReadable:()V
         2: .line 647
            aload 0 /* this */
            invokevirtual org.jruby.ext.stringio.StringIO.isEndOfString:()Z
            ifeq 4
         3: .line 648
            aload 1 /* context */
            getfield org.jruby.runtime.ThreadContext.nil:Lorg/jruby/runtime/builtin/IRubyObject;
            areturn
         4: .line 651
      StackMap locals: org.jruby.Ruby
      StackMap stack:
            aload 0 /* this */
            getfield org.jruby.ext.stringio.StringIO.ptr:Lorg/jruby/ext/stringio/StringIO$StringIOData;
            astore 8 /* ptr */
        start local 8 // org.jruby.ext.stringio.StringIO$StringIOData ptr
         5: .line 652
            aload 0 /* this */
            invokevirtual org.jruby.ext.stringio.StringIO.getEncoding:()Lorg/jcodings/Encoding;
            astore 9 /* enc */
        start local 9 // org.jcodings.Encoding enc
         6: .line 654
            aload 8 /* ptr */
            dup
            astore 10
            monitorenter
         7: .line 655
            aload 8 /* ptr */
            getfield org.jruby.ext.stringio.StringIO$StringIOData.string:Lorg/jruby/RubyString;
            invokevirtual org.jruby.RubyString.getByteList:()Lorg/jruby/util/ByteList;
            astore 11 /* string */
        start local 11 // org.jruby.util.ByteList string
         8: .line 656
            aload 11 /* string */
            invokevirtual org.jruby.util.ByteList.getUnsafeBytes:()[B
            astore 12 /* stringBytes */
        start local 12 // byte[] stringBytes
         9: .line 657
            aload 11 /* string */
            invokevirtual org.jruby.util.ByteList.getBegin:()I
            istore 13 /* begin */
        start local 13 // int begin
        10: .line 658
            iload 13 /* begin */
            aload 8 /* ptr */
            getfield org.jruby.ext.stringio.StringIO$StringIOData.pos:I
            iadd
            istore 14 /* s */
        start local 14 // int s
        11: .line 659
            iload 13 /* begin */
            aload 11 /* string */
            invokevirtual org.jruby.util.ByteList.getRealSize:()I
            iadd
            istore 15 /* e */
        start local 15 // int e
        12: .line 661
            iconst_0
            istore 17 /* w */
        start local 17 // int w
        13: .line 663
            iload 3 /* limit */
            ifle 15
            iload 14 /* s */
            iload 3 /* limit */
            iadd
            iload 15 /* e */
            if_icmpge 15
        14: .line 664
            aload 0 /* this */
            invokevirtual org.jruby.ext.stringio.StringIO.getEncoding:()Lorg/jcodings/Encoding;
            aload 12 /* stringBytes */
            iload 14 /* s */
            iload 14 /* s */
            iload 3 /* limit */
            iadd
            iload 15 /* e */
            invokevirtual org.jcodings.Encoding.rightAdjustCharHead:([BIII)I
            istore 15 /* e */
        15: .line 666
      StackMap locals: org.jruby.ext.stringio.StringIO org.jruby.runtime.ThreadContext org.jruby.runtime.builtin.IRubyObject int int org.jruby.Ruby top top org.jruby.ext.stringio.StringIO$StringIOData org.jcodings.Encoding org.jruby.ext.stringio.StringIO$StringIOData org.jruby.util.ByteList byte[] int int int top int
      StackMap stack:
            aload 2 /* rs */
            aload 1 /* context */
            getfield org.jruby.runtime.ThreadContext.nil:Lorg/jruby/runtime/builtin/IRubyObject;
            if_acmpne 20
        16: .line 667
            iload 4 /* chomp */
            ifeq 18
        17: .line 668
            aload 12 /* stringBytes */
            iload 14 /* s */
            iload 15 /* e */
            invokestatic org.jruby.ext.stringio.StringIO.chompNewlineWidth:([BII)I
            istore 17 /* w */
        18: .line 670
      StackMap locals:
      StackMap stack:
            aload 0 /* this */
            aload 5 /* runtime */
            aload 8 /* ptr */
            getfield org.jruby.ext.stringio.StringIO$StringIOData.pos:I
            iload 15 /* e */
            iload 14 /* s */
            isub
            iload 17 /* w */
            isub
            aload 9 /* enc */
            invokevirtual org.jruby.ext.stringio.StringIO.strioSubstr:(Lorg/jruby/Ruby;IILorg/jcodings/Encoding;)Lorg/jruby/RubyString;
            astore 6 /* str */
        start local 6 // org.jruby.RubyString str
        19: .line 671
            goto 73
        end local 6 // org.jruby.RubyString str
      StackMap locals:
      StackMap stack:
        20: aload 2 /* rs */
            checkcast org.jruby.RubyString
            invokevirtual org.jruby.RubyString.size:()I
            dup
            istore 7 /* n */
        start local 7 // int n
        21: ifne 49
        22: .line 678
            iload 14 /* s */
            istore 16 /* p */
        start local 16 // int p
        23: .line 679
            goto 27
        24: .line 680
      StackMap locals: org.jruby.ext.stringio.StringIO org.jruby.runtime.ThreadContext org.jruby.runtime.builtin.IRubyObject int int org.jruby.Ruby top int org.jruby.ext.stringio.StringIO$StringIOData org.jcodings.Encoding org.jruby.ext.stringio.StringIO$StringIOData org.jruby.util.ByteList byte[] int int int int int
      StackMap stack:
            iinc 16 /* p */ 1
            iload 16 /* p */
            iload 15 /* e */
            if_icmpne 27
        25: .line 681
            aload 1 /* context */
            getfield org.jruby.runtime.ThreadContext.nil:Lorg/jruby/runtime/builtin/IRubyObject;
            aload 10
            monitorexit
        26: areturn
        27: .line 679
      StackMap locals:
      StackMap stack:
            aload 12 /* stringBytes */
            iload 16 /* p */
            baload
            bipush 10
            if_icmpeq 24
        28: .line 684
            iload 16 /* p */
            istore 14 /* s */
        29: .line 685
            goto 44
        30: .line 686
      StackMap locals:
      StackMap stack:
            iinc 16 /* p */ 1
        31: .line 687
            iload 16 /* p */
            iload 15 /* e */
            if_icmpne 32
            goto 45
        32: .line 689
      StackMap locals:
      StackMap stack:
            aload 12 /* stringBytes */
            iload 16 /* p */
            baload
            bipush 10
            if_icmpne 38
        33: .line 690
            iload 16 /* p */
            iconst_1
            iadd
            istore 15 /* e */
        34: .line 691
            iload 4 /* chomp */
            ifeq 35
            iconst_1
            goto 36
      StackMap locals:
      StackMap stack:
        35: iconst_0
      StackMap locals:
      StackMap stack: int
        36: istore 17 /* w */
        37: .line 692
            goto 45
        38: .line 694
      StackMap locals:
      StackMap stack:
            aload 12 /* stringBytes */
            iload 16 /* p */
            baload
            bipush 13
            if_icmpne 44
            iload 16 /* p */
            iload 15 /* e */
            if_icmpge 44
            aload 12 /* stringBytes */
            iload 16 /* p */
            iconst_1
            iadd
            baload
            bipush 10
            if_icmpne 44
        39: .line 695
            iload 16 /* p */
            iconst_2
            iadd
            istore 15 /* e */
        40: .line 696
            iload 4 /* chomp */
            ifeq 41
            iconst_2
            goto 42
      StackMap locals:
      StackMap stack:
        41: iconst_0
      StackMap locals:
      StackMap stack: int
        42: istore 17 /* w */
        43: .line 697
            goto 45
        44: .line 685
      StackMap locals:
      StackMap stack:
            aload 12 /* stringBytes */
            iload 16 /* p */
            bipush 10
            iload 15 /* e */
            iload 16 /* p */
            isub
            invokestatic org.jruby.util.StringSupport.memchr:([BIII)I
            dup
            istore 16 /* p */
            iconst_m1
            if_icmpeq 45
            iload 16 /* p */
            iload 15 /* e */
            if_icmpne 30
        45: .line 700
      StackMap locals:
      StackMap stack:
            iload 17 /* w */
            ifne 47
            iload 4 /* chomp */
            ifeq 47
        46: .line 701
            aload 12 /* stringBytes */
            iload 14 /* s */
            iload 15 /* e */
            invokestatic org.jruby.ext.stringio.StringIO.chompNewlineWidth:([BII)I
            istore 17 /* w */
        47: .line 703
      StackMap locals:
      StackMap stack:
            aload 0 /* this */
            aload 5 /* runtime */
            iload 14 /* s */
            iload 13 /* begin */
            isub
            iload 15 /* e */
            iload 14 /* s */
            isub
            iload 17 /* w */
            isub
            aload 9 /* enc */
            invokevirtual org.jruby.ext.stringio.StringIO.strioSubstr:(Lorg/jruby/Ruby;IILorg/jcodings/Encoding;)Lorg/jruby/RubyString;
            astore 6 /* str */
        start local 6 // org.jruby.RubyString str
        48: .line 704
            goto 73
        end local 16 // int p
        end local 6 // org.jruby.RubyString str
      StackMap locals: org.jruby.ext.stringio.StringIO org.jruby.runtime.ThreadContext org.jruby.runtime.builtin.IRubyObject int int org.jruby.Ruby top int org.jruby.ext.stringio.StringIO$StringIOData org.jcodings.Encoding org.jruby.ext.stringio.StringIO$StringIOData org.jruby.util.ByteList byte[] int int int top int
      StackMap stack:
        49: iload 7 /* n */
            iconst_1
            if_icmpne 62
        50: .line 705
            aload 2 /* rs */
            checkcast org.jruby.RubyString
            astore 18 /* strStr */
        start local 18 // org.jruby.RubyString strStr
        51: .line 706
            aload 18 /* strStr */
            invokevirtual org.jruby.RubyString.getByteList:()Lorg/jruby/util/ByteList;
            astore 19 /* strByteList */
        start local 19 // org.jruby.util.ByteList strByteList
        52: .line 707
            aload 12 /* stringBytes */
            iload 14 /* s */
            aload 19 /* strByteList */
            iconst_0
            invokevirtual org.jruby.util.ByteList.get:(I)I
            iload 15 /* e */
            iload 14 /* s */
            isub
            invokestatic org.jruby.util.StringSupport.memchr:([BIII)I
            dup
            istore 16 /* p */
        start local 16 // int p
        53: iconst_m1
            if_icmpeq 60
        54: .line 708
            iload 16 /* p */
            iconst_1
            iadd
            istore 15 /* e */
        55: .line 709
            iload 4 /* chomp */
            ifeq 58
            iload 16 /* p */
            iload 14 /* s */
            if_icmple 56
            aload 12 /* stringBytes */
            iload 16 /* p */
            iconst_1
            isub
            baload
            bipush 13
            if_icmpne 56
            iconst_1
            goto 57
      StackMap locals: org.jruby.ext.stringio.StringIO org.jruby.runtime.ThreadContext org.jruby.runtime.builtin.IRubyObject int int org.jruby.Ruby top int org.jruby.ext.stringio.StringIO$StringIOData org.jcodings.Encoding org.jruby.ext.stringio.StringIO$StringIOData org.jruby.util.ByteList byte[] int int int int int org.jruby.RubyString org.jruby.util.ByteList
      StackMap stack:
        56: iconst_0
      StackMap locals:
      StackMap stack: int
        57: iconst_1
            iadd
            goto 59
      StackMap locals:
      StackMap stack:
        58: iconst_0
      StackMap locals:
      StackMap stack: int
        59: istore 17 /* w */
        60: .line 711
      StackMap locals:
      StackMap stack:
            aload 0 /* this */
            aload 5 /* runtime */
            aload 8 /* ptr */
            getfield org.jruby.ext.stringio.StringIO$StringIOData.pos:I
            iload 15 /* e */
            iload 14 /* s */
            isub
            iload 17 /* w */
            isub
            aload 9 /* enc */
            invokevirtual org.jruby.ext.stringio.StringIO.strioSubstr:(Lorg/jruby/Ruby;IILorg/jcodings/Encoding;)Lorg/jruby/RubyString;
            astore 6 /* str */
        end local 19 // org.jruby.util.ByteList strByteList
        end local 18 // org.jruby.RubyString strStr
        start local 6 // org.jruby.RubyString str
        61: .line 712
            goto 73
        end local 16 // int p
        end local 6 // org.jruby.RubyString str
        62: .line 713
      StackMap locals: org.jruby.ext.stringio.StringIO org.jruby.runtime.ThreadContext org.jruby.runtime.builtin.IRubyObject int int org.jruby.Ruby top int org.jruby.ext.stringio.StringIO$StringIOData org.jcodings.Encoding org.jruby.ext.stringio.StringIO$StringIOData org.jruby.util.ByteList byte[] int int int top int
      StackMap stack:
            iload 7 /* n */
            iload 15 /* e */
            iload 14 /* s */
            isub
            if_icmpge 72
        63: .line 714
            aload 2 /* rs */
            checkcast org.jruby.RubyString
            astore 18 /* rsStr */
        start local 18 // org.jruby.RubyString rsStr
        64: .line 715
            aload 18 /* rsStr */
            invokevirtual org.jruby.RubyString.getByteList:()Lorg/jruby/util/ByteList;
            astore 19 /* rsByteList */
        start local 19 // org.jruby.util.ByteList rsByteList
        65: .line 716
            aload 19 /* rsByteList */
            invokevirtual org.jruby.util.ByteList.getUnsafeBytes:()[B
            astore 20 /* rsBytes */
        start local 20 // byte[] rsBytes
        66: .line 718
            sipush 256
            newarray 10
            astore 21 /* skip */
        start local 21 // int[] skip
        67: .line 720
            aload 19 /* rsByteList */
            invokevirtual org.jruby.util.ByteList.getBegin:()I
            istore 16 /* p */
        start local 16 // int p
        68: .line 721
            aload 21 /* skip */
            aload 20 /* rsBytes */
            iload 16 /* p */
            iload 7 /* n */
            invokestatic org.jruby.ext.stringio.StringIO.bm_init_skip:([I[BII)V
        69: .line 722
            aload 20 /* rsBytes */
            iload 16 /* p */
            iload 7 /* n */
            aload 12 /* stringBytes */
            iload 14 /* s */
            iload 15 /* e */
            iload 14 /* s */
            isub
            aload 21 /* skip */
            invokestatic org.jruby.ext.stringio.StringIO.bm_search:([BII[BII[I)I
            dup
            istore 22 /* pos */
        start local 22 // int pos
        70: iflt 72
        71: .line 723
            iload 14 /* s */
            iload 22 /* pos */
            iadd
            iload 7 /* n */
            iadd
            istore 15 /* e */
        end local 22 // int pos
        end local 21 // int[] skip
        end local 20 // byte[] rsBytes
        end local 19 // org.jruby.util.ByteList rsByteList
        end local 18 // org.jruby.RubyString rsStr
        end local 16 // int p
        72: .line 726
      StackMap locals:
      StackMap stack:
            aload 0 /* this */
            aload 5 /* runtime */
            aload 8 /* ptr */
            getfield org.jruby.ext.stringio.StringIO$StringIOData.pos:I
            iload 15 /* e */
            iload 14 /* s */
            isub
            iload 17 /* w */
            isub
            aload 9 /* enc */
            invokevirtual org.jruby.ext.stringio.StringIO.strioSubstr:(Lorg/jruby/Ruby;IILorg/jcodings/Encoding;)Lorg/jruby/RubyString;
            astore 6 /* str */
        end local 7 // int n
        start local 6 // org.jruby.RubyString str
        73: .line 728
      StackMap locals: org.jruby.ext.stringio.StringIO org.jruby.runtime.ThreadContext org.jruby.runtime.builtin.IRubyObject int int org.jruby.Ruby org.jruby.RubyString top org.jruby.ext.stringio.StringIO$StringIOData org.jcodings.Encoding org.jruby.ext.stringio.StringIO$StringIOData org.jruby.util.ByteList byte[] int int int top int
      StackMap stack:
            aload 8 /* ptr */
            iload 15 /* e */
            iload 13 /* begin */
            isub
            putfield org.jruby.ext.stringio.StringIO$StringIOData.pos:I
        74: .line 729
            aload 8 /* ptr */
            dup
            getfield org.jruby.ext.stringio.StringIO$StringIOData.lineno:I
            iconst_1
            iadd
            putfield org.jruby.ext.stringio.StringIO$StringIOData.lineno:I
        end local 17 // int w
        end local 15 // int e
        end local 14 // int s
        end local 13 // int begin
        end local 12 // byte[] stringBytes
        end local 11 // org.jruby.util.ByteList string
        75: .line 654
            aload 10
            monitorexit
        76: goto 79
        end local 6 // org.jruby.RubyString str
      StackMap locals: org.jruby.ext.stringio.StringIO org.jruby.runtime.ThreadContext org.jruby.runtime.builtin.IRubyObject int int org.jruby.Ruby top top org.jruby.ext.stringio.StringIO$StringIOData org.jcodings.Encoding org.jruby.ext.stringio.StringIO$StringIOData
      StackMap stack: java.lang.Throwable
        77: aload 10
            monitorexit
        78: athrow
        start local 6 // org.jruby.RubyString str
        79: .line 732
      StackMap locals: org.jruby.ext.stringio.StringIO org.jruby.runtime.ThreadContext org.jruby.runtime.builtin.IRubyObject int int org.jruby.Ruby org.jruby.RubyString top org.jruby.ext.stringio.StringIO$StringIOData org.jcodings.Encoding
      StackMap stack:
            aload 6 /* str */
            areturn
        end local 9 // org.jcodings.Encoding enc
        end local 8 // org.jruby.ext.stringio.StringIO$StringIOData ptr
        end local 6 // org.jruby.RubyString str
        end local 5 // org.jruby.Ruby runtime
        end local 4 // boolean chomp
        end local 3 // int limit
        end local 2 // org.jruby.runtime.builtin.IRubyObject rs
        end local 1 // org.jruby.runtime.ThreadContext context
        end local 0 // org.jruby.ext.stringio.StringIO this
      LocalVariableTable:
        Start  End  Slot         Name  Signature
            0   80     0         this  Lorg/jruby/ext/stringio/StringIO;
            0   80     1      context  Lorg/jruby/runtime/ThreadContext;
            0   80     2           rs  Lorg/jruby/runtime/builtin/IRubyObject;
            0   80     3        limit  I
            0   80     4        chomp  Z
            1   80     5      runtime  Lorg/jruby/Ruby;
           19   20     6          str  Lorg/jruby/RubyString;
           48   49     6          str  Lorg/jruby/RubyString;
           61   62     6          str  Lorg/jruby/RubyString;
           73   77     6          str  Lorg/jruby/RubyString;
           79   80     6          str  Lorg/jruby/RubyString;
           21   73     7            n  I
            5   80     8          ptr  Lorg/jruby/ext/stringio/StringIO$StringIOData;
            6   80     9          enc  Lorg/jcodings/Encoding;
            8   75    11       string  Lorg/jruby/util/ByteList;
            9   75    12  stringBytes  [B
           10   75    13        begin  I
           11   75    14            s  I
           12   75    15            e  I
           23   49    16            p  I
           53   62    16            p  I
           68   72    16            p  I
           13   75    17            w  I
           51   61    18       strStr  Lorg/jruby/RubyString;
           52   61    19  strByteList  Lorg/jruby/util/ByteList;
           64   72    18        rsStr  Lorg/jruby/RubyString;
           65   72    19   rsByteList  Lorg/jruby/util/ByteList;
           66   72    20      rsBytes  [B
           67   72    21         skip  [I
           70   72    22          pos  I
      Exception table:
        from    to  target  type
           7    26      77  any
          27    76      77  any
          77    78      77  any
    MethodParameters:
         Name  Flags
      context  
      rs       final
      limit    
      chomp    

  private static int chompNewlineWidth(byte[], int, int);
    descriptor: ([BII)I
    flags: (0x000a) ACC_PRIVATE, ACC_STATIC
    Code:
      stack=2, locals=3, args_size=3
        start local 0 // byte[] bytes
        start local 1 // int s
        start local 2 // int e
         0: .line 736
            iload 2 /* e */
            iload 1 /* s */
            if_icmple 3
            aload 0 /* bytes */
            iinc 2 /* e */ -1
            iload 2 /* e */
            baload
            bipush 10
            if_icmpne 3
         1: .line 737
            iload 2 /* e */
            iload 1 /* s */
            if_icmple 2
            aload 0 /* bytes */
            iinc 2 /* e */ -1
            iload 2 /* e */
            baload
            bipush 13
            if_icmpne 2
            iconst_2
            ireturn
         2: .line 738
      StackMap locals:
      StackMap stack:
            iconst_1
            ireturn
         3: .line 740
      StackMap locals:
      StackMap stack:
            iconst_0
            ireturn
        end local 2 // int e
        end local 1 // int s
        end local 0 // byte[] bytes
      LocalVariableTable:
        Start  End  Slot   Name  Signature
            0    4     0  bytes  [B
            0    4     1      s  I
            0    4     2      e  I
    MethodParameters:
       Name  Flags
      bytes  
      s      
      e      

  public org.jruby.runtime.builtin.IRubyObject length();
    descriptor: ()Lorg/jruby/runtime/builtin/IRubyObject;
    flags: (0x0001) ACC_PUBLIC
    Code:
      stack=2, locals=1, args_size=1
        start local 0 // org.jruby.ext.stringio.StringIO this
         0: .line 745
            aload 0 /* this */
            invokevirtual org.jruby.ext.stringio.StringIO.checkInitialized:()V
         1: .line 746
            aload 0 /* this */
            invokevirtual org.jruby.ext.stringio.StringIO.checkFinalized:()V
         2: .line 747
            aload 0 /* this */
            invokevirtual org.jruby.ext.stringio.StringIO.getRuntime:()Lorg/jruby/Ruby;
            aload 0 /* this */
            getfield org.jruby.ext.stringio.StringIO.ptr:Lorg/jruby/ext/stringio/StringIO$StringIOData;
            getfield org.jruby.ext.stringio.StringIO$StringIOData.string:Lorg/jruby/RubyString;
            invokevirtual org.jruby.RubyString.size:()I
            invokevirtual org.jruby.Ruby.newFixnum:(I)Lorg/jruby/RubyFixnum;
            areturn
        end local 0 // org.jruby.ext.stringio.StringIO this
      LocalVariableTable:
        Start  End  Slot  Name  Signature
            0    3     0  this  Lorg/jruby/ext/stringio/StringIO;
    RuntimeVisibleAnnotations: 
      org.jruby.anno.JRubyMethod(name = {"length", "size"})

  public org.jruby.runtime.builtin.IRubyObject lineno(org.jruby.runtime.ThreadContext);
    descriptor: (Lorg/jruby/runtime/ThreadContext;)Lorg/jruby/runtime/builtin/IRubyObject;
    flags: (0x0001) ACC_PUBLIC
    Code:
      stack=2, locals=2, args_size=2
        start local 0 // org.jruby.ext.stringio.StringIO this
        start local 1 // org.jruby.runtime.ThreadContext context
         0: .line 752
            aload 1 /* context */
            getfield org.jruby.runtime.ThreadContext.runtime:Lorg/jruby/Ruby;
            aload 0 /* this */
            getfield org.jruby.ext.stringio.StringIO.ptr:Lorg/jruby/ext/stringio/StringIO$StringIOData;
            getfield org.jruby.ext.stringio.StringIO$StringIOData.lineno:I
            invokevirtual org.jruby.Ruby.newFixnum:(I)Lorg/jruby/RubyFixnum;
            areturn
        end local 1 // org.jruby.runtime.ThreadContext context
        end local 0 // org.jruby.ext.stringio.StringIO this
      LocalVariableTable:
        Start  End  Slot     Name  Signature
            0    1     0     this  Lorg/jruby/ext/stringio/StringIO;
            0    1     1  context  Lorg/jruby/runtime/ThreadContext;
    RuntimeVisibleAnnotations: 
      org.jruby.anno.JRubyMethod(name = {"lineno"})
    MethodParameters:
         Name  Flags
      context  

  public org.jruby.runtime.builtin.IRubyObject set_lineno(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=2, locals=3, args_size=3
        start local 0 // org.jruby.ext.stringio.StringIO this
        start local 1 // org.jruby.runtime.ThreadContext context
        start local 2 // org.jruby.runtime.builtin.IRubyObject arg
         0: .line 757
            aload 0 /* this */
            getfield org.jruby.ext.stringio.StringIO.ptr:Lorg/jruby/ext/stringio/StringIO$StringIOData;
            aload 2 /* arg */
            invokestatic org.jruby.RubyNumeric.fix2int:(Lorg/jruby/runtime/builtin/IRubyObject;)I
            putfield org.jruby.ext.stringio.StringIO$StringIOData.lineno:I
         1: .line 759
            aload 1 /* context */
            getfield org.jruby.runtime.ThreadContext.nil:Lorg/jruby/runtime/builtin/IRubyObject;
            areturn
        end local 2 // org.jruby.runtime.builtin.IRubyObject arg
        end local 1 // org.jruby.runtime.ThreadContext context
        end local 0 // org.jruby.ext.stringio.StringIO this
      LocalVariableTable:
        Start  End  Slot     Name  Signature
            0    2     0     this  Lorg/jruby/ext/stringio/StringIO;
            0    2     1  context  Lorg/jruby/runtime/ThreadContext;
            0    2     2      arg  Lorg/jruby/runtime/builtin/IRubyObject;
    RuntimeVisibleAnnotations: 
      org.jruby.anno.JRubyMethod(name = {"lineno="}, required = 1)
    MethodParameters:
         Name  Flags
      context  
      arg      

  public org.jruby.runtime.builtin.IRubyObject pos(org.jruby.runtime.ThreadContext);
    descriptor: (Lorg/jruby/runtime/ThreadContext;)Lorg/jruby/runtime/builtin/IRubyObject;
    flags: (0x0001) ACC_PUBLIC
    Code:
      stack=2, locals=2, args_size=2
        start local 0 // org.jruby.ext.stringio.StringIO this
        start local 1 // org.jruby.runtime.ThreadContext context
         0: .line 764
            aload 0 /* this */
            invokevirtual org.jruby.ext.stringio.StringIO.checkInitialized:()V
         1: .line 766
            aload 1 /* context */
            getfield org.jruby.runtime.ThreadContext.runtime:Lorg/jruby/Ruby;
            aload 0 /* this */
            getfield org.jruby.ext.stringio.StringIO.ptr:Lorg/jruby/ext/stringio/StringIO$StringIOData;
            getfield org.jruby.ext.stringio.StringIO$StringIOData.pos:I
            invokevirtual org.jruby.Ruby.newFixnum:(I)Lorg/jruby/RubyFixnum;
            areturn
        end local 1 // org.jruby.runtime.ThreadContext context
        end local 0 // org.jruby.ext.stringio.StringIO this
      LocalVariableTable:
        Start  End  Slot     Name  Signature
            0    2     0     this  Lorg/jruby/ext/stringio/StringIO;
            0    2     1  context  Lorg/jruby/runtime/ThreadContext;
    RuntimeVisibleAnnotations: 
      org.jruby.anno.JRubyMethod(name = {"pos", "tell"})
    MethodParameters:
         Name  Flags
      context  

  public org.jruby.runtime.builtin.IRubyObject set_pos(org.jruby.runtime.builtin.IRubyObject);
    descriptor: (Lorg/jruby/runtime/builtin/IRubyObject;)Lorg/jruby/runtime/builtin/IRubyObject;
    flags: (0x0001) ACC_PUBLIC
    Code:
      stack=4, locals=4, args_size=2
        start local 0 // org.jruby.ext.stringio.StringIO this
        start local 1 // org.jruby.runtime.builtin.IRubyObject arg
         0: .line 771
            aload 0 /* this */
            invokevirtual org.jruby.ext.stringio.StringIO.checkInitialized:()V
         1: .line 773
            aload 1 /* arg */
            invokestatic org.jruby.RubyNumeric.fix2long:(Lorg/jruby/runtime/builtin/IRubyObject;)J
            lstore 2 /* p */
        start local 2 // long p
         2: .line 775
            lload 2 /* p */
            lconst_0
            lcmp
            ifge 3
            aload 0 /* this */
            invokevirtual org.jruby.ext.stringio.StringIO.getRuntime:()Lorg/jruby/Ruby;
            aload 1 /* arg */
            invokevirtual java.lang.Object.toString:()Ljava/lang/String;
            invokevirtual org.jruby.Ruby.newErrnoEINVALError:(Ljava/lang/String;)Lorg/jruby/exceptions/RaiseException;
            athrow
         3: .line 777
      StackMap locals: long
      StackMap stack:
            lload 2 /* p */
            ldc 2147483647
            lcmp
            ifle 4
            aload 0 /* this */
            invokevirtual org.jruby.ext.stringio.StringIO.getRuntime:()Lorg/jruby/Ruby;
            ldc "JRuby does not support StringIO larger than 2147483647 bytes"
            invokevirtual org.jruby.Ruby.newArgumentError:(Ljava/lang/String;)Lorg/jruby/exceptions/RaiseException;
            athrow
         4: .line 779
      StackMap locals:
      StackMap stack:
            aload 0 /* this */
            getfield org.jruby.ext.stringio.StringIO.ptr:Lorg/jruby/ext/stringio/StringIO$StringIOData;
            lload 2 /* p */
            l2i
            putfield org.jruby.ext.stringio.StringIO$StringIOData.pos:I
         5: .line 781
            aload 1 /* arg */
            areturn
        end local 2 // long p
        end local 1 // org.jruby.runtime.builtin.IRubyObject arg
        end local 0 // org.jruby.ext.stringio.StringIO this
      LocalVariableTable:
        Start  End  Slot  Name  Signature
            0    6     0  this  Lorg/jruby/ext/stringio/StringIO;
            0    6     1   arg  Lorg/jruby/runtime/builtin/IRubyObject;
            2    6     2     p  J
    RuntimeVisibleAnnotations: 
      org.jruby.anno.JRubyMethod(name = {"pos="}, required = 1)
    MethodParameters:
      Name  Flags
      arg   

  private void strioExtend(int, int);
    descriptor: (II)V
    flags: (0x0002) ACC_PRIVATE
    Code:
      stack=4, locals=7, args_size=3
        start local 0 // org.jruby.ext.stringio.StringIO this
        start local 1 // int pos
        start local 2 // int len
         0: .line 785
            aload 0 /* this */
            getfield org.jruby.ext.stringio.StringIO.ptr:Lorg/jruby/ext/stringio/StringIO$StringIOData;
            astore 3 /* ptr */
        start local 3 // org.jruby.ext.stringio.StringIO$StringIOData ptr
         1: .line 787
            aload 3 /* ptr */
            dup
            astore 4
            monitorenter
         2: .line 788
            aload 3 /* ptr */
            getfield org.jruby.ext.stringio.StringIO$StringIOData.string:Lorg/jruby/RubyString;
            invokevirtual org.jruby.RubyString.size:()I
            istore 5 /* olen */
        start local 5 // int olen
         3: .line 789
            iload 1 /* pos */
            iload 2 /* len */
            iadd
            iload 5 /* olen */
            if_icmple 14
         4: .line 790
            aload 3 /* ptr */
            getfield org.jruby.ext.stringio.StringIO$StringIOData.string:Lorg/jruby/RubyString;
            iload 1 /* pos */
            iload 2 /* len */
            iadd
            invokevirtual org.jruby.RubyString.resize:(I)V
         5: .line 791
            iload 1 /* pos */
            iload 5 /* olen */
            if_icmple 15
         6: .line 792
            aload 3 /* ptr */
            getfield org.jruby.ext.stringio.StringIO$StringIOData.string:Lorg/jruby/RubyString;
            invokevirtual org.jruby.RubyString.modify19:()V
         7: .line 793
            aload 3 /* ptr */
            getfield org.jruby.ext.stringio.StringIO$StringIOData.string:Lorg/jruby/RubyString;
            invokevirtual org.jruby.RubyString.getByteList:()Lorg/jruby/util/ByteList;
            astore 6 /* ptrByteList */
        start local 6 // org.jruby.util.ByteList ptrByteList
         8: .line 795
            aload 6 /* ptrByteList */
            invokevirtual org.jruby.util.ByteList.getUnsafeBytes:()[B
         9: .line 796
            aload 6 /* ptrByteList */
            invokevirtual org.jruby.util.ByteList.getBegin:()I
            iload 5 /* olen */
            iadd
        10: .line 797
            aload 6 /* ptrByteList */
            invokevirtual org.jruby.util.ByteList.getBegin:()I
            iload 1 /* pos */
            iadd
        11: .line 798
            iconst_0
        12: .line 795
            invokestatic java.util.Arrays.fill:([BIIB)V
        end local 6 // org.jruby.util.ByteList ptrByteList
        13: .line 800
            goto 15
        14: .line 801
      StackMap locals: org.jruby.ext.stringio.StringIO$StringIOData org.jruby.ext.stringio.StringIO$StringIOData int
      StackMap stack:
            aload 3 /* ptr */
            getfield org.jruby.ext.stringio.StringIO$StringIOData.string:Lorg/jruby/RubyString;
            invokevirtual org.jruby.RubyString.modify19:()V
        end local 5 // int olen
        15: .line 787
      StackMap locals:
      StackMap stack:
            aload 4
            monitorexit
        16: goto 19
      StackMap locals:
      StackMap stack: java.lang.Throwable
        17: aload 4
            monitorexit
        18: athrow
        19: .line 804
      StackMap locals:
      StackMap stack:
            return
        end local 3 // org.jruby.ext.stringio.StringIO$StringIOData ptr
        end local 2 // int len
        end local 1 // int pos
        end local 0 // org.jruby.ext.stringio.StringIO this
      LocalVariableTable:
        Start  End  Slot         Name  Signature
            0   20     0         this  Lorg/jruby/ext/stringio/StringIO;
            0   20     1          pos  I
            0   20     2          len  I
            1   20     3          ptr  Lorg/jruby/ext/stringio/StringIO$StringIOData;
            3   15     5         olen  I
            8   13     6  ptrByteList  Lorg/jruby/util/ByteList;
      Exception table:
        from    to  target  type
           2    16      17  any
          17    18      17  any
    MethodParameters:
      Name  Flags
      pos   
      len   

  public org.jruby.runtime.builtin.IRubyObject putc(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=6, args_size=3
        start local 0 // org.jruby.ext.stringio.StringIO this
        start local 1 // org.jruby.runtime.ThreadContext context
        start local 2 // org.jruby.runtime.builtin.IRubyObject ch
         0: .line 809
            aload 1 /* context */
            getfield org.jruby.runtime.ThreadContext.runtime:Lorg/jruby/Ruby;
            astore 3 /* runtime */
        start local 3 // org.jruby.Ruby runtime
         1: .line 810
            aload 0 /* this */
            invokevirtual org.jruby.ext.stringio.StringIO.checkWritable:()V
         2: .line 813
            aload 0 /* this */
            invokevirtual org.jruby.ext.stringio.StringIO.checkModifiable:()V
         3: .line 814
            aload 2 /* ch */
            instanceof org.jruby.RubyString
            ifeq 6
         4: .line 815
            aload 2 /* ch */
            checkcast org.jruby.RubyString
            aload 3 /* runtime */
            iconst_0
            iconst_1
            invokevirtual org.jruby.RubyString.substr19:(Lorg/jruby/Ruby;II)Lorg/jruby/runtime/builtin/IRubyObject;
            astore 4 /* str */
        start local 4 // org.jruby.runtime.builtin.IRubyObject str
         5: .line 816
            goto 8
        end local 4 // org.jruby.runtime.builtin.IRubyObject str
         6: .line 818
      StackMap locals: org.jruby.Ruby
      StackMap stack:
            aload 2 /* ch */
            invokestatic org.jruby.RubyNumeric.num2chr:(Lorg/jruby/runtime/builtin/IRubyObject;)B
            istore 5 /* c */
        start local 5 // byte c
         7: .line 819
            aload 3 /* runtime */
            iconst_1
            newarray 8
            dup
            iconst_0
            iload 5 /* c */
            bastore
            invokestatic org.jruby.RubyString.newString:(Lorg/jruby/Ruby;[B)Lorg/jruby/RubyString;
            astore 4 /* str */
        end local 5 // byte c
        start local 4 // org.jruby.runtime.builtin.IRubyObject str
         8: .line 821
      StackMap locals: org.jruby.runtime.builtin.IRubyObject
      StackMap stack:
            aload 0 /* this */
            aload 1 /* context */
            aload 4 /* str */
            invokevirtual org.jruby.ext.stringio.StringIO.write:(Lorg/jruby/runtime/ThreadContext;Lorg/jruby/runtime/builtin/IRubyObject;)Lorg/jruby/runtime/builtin/IRubyObject;
            pop
         9: .line 822
            aload 2 /* ch */
            areturn
        end local 4 // org.jruby.runtime.builtin.IRubyObject str
        end local 3 // org.jruby.Ruby runtime
        end local 2 // org.jruby.runtime.builtin.IRubyObject ch
        end local 1 // org.jruby.runtime.ThreadContext context
        end local 0 // org.jruby.ext.stringio.StringIO this
      LocalVariableTable:
        Start  End  Slot     Name  Signature
            0   10     0     this  Lorg/jruby/ext/stringio/StringIO;
            0   10     1  context  Lorg/jruby/runtime/ThreadContext;
            0   10     2       ch  Lorg/jruby/runtime/builtin/IRubyObject;
            1   10     3  runtime  Lorg/jruby/Ruby;
            5    6     4      str  Lorg/jruby/runtime/builtin/IRubyObject;
            8   10     4      str  Lorg/jruby/runtime/builtin/IRubyObject;
            7    8     5        c  B
    RuntimeVisibleAnnotations: 
      org.jruby.anno.JRubyMethod(name = {"putc"})
    MethodParameters:
         Name  Flags
      context  
      ch       

  public org.jruby.runtime.builtin.IRubyObject read(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=15, args_size=3
        start local 0 // org.jruby.ext.stringio.StringIO this
        start local 1 // org.jruby.runtime.ThreadContext context
        start local 2 // org.jruby.runtime.builtin.IRubyObject[] args
         0: .line 829
            aload 0 /* this */
            invokevirtual org.jruby.ext.stringio.StringIO.checkReadable:()V
         1: .line 831
            aload 1 /* context */
            getfield org.jruby.runtime.ThreadContext.runtime:Lorg/jruby/Ruby;
            astore 3 /* runtime */
        start local 3 // org.jruby.Ruby runtime
         2: .line 832
            aload 1 /* context */
            getfield org.jruby.runtime.ThreadContext.nil:Lorg/jruby/runtime/builtin/IRubyObject;
            astore 4 /* str */
        start local 4 // org.jruby.runtime.builtin.IRubyObject str
         3: .line 834
            iconst_0
            istore 6 /* binary */
        start local 6 // boolean binary
         4: .line 836
            aload 0 /* this */
            getfield org.jruby.ext.stringio.StringIO.ptr:Lorg/jruby/ext/stringio/StringIO$StringIOData;
            astore 7 /* ptr */
        start local 7 // org.jruby.ext.stringio.StringIO$StringIOData ptr
         5: .line 839
            aload 7 /* ptr */
            dup
            astore 9
            monitorenter
         6: .line 840
            aload 2 /* args */
            arraylength
            tableswitch { // 0 - 2
                    0: 21
                    1: 11
                    2: 7
              default: 35
          }
         7: .line 842
      StackMap locals: org.jruby.ext.stringio.StringIO org.jruby.runtime.ThreadContext org.jruby.runtime.builtin.IRubyObject[] org.jruby.Ruby org.jruby.runtime.builtin.IRubyObject top int org.jruby.ext.stringio.StringIO$StringIOData top org.jruby.ext.stringio.StringIO$StringIOData
      StackMap stack:
            aload 2 /* args */
            iconst_1
            aaload
            astore 4 /* str */
         8: .line 843
            aload 4 /* str */
            invokeinterface org.jruby.runtime.builtin.IRubyObject.isNil:()Z
            ifne 11
         9: .line 844
            aload 4 /* str */
            invokeinterface org.jruby.runtime.builtin.IRubyObject.convertToString:()Lorg/jruby/RubyString;
            astore 4 /* str */
        10: .line 845
            aload 4 /* str */
            checkcast org.jruby.RubyString
            invokevirtual org.jruby.RubyString.modify:()V
        11: .line 848
      StackMap locals:
      StackMap stack:
            aload 2 /* args */
            iconst_0
            aaload
            invokeinterface org.jruby.runtime.builtin.IRubyObject.isNil:()Z
            ifne 21
        12: .line 849
            aload 2 /* args */
            iconst_0
            aaload
            invokestatic org.jruby.RubyNumeric.fix2int:(Lorg/jruby/runtime/builtin/IRubyObject;)I
            istore 5 /* len */
        start local 5 // int len
        13: .line 851
            iload 5 /* len */
            ifge 15
        14: .line 852
            aload 3 /* runtime */
            new java.lang.StringBuilder
            dup
            ldc "negative length "
            invokespecial java.lang.StringBuilder.<init>:(Ljava/lang/String;)V
            iload 5 /* len */
            invokevirtual java.lang.StringBuilder.append:(I)Ljava/lang/StringBuilder;
            ldc " given"
            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
        15: .line 854
      StackMap locals: org.jruby.ext.stringio.StringIO org.jruby.runtime.ThreadContext org.jruby.runtime.builtin.IRubyObject[] org.jruby.Ruby org.jruby.runtime.builtin.IRubyObject int int org.jruby.ext.stringio.StringIO$StringIOData top org.jruby.ext.stringio.StringIO$StringIOData
      StackMap stack:
            iload 5 /* len */
            ifle 19
            aload 0 /* this */
            invokevirtual org.jruby.ext.stringio.StringIO.isEndOfString:()Z
            ifeq 19
        16: .line 855
            aload 4 /* str */
            invokeinterface org.jruby.runtime.builtin.IRubyObject.isNil:()Z
            ifne 17
            aload 4 /* str */
            checkcast org.jruby.RubyString
            iconst_0
            invokevirtual org.jruby.RubyString.resize:(I)V
        17: .line 856
      StackMap locals:
      StackMap stack:
            aload 1 /* context */
            getfield org.jruby.runtime.ThreadContext.nil:Lorg/jruby/runtime/builtin/IRubyObject;
            aload 9
            monitorexit
        18: areturn
        19: .line 858
      StackMap locals:
      StackMap stack:
            iconst_1
            istore 6 /* binary */
        20: .line 859
            goto 36
        end local 5 // int len
        21: .line 862
      StackMap locals: org.jruby.ext.stringio.StringIO org.jruby.runtime.ThreadContext org.jruby.runtime.builtin.IRubyObject[] org.jruby.Ruby org.jruby.runtime.builtin.IRubyObject top int org.jruby.ext.stringio.StringIO$StringIOData top org.jruby.ext.stringio.StringIO$StringIOData
      StackMap stack:
            aload 7 /* ptr */
            getfield org.jruby.ext.stringio.StringIO$StringIOData.string:Lorg/jruby/RubyString;
            invokevirtual org.jruby.RubyString.size:()I
            istore 5 /* len */
        start local 5 // int len
        22: .line 863
            iload 5 /* len */
            aload 7 /* ptr */
            getfield org.jruby.ext.stringio.StringIO$StringIOData.pos:I
            if_icmpgt 33
        23: .line 864
            iload 6 /* binary */
            ifeq 24
            getstatic org.jcodings.specific.ASCIIEncoding.INSTANCE:Lorg/jcodings/specific/ASCIIEncoding;
            goto 25
      StackMap locals: org.jruby.ext.stringio.StringIO org.jruby.runtime.ThreadContext org.jruby.runtime.builtin.IRubyObject[] org.jruby.Ruby org.jruby.runtime.builtin.IRubyObject int int org.jruby.ext.stringio.StringIO$StringIOData top org.jruby.ext.stringio.StringIO$StringIOData
      StackMap stack:
        24: aload 0 /* this */
            invokevirtual org.jruby.ext.stringio.StringIO.getEncoding:()Lorg/jcodings/Encoding;
      StackMap locals:
      StackMap stack: org.jcodings.Encoding
        25: astore 10 /* enc */
        start local 10 // org.jcodings.Encoding enc
        26: .line 865
            aload 4 /* str */
            invokeinterface org.jruby.runtime.builtin.IRubyObject.isNil:()Z
            ifeq 29
        27: .line 866
            aload 3 /* runtime */
            invokevirtual org.jruby.Ruby.newString:()Lorg/jruby/RubyString;
            astore 4 /* str */
        28: .line 867
            goto 30
        29: .line 868
      StackMap locals: org.jcodings.Encoding
      StackMap stack:
            aload 4 /* str */
            checkcast org.jruby.RubyString
            iconst_0
            invokevirtual org.jruby.RubyString.resize:(I)V
        30: .line 870
      StackMap locals:
      StackMap stack:
            aload 4 /* str */
            checkcast org.jruby.RubyString
            aload 10 /* enc */
            invokevirtual org.jruby.RubyString.setEncoding:(Lorg/jcodings/Encoding;)V
        31: .line 871
            aload 4 /* str */
            aload 9
            monitorexit
        32: areturn
        end local 10 // org.jcodings.Encoding enc
        33: .line 873
      StackMap locals:
      StackMap stack:
            iload 5 /* len */
            aload 7 /* ptr */
            getfield org.jruby.ext.stringio.StringIO$StringIOData.pos:I
            isub
            istore 5 /* len */
        34: .line 875
            goto 36
        end local 5 // int len
        35: .line 877
      StackMap locals: org.jruby.ext.stringio.StringIO org.jruby.runtime.ThreadContext org.jruby.runtime.builtin.IRubyObject[] org.jruby.Ruby org.jruby.runtime.builtin.IRubyObject top int org.jruby.ext.stringio.StringIO$StringIOData top org.jruby.ext.stringio.StringIO$StringIOData
      StackMap stack:
            aload 3 /* runtime */
            aload 2 /* args */
            arraylength
            iconst_0
            invokevirtual org.jruby.Ruby.newArgumentError:(II)Lorg/jruby/exceptions/RaiseException;
            athrow
        start local 5 // int len
        36: .line 880
      StackMap locals: org.jruby.ext.stringio.StringIO org.jruby.runtime.ThreadContext org.jruby.runtime.builtin.IRubyObject[] org.jruby.Ruby org.jruby.runtime.builtin.IRubyObject int int org.jruby.ext.stringio.StringIO$StringIOData top org.jruby.ext.stringio.StringIO$StringIOData
      StackMap stack:
            aload 4 /* str */
            invokeinterface org.jruby.runtime.builtin.IRubyObject.isNil:()Z
            ifeq 42
        37: .line 881
            iload 6 /* binary */
            ifeq 38
            getstatic org.jcodings.specific.ASCIIEncoding.INSTANCE:Lorg/jcodings/specific/ASCIIEncoding;
            goto 39
      StackMap locals:
      StackMap stack:
        38: aload 0 /* this */
            invokevirtual org.jruby.ext.stringio.StringIO.getEncoding:()Lorg/jcodings/Encoding;
      StackMap locals:
      StackMap stack: org.jcodings.Encoding
        39: astore 10 /* enc */
        start local 10 // org.jcodings.Encoding enc
        40: .line 882
            aload 0 /* this */
            aload 3 /* runtime */
            aload 7 /* ptr */
            getfield org.jruby.ext.stringio.StringIO$StringIOData.pos:I
            iload 5 /* len */
            aload 10 /* enc */
            invokevirtual org.jruby.ext.stringio.StringIO.strioSubstr:(Lorg/jruby/Ruby;IILorg/jcodings/Encoding;)Lorg/jruby/RubyString;
            astore 8 /* string */
        end local 10 // org.jcodings.Encoding enc
        start local 8 // org.jruby.RubyString string
        41: .line 883
            goto 55
        end local 8 // org.jruby.RubyString string
        42: .line 884
      StackMap locals:
      StackMap stack:
            aload 4 /* str */
            checkcast org.jruby.RubyString
            astore 8 /* string */
        start local 8 // org.jruby.RubyString string
        43: .line 885
            aload 7 /* ptr */
            getfield org.jruby.ext.stringio.StringIO$StringIOData.string:Lorg/jruby/RubyString;
            invokevirtual org.jruby.RubyString.size:()I
            aload 7 /* ptr */
            getfield org.jruby.ext.stringio.StringIO$StringIOData.pos:I
            isub
            istore 10 /* rest */
        start local 10 // int rest
        44: .line 886
            iload 5 /* len */
            iload 10 /* rest */
            if_icmple 45
            iload 10 /* rest */
            istore 5 /* len */
        45: .line 887
      StackMap locals: org.jruby.ext.stringio.StringIO org.jruby.runtime.ThreadContext org.jruby.runtime.builtin.IRubyObject[] org.jruby.Ruby org.jruby.runtime.builtin.IRubyObject int int org.jruby.ext.stringio.StringIO$StringIOData org.jruby.RubyString org.jruby.ext.stringio.StringIO$StringIOData int
      StackMap stack:
            aload 8 /* string */
            iload 5 /* len */
            invokevirtual org.jruby.RubyString.resize:(I)V
        46: .line 888
            aload 8 /* string */
            invokevirtual org.jruby.RubyString.getByteList:()Lorg/jruby/util/ByteList;
            astore 11 /* strByteList */
        start local 11 // org.jruby.util.ByteList strByteList
        47: .line 889
            aload 11 /* strByteList */
            invokevirtual org.jruby.util.ByteList.getUnsafeBytes:()[B
            astore 12 /* strBytes */
        start local 12 // byte[] strBytes
        48: .line 890
            aload 7 /* ptr */
            getfield org.jruby.ext.stringio.StringIO$StringIOData.string:Lorg/jruby/RubyString;
            invokevirtual org.jruby.RubyString.getByteList:()Lorg/jruby/util/ByteList;
            astore 13 /* dataByteList */
        start local 13 // org.jruby.util.ByteList dataByteList
        49: .line 891
            aload 13 /* dataByteList */
            invokevirtual org.jruby.util.ByteList.getUnsafeBytes:()[B
            astore 14 /* dataBytes */
        start local 14 // byte[] dataBytes
        50: .line 892
            aload 14 /* dataBytes */
            aload 13 /* dataByteList */
            invokevirtual org.jruby.util.ByteList.getBegin:()I
            aload 7 /* ptr */
            getfield org.jruby.ext.stringio.StringIO$StringIOData.pos:I
            iadd
            aload 12 /* strBytes */
            aload 11 /* strByteList */
            invokevirtual org.jruby.util.ByteList.getBegin:()I
            iload 5 /* len */
            invokestatic java.lang.System.arraycopy:(Ljava/lang/Object;ILjava/lang/Object;II)V
        51: .line 893
            iload 6 /* binary */
            ifeq 54
        52: .line 894
            aload 8 /* string */
            getstatic org.jcodings.specific.ASCIIEncoding.INSTANCE:Lorg/jcodings/specific/ASCIIEncoding;
            invokevirtual org.jruby.RubyString.setEncoding:(Lorg/jcodings/Encoding;)V
        53: .line 895
            goto 55
        54: .line 896
      StackMap locals: org.jruby.ext.stringio.StringIO org.jruby.runtime.ThreadContext org.jruby.runtime.builtin.IRubyObject[] org.jruby.Ruby org.jruby.runtime.builtin.IRubyObject int int org.jruby.ext.stringio.StringIO$StringIOData org.jruby.RubyString org.jruby.ext.stringio.StringIO$StringIOData int org.jruby.util.ByteList byte[] org.jruby.util.ByteList byte[]
      StackMap stack:
            aload 8 /* string */
            aload 7 /* ptr */
            getfield org.jruby.ext.stringio.StringIO$StringIOData.string:Lorg/jruby/RubyString;
            invokevirtual org.jruby.RubyString.getEncoding:()Lorg/jcodings/Encoding;
            invokevirtual org.jruby.RubyString.setEncoding:(Lorg/jcodings/Encoding;)V
        end local 14 // byte[] dataBytes
        end local 13 // org.jruby.util.ByteList dataByteList
        end local 12 // byte[] strBytes
        end local 11 // org.jruby.util.ByteList strByteList
        end local 10 // int rest
        55: .line 899
      StackMap locals: org.jruby.ext.stringio.StringIO org.jruby.runtime.ThreadContext org.jruby.runtime.builtin.IRubyObject[] org.jruby.Ruby org.jruby.runtime.builtin.IRubyObject int int org.jruby.ext.stringio.StringIO$StringIOData org.jruby.RubyString org.jruby.ext.stringio.StringIO$StringIOData
      StackMap stack:
            aload 7 /* ptr */
            dup
            getfield org.jruby.ext.stringio.StringIO$StringIOData.pos:I
            aload 8 /* string */
            invokevirtual org.jruby.RubyString.size:()I
            iadd
            putfield org.jruby.ext.stringio.StringIO$StringIOData.pos:I
        56: .line 839
            aload 9
            monitorexit
        57: goto 60
        end local 8 // org.jruby.RubyString string
        end local 5 // int len
      StackMap locals: org.jruby.ext.stringio.StringIO org.jruby.runtime.ThreadContext org.jruby.runtime.builtin.IRubyObject[] org.jruby.Ruby org.jruby.runtime.builtin.IRubyObject top int org.jruby.ext.stringio.StringIO$StringIOData top org.jruby.ext.stringio.StringIO$StringIOData
      StackMap stack: java.lang.Throwable
        58: aload 9
            monitorexit
        59: athrow
        start local 5 // int len
        start local 8 // org.jruby.RubyString string
        60: .line 902
      StackMap locals: org.jruby.ext.stringio.StringIO org.jruby.runtime.ThreadContext org.jruby.runtime.builtin.IRubyObject[] org.jruby.Ruby org.jruby.runtime.builtin.IRubyObject int int org.jruby.ext.stringio.StringIO$StringIOData org.jruby.RubyString
      StackMap stack:
            aload 8 /* string */
            areturn
        end local 8 // org.jruby.RubyString string
        end local 7 // org.jruby.ext.stringio.StringIO$StringIOData ptr
        end local 6 // boolean binary
        end local 5 // int len
        end local 4 // org.jruby.runtime.builtin.IRubyObject str
        end local 3 // org.jruby.Ruby runtime
        end local 2 // org.jruby.runtime.builtin.IRubyObject[] args
        end local 1 // org.jruby.runtime.ThreadContext context
        end local 0 // org.jruby.ext.stringio.StringIO this
      LocalVariableTable:
        Start  End  Slot          Name  Signature
            0   61     0          this  Lorg/jruby/ext/stringio/StringIO;
            0   61     1       context  Lorg/jruby/runtime/ThreadContext;
            0   61     2          args  [Lorg/jruby/runtime/builtin/IRubyObject;
            2   61     3       runtime  Lorg/jruby/Ruby;
            3   61     4           str  Lorg/jruby/runtime/builtin/IRubyObject;
           13   21     5           len  I
           22   35     5           len  I
           36   58     5           len  I
           60   61     5           len  I
            4   61     6        binary  Z
            5   61     7           ptr  Lorg/jruby/ext/stringio/StringIO$StringIOData;
           41   42     8        string  Lorg/jruby/RubyString;
           43   58     8        string  Lorg/jruby/RubyString;
           60   61     8        string  Lorg/jruby/RubyString;
           26   33    10           enc  Lorg/jcodings/Encoding;
           40   41    10           enc  Lorg/jcodings/Encoding;
           44   55    10          rest  I
           47   55    11   strByteList  Lorg/jruby/util/ByteList;
           48   55    12      strBytes  [B
           49   55    13  dataByteList  Lorg/jruby/util/ByteList;
           50   55    14     dataBytes  [B
      Exception table:
        from    to  target  type
           6    18      58  any
          19    32      58  any
          33    57      58  any
          58    59      58  any
    RuntimeVisibleAnnotations: 
      org.jruby.anno.JRubyMethod(name = {"read"}, optional = 2)
    MethodParameters:
         Name  Flags
      context  
      args     

  public org.jruby.runtime.builtin.IRubyObject readlines(org.jruby.runtime.ThreadContext);
    descriptor: (Lorg/jruby/runtime/ThreadContext;)Lorg/jruby/runtime/builtin/IRubyObject;
    flags: (0x0001) ACC_PUBLIC
    Code:
      stack=4, locals=2, args_size=2
        start local 0 // org.jruby.ext.stringio.StringIO this
        start local 1 // org.jruby.runtime.ThreadContext context
         0: .line 907
            aload 1 /* context */
            getstatic org.jruby.ext.stringio.StringIO.GETLINE_ARY:Lorg/jruby/util/io/Getline$Callback;
            aload 0 /* this */
            aload 0 /* this */
            invokevirtual org.jruby.ext.stringio.StringIO.getEncoding:()Lorg/jcodings/Encoding;
            invokestatic org.jruby.util.io.Getline.getlineCall:(Lorg/jruby/runtime/ThreadContext;Lorg/jruby/util/io/Getline$Callback;Ljava/lang/Object;Lorg/jcodings/Encoding;)Lorg/jruby/runtime/builtin/IRubyObject;
            areturn
        end local 1 // org.jruby.runtime.ThreadContext context
        end local 0 // org.jruby.ext.stringio.StringIO this
      LocalVariableTable:
        Start  End  Slot     Name  Signature
            0    1     0     this  Lorg/jruby/ext/stringio/StringIO;
            0    1     1  context  Lorg/jruby/runtime/ThreadContext;
    RuntimeVisibleAnnotations: 
      org.jruby.anno.JRubyMethod(name = {"readlines"})
    MethodParameters:
         Name  Flags
      context  

  public org.jruby.runtime.builtin.IRubyObject readlines(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=3, args_size=3
        start local 0 // org.jruby.ext.stringio.StringIO this
        start local 1 // org.jruby.runtime.ThreadContext context
        start local 2 // org.jruby.runtime.builtin.IRubyObject arg0
         0: .line 912
            aload 1 /* context */
            getstatic org.jruby.ext.stringio.StringIO.GETLINE_ARY:Lorg/jruby/util/io/Getline$Callback;
            aload 0 /* this */
            aload 0 /* this */
            invokevirtual org.jruby.ext.stringio.StringIO.getEncoding:()Lorg/jcodings/Encoding;
            aload 2 /* arg0 */
            invokestatic org.jruby.util.io.Getline.getlineCall:(Lorg/jruby/runtime/ThreadContext;Lorg/jruby/util/io/Getline$Callback;Ljava/lang/Object;Lorg/jcodings/Encoding;Lorg/jruby/runtime/builtin/IRubyObject;)Lorg/jruby/runtime/builtin/IRubyObject;
            areturn
        end local 2 // org.jruby.runtime.builtin.IRubyObject arg0
        end local 1 // org.jruby.runtime.ThreadContext context
        end local 0 // org.jruby.ext.stringio.StringIO this
      LocalVariableTable:
        Start  End  Slot     Name  Signature
            0    1     0     this  Lorg/jruby/ext/stringio/StringIO;
            0    1     1  context  Lorg/jruby/runtime/ThreadContext;
            0    1     2     arg0  Lorg/jruby/runtime/builtin/IRubyObject;
    RuntimeVisibleAnnotations: 
      org.jruby.anno.JRubyMethod(name = {"readlines"})
    MethodParameters:
         Name  Flags
      context  
      arg0     

  public org.jruby.runtime.builtin.IRubyObject readlines(org.jruby.runtime.ThreadContext, org.jruby.runtime.builtin.IRubyObject, org.jruby.runtime.builtin.IRubyObject);
    descriptor: (Lorg/jruby/runtime/ThreadContext;Lorg/jruby/runtime/builtin/IRubyObject;Lorg/jruby/runtime/builtin/IRubyObject;)Lorg/jruby/runtime/builtin/IRubyObject;
    flags: (0x0001) ACC_PUBLIC
    Code:
      stack=6, locals=4, args_size=4
        start local 0 // org.jruby.ext.stringio.StringIO this
        start local 1 // org.jruby.runtime.ThreadContext context
        start local 2 // org.jruby.runtime.builtin.IRubyObject arg0
        start local 3 // org.jruby.runtime.builtin.IRubyObject arg1
         0: .line 917
            aload 1 /* context */
            getstatic org.jruby.ext.stringio.StringIO.GETLINE_ARY:Lorg/jruby/util/io/Getline$Callback;
            aload 0 /* this */
            aload 0 /* this */
            invokevirtual org.jruby.ext.stringio.StringIO.getEncoding:()Lorg/jcodings/Encoding;
            aload 2 /* arg0 */
            aload 3 /* arg1 */
            invokestatic org.jruby.util.io.Getline.getlineCall:(Lorg/jruby/runtime/ThreadContext;Lorg/jruby/util/io/Getline$Callback;Ljava/lang/Object;Lorg/jcodings/Encoding;Lorg/jruby/runtime/builtin/IRubyObject;Lorg/jruby/runtime/builtin/IRubyObject;)Lorg/jruby/runtime/builtin/IRubyObject;
            areturn
        end local 3 // org.jruby.runtime.builtin.IRubyObject arg1
        end local 2 // org.jruby.runtime.builtin.IRubyObject arg0
        end local 1 // org.jruby.runtime.ThreadContext context
        end local 0 // org.jruby.ext.stringio.StringIO this
      LocalVariableTable:
        Start  End  Slot     Name  Signature
            0    1     0     this  Lorg/jruby/ext/stringio/StringIO;
            0    1     1  context  Lorg/jruby/runtime/ThreadContext;
            0    1     2     arg0  Lorg/jruby/runtime/builtin/IRubyObject;
            0    1     3     arg1  Lorg/jruby/runtime/builtin/IRubyObject;
    RuntimeVisibleAnnotations: 
      org.jruby.anno.JRubyMethod(name = {"readlines"})
    MethodParameters:
         Name  Flags
      context  
      arg0     
      arg1     

  public org.jruby.runtime.builtin.IRubyObject readlines(org.jruby.runtime.ThreadContext, org.jruby.runtime.builtin.IRubyObject, org.jruby.runtime.builtin.IRubyObject, org.jruby.runtime.builtin.IRubyObject);
    descriptor: (Lorg/jruby/runtime/ThreadContext;Lorg/jruby/runtime/builtin/IRubyObject;Lorg/jruby/runtime/builtin/IRubyObject;Lorg/jruby/runtime/builtin/IRubyObject;)Lorg/jruby/runtime/builtin/IRubyObject;
    flags: (0x0001) ACC_PUBLIC
    Code:
      stack=7, locals=5, args_size=5
        start local 0 // org.jruby.ext.stringio.StringIO this
        start local 1 // org.jruby.runtime.ThreadContext context
        start local 2 // org.jruby.runtime.builtin.IRubyObject arg0
        start local 3 // org.jruby.runtime.builtin.IRubyObject arg1
        start local 4 // org.jruby.runtime.builtin.IRubyObject arg2
         0: .line 922
            aload 1 /* context */
            getstatic org.jruby.ext.stringio.StringIO.GETLINE_ARY:Lorg/jruby/util/io/Getline$Callback;
            aload 0 /* this */
            aload 0 /* this */
            invokevirtual org.jruby.ext.stringio.StringIO.getEncoding:()Lorg/jcodings/Encoding;
            aload 2 /* arg0 */
            aload 3 /* arg1 */
            aload 4 /* arg2 */
            invokestatic org.jruby.util.io.Getline.getlineCall:(Lorg/jruby/runtime/ThreadContext;Lorg/jruby/util/io/Getline$Callback;Ljava/lang/Object;Lorg/jcodings/Encoding;Lorg/jruby/runtime/builtin/IRubyObject;Lorg/jruby/runtime/builtin/IRubyObject;Lorg/jruby/runtime/builtin/IRubyObject;)Lorg/jruby/runtime/builtin/IRubyObject;
            areturn
        end local 4 // org.jruby.runtime.builtin.IRubyObject arg2
        end local 3 // org.jruby.runtime.builtin.IRubyObject arg1
        end local 2 // org.jruby.runtime.builtin.IRubyObject arg0
        end local 1 // org.jruby.runtime.ThreadContext context
        end local 0 // org.jruby.ext.stringio.StringIO this
      LocalVariableTable:
        Start  End  Slot     Name  Signature
            0    1     0     this  Lorg/jruby/ext/stringio/StringIO;
            0    1     1  context  Lorg/jruby/runtime/ThreadContext;
            0    1     2     arg0  Lorg/jruby/runtime/builtin/IRubyObject;
            0    1     3     arg1  Lorg/jruby/runtime/builtin/IRubyObject;
            0    1     4     arg2  Lorg/jruby/runtime/builtin/IRubyObject;
    RuntimeVisibleAnnotations: 
      org.jruby.anno.JRubyMethod(name = {"readlines"})
    MethodParameters:
         Name  Flags
      context  
      arg0     
      arg1     
      arg2     

  public org.jruby.runtime.builtin.IRubyObject readlines(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=6, locals=3, args_size=3
        start local 0 // org.jruby.ext.stringio.StringIO this
        start local 1 // org.jruby.runtime.ThreadContext context
        start local 2 // org.jruby.runtime.builtin.IRubyObject[] args
         0: .line 926
            aload 2 /* args */
            arraylength
            tableswitch { // 0 - 3
                    0: 1
                    1: 2
                    2: 3
                    3: 4
              default: 5
          }
         1: .line 928
      StackMap locals:
      StackMap stack:
            aload 0 /* this */
            aload 1 /* context */
            invokevirtual org.jruby.ext.stringio.StringIO.readlines:(Lorg/jruby/runtime/ThreadContext;)Lorg/jruby/runtime/builtin/IRubyObject;
            areturn
         2: .line 930
      StackMap locals:
      StackMap stack:
            aload 0 /* this */
            aload 1 /* context */
            aload 2 /* args */
            iconst_0
            aaload
            invokevirtual org.jruby.ext.stringio.StringIO.readlines:(Lorg/jruby/runtime/ThreadContext;Lorg/jruby/runtime/builtin/IRubyObject;)Lorg/jruby/runtime/builtin/IRubyObject;
            areturn
         3: .line 932
      StackMap locals:
      StackMap stack:
            aload 0 /* this */
            aload 1 /* context */
            aload 2 /* args */
            iconst_0
            aaload
            aload 2 /* args */
            iconst_1
            aaload
            invokevirtual org.jruby.ext.stringio.StringIO.readlines:(Lorg/jruby/runtime/ThreadContext;Lorg/jruby/runtime/builtin/IRubyObject;Lorg/jruby/runtime/builtin/IRubyObject;)Lorg/jruby/runtime/builtin/IRubyObject;
            areturn
         4: .line 934
      StackMap locals:
      StackMap stack:
            aload 0 /* this */
            aload 1 /* context */
            aload 2 /* args */
            iconst_0
            aaload
            aload 2 /* args */
            iconst_1
            aaload
            aload 2 /* args */
            iconst_2
            aaload
            invokevirtual org.jruby.ext.stringio.StringIO.readlines:(Lorg/jruby/runtime/ThreadContext;Lorg/jruby/runtime/builtin/IRubyObject;Lorg/jruby/runtime/builtin/IRubyObject;Lorg/jruby/runtime/builtin/IRubyObject;)Lorg/jruby/runtime/builtin/IRubyObject;
            areturn
         5: .line 936
      StackMap locals:
      StackMap stack:
            aload 1 /* context */
            aload 2 /* args */
            arraylength
            iconst_0
            iconst_3
            invokestatic org.jruby.runtime.Arity.raiseArgumentError:(Lorg/jruby/runtime/ThreadContext;III)V
         6: .line 937
            new java.lang.AssertionError
            dup
            ldc "BUG"
            invokespecial java.lang.AssertionError.<init>:(Ljava/lang/Object;)V
            athrow
        end local 2 // org.jruby.runtime.builtin.IRubyObject[] args
        end local 1 // org.jruby.runtime.ThreadContext context
        end local 0 // org.jruby.ext.stringio.StringIO this
      LocalVariableTable:
        Start  End  Slot     Name  Signature
            0    7     0     this  Lorg/jruby/ext/stringio/StringIO;
            0    7     1  context  Lorg/jruby/runtime/ThreadContext;
            0    7     2     args  [Lorg/jruby/runtime/builtin/IRubyObject;
    MethodParameters:
         Name  Flags
      context  
      args     

  public org.jruby.runtime.builtin.IRubyObject reopen(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=4, locals=3, args_size=3
        start local 0 // org.jruby.ext.stringio.StringIO this
        start local 1 // org.jruby.runtime.ThreadContext context
        start local 2 // org.jruby.runtime.builtin.IRubyObject[] args
         0: .line 944
            aload 0 /* this */
            invokevirtual org.jruby.ext.stringio.StringIO.checkFrozen:()V
         1: .line 946
            aload 2 /* args */
            arraylength
            iconst_1
            if_icmpne 3
            aload 2 /* args */
            iconst_0
            aaload
            instanceof org.jruby.RubyString
            ifne 3
         2: .line 947
            aload 0 /* this */
            aload 1 /* context */
            aload 2 /* args */
            iconst_0
            aaload
            invokevirtual org.jruby.ext.stringio.StringIO.initialize_copy:(Lorg/jruby/runtime/ThreadContext;Lorg/jruby/runtime/builtin/IRubyObject;)Lorg/jruby/runtime/builtin/IRubyObject;
            areturn
         3: .line 951
      StackMap locals:
      StackMap stack:
            aload 0 /* this */
            aload 1 /* context */
            aload 2 /* args */
            invokevirtual org.jruby.ext.stringio.StringIO.strioInit:(Lorg/jruby/runtime/ThreadContext;[Lorg/jruby/runtime/builtin/IRubyObject;)V
         4: .line 952
            aload 0 /* this */
            areturn
        end local 2 // org.jruby.runtime.builtin.IRubyObject[] args
        end local 1 // org.jruby.runtime.ThreadContext context
        end local 0 // org.jruby.ext.stringio.StringIO this
      LocalVariableTable:
        Start  End  Slot     Name  Signature
            0    5     0     this  Lorg/jruby/ext/stringio/StringIO;
            0    5     1  context  Lorg/jruby/runtime/ThreadContext;
            0    5     2     args  [Lorg/jruby/runtime/builtin/IRubyObject;
    RuntimeVisibleAnnotations: 
      org.jruby.anno.JRubyMethod(name = {"reopen"}, required = 0, optional = 2)
    MethodParameters:
         Name  Flags
      context  
      args     

  public org.jruby.runtime.builtin.IRubyObject rewind(org.jruby.runtime.ThreadContext);
    descriptor: (Lorg/jruby/runtime/ThreadContext;)Lorg/jruby/runtime/builtin/IRubyObject;
    flags: (0x0001) ACC_PUBLIC
    Code:
      stack=2, locals=4, args_size=2
        start local 0 // org.jruby.ext.stringio.StringIO this
        start local 1 // org.jruby.runtime.ThreadContext context
         0: .line 957
            aload 0 /* this */
            invokevirtual org.jruby.ext.stringio.StringIO.checkInitialized:()V
         1: .line 959
            aload 0 /* this */
            getfield org.jruby.ext.stringio.StringIO.ptr:Lorg/jruby/ext/stringio/StringIO$StringIOData;
            astore 2 /* ptr */
        start local 2 // org.jruby.ext.stringio.StringIO$StringIOData ptr
         2: .line 961
            aload 2 /* ptr */
            dup
            astore 3
            monitorenter
         3: .line 962
            aload 2 /* ptr */
            iconst_0
            putfield org.jruby.ext.stringio.StringIO$StringIOData.pos:I
         4: .line 963
            aload 2 /* ptr */
            iconst_0
            putfield org.jruby.ext.stringio.StringIO$StringIOData.lineno:I
         5: .line 961
            aload 3
            monitorexit
         6: goto 9
      StackMap locals: org.jruby.ext.stringio.StringIO org.jruby.runtime.ThreadContext org.jruby.ext.stringio.StringIO$StringIOData org.jruby.ext.stringio.StringIO$StringIOData
      StackMap stack: java.lang.Throwable
         7: aload 3
            monitorexit
         8: athrow
         9: .line 966
      StackMap locals:
      StackMap stack:
            aload 1 /* context */
            getfield org.jruby.runtime.ThreadContext.runtime:Lorg/jruby/Ruby;
            invokestatic org.jruby.RubyFixnum.zero:(Lorg/jruby/Ruby;)Lorg/jruby/RubyFixnum;
            areturn
        end local 2 // org.jruby.ext.stringio.StringIO$StringIOData ptr
        end local 1 // org.jruby.runtime.ThreadContext context
        end local 0 // org.jruby.ext.stringio.StringIO this
      LocalVariableTable:
        Start  End  Slot     Name  Signature
            0   10     0     this  Lorg/jruby/ext/stringio/StringIO;
            0   10     1  context  Lorg/jruby/runtime/ThreadContext;
            2   10     2      ptr  Lorg/jruby/ext/stringio/StringIO$StringIOData;
      Exception table:
        from    to  target  type
           3     6       7  any
           7     8       7  any
    RuntimeVisibleAnnotations: 
      org.jruby.anno.JRubyMethod(name = {"rewind"})
    MethodParameters:
         Name  Flags
      context  

  public org.jruby.runtime.builtin.IRubyObject seek(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=2, locals=8, args_size=3
        start local 0 // org.jruby.ext.stringio.StringIO this
        start local 1 // org.jruby.runtime.ThreadContext context
        start local 2 // org.jruby.runtime.builtin.IRubyObject[] args
         0: .line 971
            aload 1 /* context */
            getfield org.jruby.runtime.ThreadContext.runtime:Lorg/jruby/Ruby;
            astore 3 /* runtime */
        start local 3 // org.jruby.Ruby runtime
         1: .line 973
            aload 0 /* this */
            invokevirtual org.jruby.ext.stringio.StringIO.checkFrozen:()V
         2: .line 974
            aload 0 /* this */
            invokevirtual org.jruby.ext.stringio.StringIO.checkFinalized:()V
         3: .line 976
            aload 2 /* args */
            iconst_0
            aaload
            invokestatic org.jruby.RubyNumeric.num2int:(Lorg/jruby/runtime/builtin/IRubyObject;)I
            istore 4 /* offset */
        start local 4 // int offset
         4: .line 977
            aload 1 /* context */
            getfield org.jruby.runtime.ThreadContext.nil:Lorg/jruby/runtime/builtin/IRubyObject;
            astore 5 /* whence */
        start local 5 // org.jruby.runtime.builtin.IRubyObject whence
         5: .line 979
            aload 2 /* args */
            arraylength
            iconst_1
            if_icmple 6
            aload 2 /* args */
            iconst_0
            aaload
            invokeinterface org.jruby.runtime.builtin.IRubyObject.isNil:()Z
            ifne 6
            aload 2 /* args */
            iconst_1
            aaload
            astore 5 /* whence */
         6: .line 981
      StackMap locals: org.jruby.Ruby int org.jruby.runtime.builtin.IRubyObject
      StackMap stack:
            aload 0 /* this */
            invokevirtual org.jruby.ext.stringio.StringIO.checkOpen:()V
         7: .line 983
            aload 0 /* this */
            getfield org.jruby.ext.stringio.StringIO.ptr:Lorg/jruby/ext/stringio/StringIO$StringIOData;
            astore 6 /* ptr */
        start local 6 // org.jruby.ext.stringio.StringIO$StringIOData ptr
         8: .line 985
            aload 6 /* ptr */
            dup
            astore 7
            monitorenter
         9: .line 986
            aload 5 /* whence */
            invokeinterface org.jruby.runtime.builtin.IRubyObject.isNil:()Z
            ifeq 10
            iconst_0
            goto 11
      StackMap locals: org.jruby.ext.stringio.StringIO$StringIOData org.jruby.ext.stringio.StringIO$StringIOData
      StackMap stack:
        10: aload 5 /* whence */
            invokestatic org.jruby.RubyNumeric.num2int:(Lorg/jruby/runtime/builtin/IRubyObject;)I
      StackMap locals:
      StackMap stack: int
        11: tableswitch { // 0 - 2
                    0: 12
                    1: 13
                    2: 15
              default: 17
          }
        12: .line 988
      StackMap locals:
      StackMap stack:
            goto 18
        13: .line 990
      StackMap locals:
      StackMap stack:
            iload 4 /* offset */
            aload 6 /* ptr */
            getfield org.jruby.ext.stringio.StringIO$StringIOData.pos:I
            iadd
            istore 4 /* offset */
        14: .line 991
            goto 18
        15: .line 993
      StackMap locals:
      StackMap stack:
            iload 4 /* offset */
            aload 6 /* ptr */
            getfield org.jruby.ext.stringio.StringIO$StringIOData.string:Lorg/jruby/RubyString;
            invokevirtual org.jruby.RubyString.size:()I
            iadd
            istore 4 /* offset */
        16: .line 994
            goto 18
        17: .line 996
      StackMap locals:
      StackMap stack:
            aload 3 /* runtime */
            ldc "invalid whence"
            invokevirtual org.jruby.Ruby.newErrnoEINVALError:(Ljava/lang/String;)Lorg/jruby/exceptions/RaiseException;
            athrow
        18: .line 999
      StackMap locals:
      StackMap stack:
            iload 4 /* offset */
            ifge 19
            aload 3 /* runtime */
            ldc "invalid seek value"
            invokevirtual org.jruby.Ruby.newErrnoEINVALError:(Ljava/lang/String;)Lorg/jruby/exceptions/RaiseException;
            athrow
        19: .line 1001
      StackMap locals:
      StackMap stack:
            aload 6 /* ptr */
            iload 4 /* offset */
            putfield org.jruby.ext.stringio.StringIO$StringIOData.pos:I
        20: .line 985
            aload 7
            monitorexit
        21: goto 24
      StackMap locals:
      StackMap stack: java.lang.Throwable
        22: aload 7
            monitorexit
        23: athrow
        24: .line 1004
      StackMap locals:
      StackMap stack:
            aload 3 /* runtime */
            invokestatic org.jruby.RubyFixnum.zero:(Lorg/jruby/Ruby;)Lorg/jruby/RubyFixnum;
            areturn
        end local 6 // org.jruby.ext.stringio.StringIO$StringIOData ptr
        end local 5 // org.jruby.runtime.builtin.IRubyObject whence
        end local 4 // int offset
        end local 3 // org.jruby.Ruby runtime
        end local 2 // org.jruby.runtime.builtin.IRubyObject[] args
        end local 1 // org.jruby.runtime.ThreadContext context
        end local 0 // org.jruby.ext.stringio.StringIO this
      LocalVariableTable:
        Start  End  Slot     Name  Signature
            0   25     0     this  Lorg/jruby/ext/stringio/StringIO;
            0   25     1  context  Lorg/jruby/runtime/ThreadContext;
            0   25     2     args  [Lorg/jruby/runtime/builtin/IRubyObject;
            1   25     3  runtime  Lorg/jruby/Ruby;
            4   25     4   offset  I
            5   25     5   whence  Lorg/jruby/runtime/builtin/IRubyObject;
            8   25     6      ptr  Lorg/jruby/ext/stringio/StringIO$StringIOData;
      Exception table:
        from    to  target  type
           9    21      22  any
          22    23      22  any
    RuntimeVisibleAnnotations: 
      org.jruby.anno.JRubyMethod(required = 1, optional = 1)
    MethodParameters:
         Name  Flags
      context  
      args     

  public org.jruby.runtime.builtin.IRubyObject set_string(org.jruby.runtime.builtin.IRubyObject);
    descriptor: (Lorg/jruby/runtime/builtin/IRubyObject;)Lorg/jruby/runtime/builtin/IRubyObject;
    flags: (0x0001) ACC_PUBLIC
    Code:
      stack=3, locals=5, args_size=2
        start local 0 // org.jruby.ext.stringio.StringIO this
        start local 1 // org.jruby.runtime.builtin.IRubyObject arg
         0: .line 1009
            aload 0 /* this */
            invokevirtual org.jruby.ext.stringio.StringIO.checkFrozen:()V
         1: .line 1010
            aload 0 /* this */
            getfield org.jruby.ext.stringio.StringIO.ptr:Lorg/jruby/ext/stringio/StringIO$StringIOData;
            astore 2 /* ptr */
        start local 2 // org.jruby.ext.stringio.StringIO$StringIOData ptr
         2: .line 1012
            aload 2 /* ptr */
            dup
            astore 3
            monitorenter
         3: .line 1013
            aload 2 /* ptr */
            dup
            getfield org.jruby.ext.stringio.StringIO$StringIOData.flags:I
            bipush -4
            iand
            putfield org.jruby.ext.stringio.StringIO$StringIOData.flags:I
         4: .line 1014
            aload 1 /* arg */
            invokeinterface org.jruby.runtime.builtin.IRubyObject.convertToString:()Lorg/jruby/RubyString;
            astore 4 /* str */
        start local 4 // org.jruby.RubyString str
         5: .line 1015
            aload 2 /* ptr */
            aload 4 /* str */
            invokevirtual org.jruby.RubyString.isFrozen:()Z
            ifeq 6
            iconst_1
            goto 7
      StackMap locals: org.jruby.ext.stringio.StringIO org.jruby.runtime.builtin.IRubyObject org.jruby.ext.stringio.StringIO$StringIOData org.jruby.ext.stringio.StringIO$StringIOData org.jruby.RubyString
      StackMap stack: org.jruby.ext.stringio.StringIO$StringIOData
         6: iconst_3
      StackMap locals: org.jruby.ext.stringio.StringIO org.jruby.runtime.builtin.IRubyObject org.jruby.ext.stringio.StringIO$StringIOData org.jruby.ext.stringio.StringIO$StringIOData org.jruby.RubyString
      StackMap stack: org.jruby.ext.stringio.StringIO$StringIOData int
         7: putfield org.jruby.ext.stringio.StringIO$StringIOData.flags:I
         8: .line 1016
            aload 2 /* ptr */
            iconst_0
            putfield org.jruby.ext.stringio.StringIO$StringIOData.pos:I
         9: .line 1017
            aload 2 /* ptr */
            iconst_0
            putfield org.jruby.ext.stringio.StringIO$StringIOData.lineno:I
        10: .line 1018
            aload 2 /* ptr */
            aload 4 /* str */
            dup_x1
            putfield org.jruby.ext.stringio.StringIO$StringIOData.string:Lorg/jruby/RubyString;
            aload 3
            monitorexit
        11: areturn
        end local 4 // org.jruby.RubyString str
        12: .line 1012
      StackMap locals: org.jruby.ext.stringio.StringIO org.jruby.runtime.builtin.IRubyObject org.jruby.ext.stringio.StringIO$StringIOData org.jruby.ext.stringio.StringIO$StringIOData
      StackMap stack: java.lang.Throwable
            aload 3
            monitorexit
        13: athrow
        end local 2 // org.jruby.ext.stringio.StringIO$StringIOData ptr
        end local 1 // org.jruby.runtime.builtin.IRubyObject arg
        end local 0 // org.jruby.ext.stringio.StringIO this
      LocalVariableTable:
        Start  End  Slot  Name  Signature
            0   14     0  this  Lorg/jruby/ext/stringio/StringIO;
            0   14     1   arg  Lorg/jruby/runtime/builtin/IRubyObject;
            2   14     2   ptr  Lorg/jruby/ext/stringio/StringIO$StringIOData;
            5   12     4   str  Lorg/jruby/RubyString;
      Exception table:
        from    to  target  type
           3    11      12  any
          12    13      12  any
    RuntimeVisibleAnnotations: 
      org.jruby.anno.JRubyMethod(name = {"string="}, required = 1)
    MethodParameters:
      Name  Flags
      arg   

  public org.jruby.runtime.builtin.IRubyObject string(org.jruby.runtime.ThreadContext);
    descriptor: (Lorg/jruby/runtime/ThreadContext;)Lorg/jruby/runtime/builtin/IRubyObject;
    flags: (0x0001) ACC_PUBLIC
    Code:
      stack=1, locals=3, args_size=2
        start local 0 // org.jruby.ext.stringio.StringIO this
        start local 1 // org.jruby.runtime.ThreadContext context
         0: .line 1024
            aload 0 /* this */
            getfield org.jruby.ext.stringio.StringIO.ptr:Lorg/jruby/ext/stringio/StringIO$StringIOData;
            getfield org.jruby.ext.stringio.StringIO$StringIOData.string:Lorg/jruby/RubyString;
            astore 2 /* string */
        start local 2 // org.jruby.RubyString string
         1: .line 1025
            aload 2 /* string */
            ifnonnull 2
            aload 1 /* context */
            getfield org.jruby.runtime.ThreadContext.nil:Lorg/jruby/runtime/builtin/IRubyObject;
            areturn
         2: .line 1027
      StackMap locals: org.jruby.RubyString
      StackMap stack:
            aload 2 /* string */
            areturn
        end local 2 // org.jruby.RubyString string
        end local 1 // org.jruby.runtime.ThreadContext context
        end local 0 // org.jruby.ext.stringio.StringIO this
      LocalVariableTable:
        Start  End  Slot     Name  Signature
            0    3     0     this  Lorg/jruby/ext/stringio/StringIO;
            0    3     1  context  Lorg/jruby/runtime/ThreadContext;
            1    3     2   string  Lorg/jruby/RubyString;
    RuntimeVisibleAnnotations: 
      org.jruby.anno.JRubyMethod(name = {"string"})
    MethodParameters:
         Name  Flags
      context  

  public org.jruby.runtime.builtin.IRubyObject sync(org.jruby.runtime.ThreadContext);
    descriptor: (Lorg/jruby/runtime/ThreadContext;)Lorg/jruby/runtime/builtin/IRubyObject;
    flags: (0x0001) ACC_PUBLIC
    Code:
      stack=1, locals=2, args_size=2
        start local 0 // org.jruby.ext.stringio.StringIO this
        start local 1 // org.jruby.runtime.ThreadContext context
         0: .line 1032
            aload 0 /* this */
            invokevirtual org.jruby.ext.stringio.StringIO.checkInitialized:()V
         1: .line 1033
            aload 1 /* context */
            getfield org.jruby.runtime.ThreadContext.tru:Lorg/jruby/RubyBoolean;
            areturn
        end local 1 // org.jruby.runtime.ThreadContext context
        end local 0 // org.jruby.ext.stringio.StringIO this
      LocalVariableTable:
        Start  End  Slot     Name  Signature
            0    2     0     this  Lorg/jruby/ext/stringio/StringIO;
            0    2     1  context  Lorg/jruby/runtime/ThreadContext;
    RuntimeVisibleAnnotations: 
      org.jruby.anno.JRubyMethod(name = {"sync"})
    MethodParameters:
         Name  Flags
      context  

  public org.jruby.runtime.builtin.IRubyObject sysread(org.jruby.runtime.builtin.IRubyObject[]);
    descriptor: ([Lorg/jruby/runtime/builtin/IRubyObject;)Lorg/jruby/runtime/builtin/IRubyObject;
    flags: (0x0001) ACC_PUBLIC
    Code:
      stack=3, locals=2, args_size=2
        start local 0 // org.jruby.ext.stringio.StringIO this
        start local 1 // org.jruby.runtime.builtin.IRubyObject[] args
         0: .line 1038
            aload 0 /* this */
            invokevirtual org.jruby.ext.stringio.StringIO.getRuntime:()Lorg/jruby/Ruby;
            invokevirtual org.jruby.Ruby.getCurrentContext:()Lorg/jruby/runtime/ThreadContext;
            aload 0 /* this */
            aload 1 /* args */
            invokestatic org.jruby.ext.stringio.StringIO$GenericReadable.sysread:(Lorg/jruby/runtime/ThreadContext;Lorg/jruby/runtime/builtin/IRubyObject;[Lorg/jruby/runtime/builtin/IRubyObject;)Lorg/jruby/runtime/builtin/IRubyObject;
            areturn
        end local 1 // org.jruby.runtime.builtin.IRubyObject[] args
        end local 0 // org.jruby.ext.stringio.StringIO this
      LocalVariableTable:
        Start  End  Slot  Name  Signature
            0    1     0  this  Lorg/jruby/ext/stringio/StringIO;
            0    1     1  args  [Lorg/jruby/runtime/builtin/IRubyObject;
    MethodParameters:
      Name  Flags
      args  

  public org.jruby.runtime.builtin.IRubyObject truncate(org.jruby.runtime.builtin.IRubyObject);
    descriptor: (Lorg/jruby/runtime/builtin/IRubyObject;)Lorg/jruby/runtime/builtin/IRubyObject;
    flags: (0x0001) ACC_PUBLIC
    Code:
      stack=4, locals=8, args_size=2
        start local 0 // org.jruby.ext.stringio.StringIO this
        start local 1 // org.jruby.runtime.builtin.IRubyObject len
         0: .line 1043
            aload 0 /* this */
            invokevirtual org.jruby.ext.stringio.StringIO.checkWritable:()V
         1: .line 1045
            aload 1 /* len */
            invokestatic org.jruby.RubyFixnum.fix2int:(Lorg/jruby/runtime/builtin/IRubyObject;)I
            istore 2 /* l */
        start local 2 // int l
         2: .line 1046
            aload 0 /* this */
            getfield org.jruby.ext.stringio.StringIO.ptr:Lorg/jruby/ext/stringio/StringIO$StringIOData;
            astore 3 /* ptr */
        start local 3 // org.jruby.ext.stringio.StringIO$StringIOData ptr
         3: .line 1047
            aload 3 /* ptr */
            getfield org.jruby.ext.stringio.StringIO$StringIOData.string:Lorg/jruby/RubyString;
            astore 4 /* string */
        start local 4 // org.jruby.RubyString string
         4: .line 1049
            aload 3 /* ptr */
            dup
            astore 5
            monitorenter
         5: .line 1050
            aload 4 /* string */
            invokevirtual org.jruby.RubyString.size:()I
            istore 6 /* plen */
        start local 6 // int plen
         6: .line 1051
            iload 2 /* l */
            ifge 8
         7: .line 1052
            aload 0 /* this */
            invokevirtual org.jruby.ext.stringio.StringIO.getRuntime:()Lorg/jruby/Ruby;
            ldc "negative legnth"
            invokevirtual org.jruby.Ruby.newErrnoEINVALError:(Ljava/lang/String;)Lorg/jruby/exceptions/RaiseException;
            athrow
         8: .line 1054
      StackMap locals: org.jruby.ext.stringio.StringIO org.jruby.runtime.builtin.IRubyObject int org.jruby.ext.stringio.StringIO$StringIOData org.jruby.RubyString org.jruby.ext.stringio.StringIO$StringIOData int
      StackMap stack:
            aload 4 /* string */
            iload 2 /* l */
            invokevirtual org.jruby.RubyString.resize:(I)V
         9: .line 1055
            aload 4 /* string */
            invokevirtual org.jruby.RubyString.getByteList:()Lorg/jruby/util/ByteList;
            astore 7 /* buf */
        start local 7 // org.jruby.util.ByteList buf
        10: .line 1056
            iload 6 /* plen */
            iload 2 /* l */
            if_icmpge 12
        11: .line 1058
            aload 7 /* buf */
            invokevirtual org.jruby.util.ByteList.getUnsafeBytes:()[B
            aload 7 /* buf */
            invokevirtual org.jruby.util.ByteList.getBegin:()I
            iload 6 /* plen */
            iadd
            aload 7 /* buf */
            invokevirtual org.jruby.util.ByteList.getBegin:()I
            iload 2 /* l */
            iadd
            iconst_0
            invokestatic java.util.Arrays.fill:([BIIB)V
        end local 7 // org.jruby.util.ByteList buf
        end local 6 // int plen
        12: .line 1049
      StackMap locals:
      StackMap stack:
            aload 5
            monitorexit
        13: goto 16
      StackMap locals:
      StackMap stack: java.lang.Throwable
        14: aload 5
            monitorexit
        15: athrow
        16: .line 1062
      StackMap locals:
      StackMap stack:
            aload 1 /* len */
            areturn
        end local 4 // org.jruby.RubyString string
        end local 3 // org.jruby.ext.stringio.StringIO$StringIOData ptr
        end local 2 // int l
        end local 1 // org.jruby.runtime.builtin.IRubyObject len
        end local 0 // org.jruby.ext.stringio.StringIO this
      LocalVariableTable:
        Start  End  Slot    Name  Signature
            0   17     0    this  Lorg/jruby/ext/stringio/StringIO;
            0   17     1     len  Lorg/jruby/runtime/builtin/IRubyObject;
            2   17     2       l  I
            3   17     3     ptr  Lorg/jruby/ext/stringio/StringIO$StringIOData;
            4   17     4  string  Lorg/jruby/RubyString;
            6   12     6    plen  I
           10   12     7     buf  Lorg/jruby/util/ByteList;
      Exception table:
        from    to  target  type
           5    13      14  any
          14    15      14  any
    RuntimeVisibleAnnotations: 
      org.jruby.anno.JRubyMethod(name = {"truncate"}, required = 1)
    MethodParameters:
      Name  Flags
      len   

  public org.jruby.runtime.builtin.IRubyObject ungetc(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=4, locals=8, args_size=3
        start local 0 // org.jruby.ext.stringio.StringIO this
        start local 1 // org.jruby.runtime.ThreadContext context
        start local 2 // org.jruby.runtime.builtin.IRubyObject arg
         0: .line 1069
            aload 0 /* this */
            invokevirtual org.jruby.ext.stringio.StringIO.checkModifiable:()V
         1: .line 1070
            aload 0 /* this */
            invokevirtual org.jruby.ext.stringio.StringIO.checkReadable:()V
         2: .line 1072
            aload 2 /* arg */
            invokeinterface org.jruby.runtime.builtin.IRubyObject.isNil:()Z
            ifeq 3
            aload 2 /* arg */
            areturn
         3: .line 1073
      StackMap locals:
      StackMap stack:
            aload 2 /* arg */
            instanceof org.jruby.RubyInteger
            ifeq 12
         4: .line 1074
            aload 2 /* arg */
            invokestatic org.jruby.RubyNumeric.num2int:(Lorg/jruby/runtime/builtin/IRubyObject;)I
            istore 6 /* cc */
        start local 6 // int cc
         5: .line 1075
            bipush 16
            newarray 8
            astore 7 /* buf */
        start local 7 // byte[] buf
         6: .line 1077
            aload 0 /* this */
            invokevirtual org.jruby.ext.stringio.StringIO.getEncoding:()Lorg/jcodings/Encoding;
            astore 3 /* enc */
        start local 3 // org.jcodings.Encoding enc
         7: .line 1078
            aload 3 /* enc */
            iload 6 /* cc */
            invokevirtual org.jcodings.Encoding.codeToMbcLength:(I)I
            istore 5 /* len */
        start local 5 // int len
         8: .line 1079
            iload 5 /* len */
            ifgt 9
            aload 1 /* context */
            iload 6 /* cc */
            aload 3 /* enc */
            invokestatic org.jruby.util.io.EncodingUtils.encUintChr:(Lorg/jruby/runtime/ThreadContext;ILorg/jcodings/Encoding;)Lorg/jruby/RubyString;
            pop
         9: .line 1080
      StackMap locals: org.jruby.ext.stringio.StringIO org.jruby.runtime.ThreadContext org.jruby.runtime.builtin.IRubyObject org.jcodings.Encoding top int int byte[]
      StackMap stack:
            aload 3 /* enc */
            iload 6 /* cc */
            aload 7 /* buf */
            iconst_0
            invokevirtual org.jcodings.Encoding.codeToMbc:(I[BI)I
            pop
        10: .line 1081
            aload 0 /* this */
            aload 7 /* buf */
            iconst_0
            iload 5 /* len */
            invokevirtual org.jruby.ext.stringio.StringIO.ungetbyteCommon:([BII)V
        11: .line 1082
            aload 1 /* context */
            getfield org.jruby.runtime.ThreadContext.nil:Lorg/jruby/runtime/builtin/IRubyObject;
            areturn
        end local 7 // byte[] buf
        end local 6 // int cc
        end local 5 // int len
        end local 3 // org.jcodings.Encoding enc
        12: .line 1084
      StackMap locals: org.jruby.ext.stringio.StringIO org.jruby.runtime.ThreadContext org.jruby.runtime.builtin.IRubyObject
      StackMap stack:
            aload 2 /* arg */
            invokeinterface org.jruby.runtime.builtin.IRubyObject.convertToString:()Lorg/jruby/RubyString;
            astore 2 /* arg */
        13: .line 1085
            aload 0 /* this */
            invokevirtual org.jruby.ext.stringio.StringIO.getEncoding:()Lorg/jcodings/Encoding;
            astore 3 /* enc */
        start local 3 // org.jcodings.Encoding enc
        14: .line 1086
            aload 2 /* arg */
            checkcast org.jruby.RubyString
            astore 5 /* argStr */
        start local 5 // org.jruby.RubyString argStr
        15: .line 1087
            aload 5 /* argStr */
            invokevirtual org.jruby.RubyString.getEncoding:()Lorg/jcodings/Encoding;
            astore 4 /* enc2 */
        start local 4 // org.jcodings.Encoding enc2
        16: .line 1088
            aload 3 /* enc */
            aload 4 /* enc2 */
            if_acmpeq 18
            aload 3 /* enc */
            getstatic org.jcodings.specific.ASCIIEncoding.INSTANCE:Lorg/jcodings/specific/ASCIIEncoding;
            if_acmpeq 18
        17: .line 1089
            aload 1 /* context */
            aload 5 /* argStr */
            aload 4 /* enc2 */
            aload 3 /* enc */
            invokestatic org.jruby.util.io.EncodingUtils.strConvEnc:(Lorg/jruby/runtime/ThreadContext;Lorg/jruby/RubyString;Lorg/jcodings/Encoding;Lorg/jcodings/Encoding;)Lorg/jruby/RubyString;
            astore 5 /* argStr */
        18: .line 1091
      StackMap locals: org.jcodings.Encoding org.jcodings.Encoding org.jruby.RubyString
      StackMap stack:
            aload 5 /* argStr */
            invokevirtual org.jruby.RubyString.getByteList:()Lorg/jruby/util/ByteList;
            astore 6 /* argBytes */
        start local 6 // org.jruby.util.ByteList argBytes
        19: .line 1092
            aload 0 /* this */
            aload 6 /* argBytes */
            invokevirtual org.jruby.util.ByteList.unsafeBytes:()[B
            aload 6 /* argBytes */
            invokevirtual org.jruby.util.ByteList.begin:()I
            aload 6 /* argBytes */
            invokevirtual org.jruby.util.ByteList.realSize:()I
            invokevirtual org.jruby.ext.stringio.StringIO.ungetbyteCommon:([BII)V
        20: .line 1093
            aload 1 /* context */
            getfield org.jruby.runtime.ThreadContext.nil:Lorg/jruby/runtime/builtin/IRubyObject;
            areturn
        end local 6 // org.jruby.util.ByteList argBytes
        end local 5 // org.jruby.RubyString argStr
        end local 4 // org.jcodings.Encoding enc2
        end local 3 // org.jcodings.Encoding enc
        end local 2 // org.jruby.runtime.builtin.IRubyObject arg
        end local 1 // org.jruby.runtime.ThreadContext context
        end local 0 // org.jruby.ext.stringio.StringIO this
      LocalVariableTable:
        Start  End  Slot      Name  Signature
            0   21     0      this  Lorg/jruby/ext/stringio/StringIO;
            0   21     1   context  Lorg/jruby/runtime/ThreadContext;
            0   21     2       arg  Lorg/jruby/runtime/builtin/IRubyObject;
            7   12     3       enc  Lorg/jcodings/Encoding;
           14   21     3       enc  Lorg/jcodings/Encoding;
           16   21     4      enc2  Lorg/jcodings/Encoding;
            8   12     5       len  I
            5   12     6        cc  I
            6   12     7       buf  [B
           15   21     5    argStr  Lorg/jruby/RubyString;
           19   21     6  argBytes  Lorg/jruby/util/ByteList;
    RuntimeVisibleAnnotations: 
      org.jruby.anno.JRubyMethod(name = {"ungetc"})
    MethodParameters:
         Name  Flags
      context  
      arg      

  private void ungetbyteCommon(int);
    descriptor: (I)V
    flags: (0x0002) ACC_PRIVATE
    Code:
      stack=3, locals=5, args_size=2
        start local 0 // org.jruby.ext.stringio.StringIO this
        start local 1 // int c
         0: .line 1098
            aload 0 /* this */
            getfield org.jruby.ext.stringio.StringIO.ptr:Lorg/jruby/ext/stringio/StringIO$StringIOData;
            astore 2 /* ptr */
        start local 2 // org.jruby.ext.stringio.StringIO$StringIOData ptr
         1: .line 1100
            aload 2 /* ptr */
            dup
            astore 3
            monitorenter
         2: .line 1101
            aload 2 /* ptr */
            getfield org.jruby.ext.stringio.StringIO$StringIOData.string:Lorg/jruby/RubyString;
            invokevirtual org.jruby.RubyString.modify:()V
         3: .line 1102
            aload 2 /* ptr */
            dup
            getfield org.jruby.ext.stringio.StringIO$StringIOData.pos:I
            iconst_1
            isub
            putfield org.jruby.ext.stringio.StringIO$StringIOData.pos:I
         4: .line 1104
            aload 2 /* ptr */
            getfield org.jruby.ext.stringio.StringIO$StringIOData.string:Lorg/jruby/RubyString;
            invokevirtual org.jruby.RubyString.getByteList:()Lorg/jruby/util/ByteList;
            astore 4 /* bytes */
        start local 4 // org.jruby.util.ByteList bytes
         5: .line 1106
            aload 0 /* this */
            invokevirtual org.jruby.ext.stringio.StringIO.isEndOfString:()Z
            ifeq 6
            aload 4 /* bytes */
            aload 2 /* ptr */
            getfield org.jruby.ext.stringio.StringIO$StringIOData.pos:I
            iconst_1
            iadd
            invokevirtual org.jruby.util.ByteList.length:(I)V
         6: .line 1108
      StackMap locals: org.jruby.ext.stringio.StringIO$StringIOData org.jruby.ext.stringio.StringIO$StringIOData org.jruby.util.ByteList
      StackMap stack:
            aload 2 /* ptr */
            getfield org.jruby.ext.stringio.StringIO$StringIOData.pos:I
            iconst_m1
            if_icmpne 10
         7: .line 1109
            aload 4 /* bytes */
            iload 1 /* c */
            i2b
            invokevirtual org.jruby.util.ByteList.prepend:(B)V
         8: .line 1110
            aload 2 /* ptr */
            iconst_0
            putfield org.jruby.ext.stringio.StringIO$StringIOData.pos:I
         9: .line 1111
            goto 11
        10: .line 1112
      StackMap locals:
      StackMap stack:
            aload 4 /* bytes */
            aload 2 /* ptr */
            getfield org.jruby.ext.stringio.StringIO$StringIOData.pos:I
            iload 1 /* c */
            invokevirtual org.jruby.util.ByteList.set:(II)V
        end local 4 // org.jruby.util.ByteList bytes
        11: .line 1100
      StackMap locals:
      StackMap stack:
            aload 3
            monitorexit
        12: goto 15
      StackMap locals:
      StackMap stack: java.lang.Throwable
        13: aload 3
            monitorexit
        14: athrow
        15: .line 1115
      StackMap locals:
      StackMap stack:
            return
        end local 2 // org.jruby.ext.stringio.StringIO$StringIOData ptr
        end local 1 // int c
        end local 0 // org.jruby.ext.stringio.StringIO this
      LocalVariableTable:
        Start  End  Slot   Name  Signature
            0   16     0   this  Lorg/jruby/ext/stringio/StringIO;
            0   16     1      c  I
            1   16     2    ptr  Lorg/jruby/ext/stringio/StringIO$StringIOData;
            5   11     4  bytes  Lorg/jruby/util/ByteList;
      Exception table:
        from    to  target  type
           2    12      13  any
          13    14      13  any
    MethodParameters:
      Name  Flags
      c     

  private void ungetbyteCommon(org.jruby.RubyString);
    descriptor: (Lorg/jruby/RubyString;)V
    flags: (0x0002) ACC_PRIVATE
    Code:
      stack=4, locals=3, args_size=2
        start local 0 // org.jruby.ext.stringio.StringIO this
        start local 1 // org.jruby.RubyString ungetBytes
         0: .line 1118
            aload 1 /* ungetBytes */
            invokevirtual org.jruby.RubyString.getByteList:()Lorg/jruby/util/ByteList;
            astore 2 /* ungetByteList */
        start local 2 // org.jruby.util.ByteList ungetByteList
         1: .line 1119
            aload 0 /* this */
            aload 2 /* ungetByteList */
            invokevirtual org.jruby.util.ByteList.unsafeBytes:()[B
            aload 2 /* ungetByteList */
            invokevirtual org.jruby.util.ByteList.begin:()I
            aload 2 /* ungetByteList */
            invokevirtual org.jruby.util.ByteList.realSize:()I
            invokevirtual org.jruby.ext.stringio.StringIO.ungetbyteCommon:([BII)V
         2: .line 1120
            return
        end local 2 // org.jruby.util.ByteList ungetByteList
        end local 1 // org.jruby.RubyString ungetBytes
        end local 0 // org.jruby.ext.stringio.StringIO this
      LocalVariableTable:
        Start  End  Slot           Name  Signature
            0    3     0           this  Lorg/jruby/ext/stringio/StringIO;
            0    3     1     ungetBytes  Lorg/jruby/RubyString;
            1    3     2  ungetByteList  Lorg/jruby/util/ByteList;
    MethodParameters:
            Name  Flags
      ungetBytes  

  private void ungetbyteCommon(byte[], int, int);
    descriptor: ([BII)V
    flags: (0x0002) ACC_PRIVATE
    Code:
      stack=6, locals=8, args_size=4
        start local 0 // org.jruby.ext.stringio.StringIO this
        start local 1 // byte[] ungetBytes
        start local 2 // int ungetBegin
        start local 3 // int ungetLen
         0: .line 1125
            iload 3 /* ungetLen */
            ifne 1
            return
         1: .line 1127
      StackMap locals:
      StackMap stack:
            aload 0 /* this */
            getfield org.jruby.ext.stringio.StringIO.ptr:Lorg/jruby/ext/stringio/StringIO$StringIOData;
            astore 5 /* ptr */
        start local 5 // org.jruby.ext.stringio.StringIO$StringIOData ptr
         2: .line 1129
            aload 5 /* ptr */
            dup
            astore 6
            monitorenter
         3: .line 1130
            aload 5 /* ptr */
            getfield org.jruby.ext.stringio.StringIO$StringIOData.string:Lorg/jruby/RubyString;
            invokevirtual org.jruby.RubyString.modify:()V
         4: .line 1132
            iload 3 /* ungetLen */
            aload 5 /* ptr */
            getfield org.jruby.ext.stringio.StringIO$StringIOData.pos:I
            if_icmple 7
         5: .line 1133
            iconst_0
            istore 4 /* start */
        start local 4 // int start
         6: .line 1134
            goto 8
        end local 4 // int start
         7: .line 1135
      StackMap locals: org.jruby.ext.stringio.StringIO byte[] int int top org.jruby.ext.stringio.StringIO$StringIOData org.jruby.ext.stringio.StringIO$StringIOData
      StackMap stack:
            aload 5 /* ptr */
            getfield org.jruby.ext.stringio.StringIO$StringIOData.pos:I
            iload 3 /* ungetLen */
            isub
            istore 4 /* start */
        start local 4 // int start
         8: .line 1138
      StackMap locals: org.jruby.ext.stringio.StringIO byte[] int int int org.jruby.ext.stringio.StringIO$StringIOData org.jruby.ext.stringio.StringIO$StringIOData
      StackMap stack:
            aload 5 /* ptr */
            getfield org.jruby.ext.stringio.StringIO$StringIOData.string:Lorg/jruby/RubyString;
            invokevirtual org.jruby.RubyString.getByteList:()Lorg/jruby/util/ByteList;
            astore 7 /* byteList */
        start local 7 // org.jruby.util.ByteList byteList
         9: .line 1140
            aload 0 /* this */
            invokevirtual org.jruby.ext.stringio.StringIO.isEndOfString:()Z
            ifeq 10
            aload 7 /* byteList */
            aload 5 /* ptr */
            getfield org.jruby.ext.stringio.StringIO$StringIOData.pos:I
            iload 3 /* ungetLen */
            invokestatic java.lang.Math.max:(II)I
            invokevirtual org.jruby.util.ByteList.length:(I)V
        10: .line 1142
      StackMap locals: org.jruby.util.ByteList
      StackMap stack:
            aload 7 /* byteList */
            iload 4 /* start */
            aload 5 /* ptr */
            getfield org.jruby.ext.stringio.StringIO$StringIOData.pos:I
            iload 4 /* start */
            isub
            aload 1 /* ungetBytes */
            iload 2 /* ungetBegin */
            iload 3 /* ungetLen */
            invokevirtual org.jruby.util.ByteList.replace:(II[BII)V
        11: .line 1144
            aload 5 /* ptr */
            iload 4 /* start */
            putfield org.jruby.ext.stringio.StringIO$StringIOData.pos:I
        end local 7 // org.jruby.util.ByteList byteList
        12: .line 1129
            aload 6
            monitorexit
        13: goto 16
        end local 4 // int start
      StackMap locals: org.jruby.ext.stringio.StringIO byte[] int int top org.jruby.ext.stringio.StringIO$StringIOData org.jruby.ext.stringio.StringIO$StringIOData
      StackMap stack: java.lang.Throwable
        14: aload 6
            monitorexit
        15: athrow
        start local 4 // int start
        16: .line 1146
      StackMap locals: org.jruby.ext.stringio.StringIO byte[] int int int org.jruby.ext.stringio.StringIO$StringIOData
      StackMap stack:
            return
        end local 5 // org.jruby.ext.stringio.StringIO$StringIOData ptr
        end local 4 // int start
        end local 3 // int ungetLen
        end local 2 // int ungetBegin
        end local 1 // byte[] ungetBytes
        end local 0 // org.jruby.ext.stringio.StringIO this
      LocalVariableTable:
        Start  End  Slot        Name  Signature
            0   17     0        this  Lorg/jruby/ext/stringio/StringIO;
            0   17     1  ungetBytes  [B
            0   17     2  ungetBegin  I
            0   17     3    ungetLen  I
            6    7     4       start  I
            8   14     4       start  I
           16   17     4       start  I
            2   17     5         ptr  Lorg/jruby/ext/stringio/StringIO$StringIOData;
            9   12     7    byteList  Lorg/jruby/util/ByteList;
      Exception table:
        from    to  target  type
           3    13      14  any
          14    15      14  any
    MethodParameters:
            Name  Flags
      ungetBytes  
      ungetBegin  
      ungetLen    

  public org.jruby.runtime.builtin.IRubyObject ungetbyte(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=2, locals=3, args_size=3
        start local 0 // org.jruby.ext.stringio.StringIO this
        start local 1 // org.jruby.runtime.ThreadContext context
        start local 2 // org.jruby.runtime.builtin.IRubyObject arg
         0: .line 1151
            aload 0 /* this */
            invokevirtual org.jruby.ext.stringio.StringIO.checkReadable:()V
         1: .line 1153
            aload 2 /* arg */
            invokeinterface org.jruby.runtime.builtin.IRubyObject.isNil:()Z
            ifeq 2
            aload 2 /* arg */
            areturn
         2: .line 1155
      StackMap locals:
      StackMap stack:
            aload 0 /* this */
            invokevirtual org.jruby.ext.stringio.StringIO.checkModifiable:()V
         3: .line 1157
            aload 2 /* arg */
            instanceof org.jruby.RubyFixnum
            ifeq 6
         4: .line 1158
            aload 0 /* this */
            aload 2 /* arg */
            invokestatic org.jruby.RubyNumeric.fix2int:(Lorg/jruby/runtime/builtin/IRubyObject;)I
            invokevirtual org.jruby.ext.stringio.StringIO.ungetbyteCommon:(I)V
         5: .line 1159
            goto 7
         6: .line 1160
      StackMap locals:
      StackMap stack:
            aload 0 /* this */
            aload 2 /* arg */
            invokeinterface org.jruby.runtime.builtin.IRubyObject.convertToString:()Lorg/jruby/RubyString;
            invokevirtual org.jruby.ext.stringio.StringIO.ungetbyteCommon:(Lorg/jruby/RubyString;)V
         7: .line 1163
      StackMap locals:
      StackMap stack:
            aload 1 /* context */
            getfield org.jruby.runtime.ThreadContext.nil:Lorg/jruby/runtime/builtin/IRubyObject;
            areturn
        end local 2 // org.jruby.runtime.builtin.IRubyObject arg
        end local 1 // org.jruby.runtime.ThreadContext context
        end local 0 // org.jruby.ext.stringio.StringIO this
      LocalVariableTable:
        Start  End  Slot     Name  Signature
            0    8     0     this  Lorg/jruby/ext/stringio/StringIO;
            0    8     1  context  Lorg/jruby/runtime/ThreadContext;
            0    8     2      arg  Lorg/jruby/runtime/builtin/IRubyObject;
    RuntimeVisibleAnnotations: 
      org.jruby.anno.JRubyMethod()
    MethodParameters:
         Name  Flags
      context  
      arg      

  public org.jruby.runtime.builtin.IRubyObject write(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=4, args_size=3
        start local 0 // org.jruby.ext.stringio.StringIO this
        start local 1 // org.jruby.runtime.ThreadContext context
        start local 2 // org.jruby.runtime.builtin.IRubyObject arg
         0: .line 1169
            aload 1 /* context */
            getfield org.jruby.runtime.ThreadContext.runtime:Lorg/jruby/Ruby;
            astore 3 /* runtime */
        start local 3 // org.jruby.Ruby runtime
         1: .line 1170
            aload 3 /* runtime */
            aload 0 /* this */
            aload 1 /* context */
            aload 3 /* runtime */
            aload 2 /* arg */
            invokevirtual org.jruby.ext.stringio.StringIO.stringIOWrite:(Lorg/jruby/runtime/ThreadContext;Lorg/jruby/Ruby;Lorg/jruby/runtime/builtin/IRubyObject;)J
            invokestatic org.jruby.RubyFixnum.newFixnum:(Lorg/jruby/Ruby;J)Lorg/jruby/RubyFixnum;
            areturn
        end local 3 // org.jruby.Ruby runtime
        end local 2 // org.jruby.runtime.builtin.IRubyObject arg
        end local 1 // org.jruby.runtime.ThreadContext context
        end local 0 // org.jruby.ext.stringio.StringIO this
      LocalVariableTable:
        Start  End  Slot     Name  Signature
            0    2     0     this  Lorg/jruby/ext/stringio/StringIO;
            0    2     1  context  Lorg/jruby/runtime/ThreadContext;
            0    2     2      arg  Lorg/jruby/runtime/builtin/IRubyObject;
            1    2     3  runtime  Lorg/jruby/Ruby;
    RuntimeVisibleAnnotations: 
      org.jruby.anno.JRubyMethod(name = {"write"})
    MethodParameters:
         Name  Flags
      context  
      arg      

  public org.jruby.runtime.builtin.IRubyObject write(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=6, locals=10, args_size=3
        start local 0 // org.jruby.ext.stringio.StringIO this
        start local 1 // org.jruby.runtime.ThreadContext context
        start local 2 // org.jruby.runtime.builtin.IRubyObject[] args
         0: .line 1175
            aload 1 /* context */
            getfield org.jruby.runtime.ThreadContext.runtime:Lorg/jruby/Ruby;
            astore 3 /* runtime */
        start local 3 // org.jruby.Ruby runtime
         1: .line 1176
            lconst_0
            lstore 4 /* len */
        start local 4 // long len
         2: .line 1177
            aload 2 /* args */
            dup
            astore 9
            arraylength
            istore 8
            iconst_0
            istore 7
            goto 6
      StackMap locals: org.jruby.ext.stringio.StringIO org.jruby.runtime.ThreadContext org.jruby.runtime.builtin.IRubyObject[] org.jruby.Ruby long top int int org.jruby.runtime.builtin.IRubyObject[]
      StackMap stack:
         3: aload 9
            iload 7
            aaload
            astore 6 /* arg */
        start local 6 // org.jruby.runtime.builtin.IRubyObject arg
         4: .line 1178
            lload 4 /* len */
            aload 0 /* this */
            aload 1 /* context */
            aload 3 /* runtime */
            aload 6 /* arg */
            invokevirtual org.jruby.ext.stringio.StringIO.stringIOWrite:(Lorg/jruby/runtime/ThreadContext;Lorg/jruby/Ruby;Lorg/jruby/runtime/builtin/IRubyObject;)J
            ladd
            lstore 4 /* len */
        end local 6 // org.jruby.runtime.builtin.IRubyObject arg
         5: .line 1177
            iinc 7 1
      StackMap locals:
      StackMap stack:
         6: iload 7
            iload 8
            if_icmplt 3
         7: .line 1180
            aload 3 /* runtime */
            lload 4 /* len */
            invokestatic org.jruby.RubyFixnum.newFixnum:(Lorg/jruby/Ruby;J)Lorg/jruby/RubyFixnum;
            areturn
        end local 4 // long len
        end local 3 // org.jruby.Ruby runtime
        end local 2 // org.jruby.runtime.builtin.IRubyObject[] args
        end local 1 // org.jruby.runtime.ThreadContext context
        end local 0 // org.jruby.ext.stringio.StringIO this
      LocalVariableTable:
        Start  End  Slot     Name  Signature
            0    8     0     this  Lorg/jruby/ext/stringio/StringIO;
            0    8     1  context  Lorg/jruby/runtime/ThreadContext;
            0    8     2     args  [Lorg/jruby/runtime/builtin/IRubyObject;
            1    8     3  runtime  Lorg/jruby/Ruby;
            2    8     4      len  J
            4    5     6      arg  Lorg/jruby/runtime/builtin/IRubyObject;
    RuntimeVisibleAnnotations: 
      org.jruby.anno.JRubyMethod(name = {"write"}, required = 1, rest = true)
    MethodParameters:
         Name  Flags
      context  
      args     

  private long stringIOWrite(org.jruby.runtime.ThreadContext, org.jruby.Ruby, org.jruby.runtime.builtin.IRubyObject);
    descriptor: (Lorg/jruby/runtime/ThreadContext;Lorg/jruby/Ruby;Lorg/jruby/runtime/builtin/IRubyObject;)J
    flags: (0x0002) ACC_PRIVATE
    Code:
      stack=5, locals=13, args_size=4
        start local 0 // org.jruby.ext.stringio.StringIO this
        start local 1 // org.jruby.runtime.ThreadContext context
        start local 2 // org.jruby.Ruby runtime
        start local 3 // org.jruby.runtime.builtin.IRubyObject arg
         0: .line 1185
            aload 0 /* this */
            invokevirtual org.jruby.ext.stringio.StringIO.checkWritable:()V
         1: .line 1187
            aload 3 /* arg */
            invokeinterface org.jruby.runtime.builtin.IRubyObject.asString:()Lorg/jruby/RubyString;
            astore 4 /* str */
        start local 4 // org.jruby.RubyString str
         2: .line 1190
            aload 0 /* this */
            getfield org.jruby.ext.stringio.StringIO.ptr:Lorg/jruby/ext/stringio/StringIO$StringIOData;
            astore 7 /* ptr */
        start local 7 // org.jruby.ext.stringio.StringIO$StringIOData ptr
         3: .line 1192
            aload 7 /* ptr */
            dup
            astore 8
            monitorenter
         4: .line 1193
            aload 0 /* this */
            invokevirtual org.jruby.ext.stringio.StringIO.getEncoding:()Lorg/jcodings/Encoding;
            astore 9 /* enc */
        start local 9 // org.jcodings.Encoding enc
         5: .line 1194
            aload 4 /* str */
            invokevirtual org.jruby.RubyString.getEncoding:()Lorg/jcodings/Encoding;
            astore 10 /* encStr */
        start local 10 // org.jcodings.Encoding encStr
         6: .line 1195
            aload 9 /* enc */
            aload 10 /* encStr */
            if_acmpeq 9
            aload 9 /* enc */
            aload 2 /* runtime */
            invokestatic org.jruby.util.io.EncodingUtils.ascii8bitEncoding:(Lorg/jruby/Ruby;)Lorg/jcodings/Encoding;
            if_acmpeq 9
         7: .line 1197
            aload 10 /* encStr */
            getstatic org.jcodings.specific.ASCIIEncoding.INSTANCE:Lorg/jcodings/specific/ASCIIEncoding;
            if_acmpeq 9
         8: .line 1198
            aload 1 /* context */
            aload 4 /* str */
            aload 10 /* encStr */
            aload 9 /* enc */
            invokestatic org.jruby.util.io.EncodingUtils.strConvEnc:(Lorg/jruby/runtime/ThreadContext;Lorg/jruby/RubyString;Lorg/jcodings/Encoding;Lorg/jcodings/Encoding;)Lorg/jruby/RubyString;
            astore 4 /* str */
         9: .line 1200
      StackMap locals: org.jruby.ext.stringio.StringIO org.jruby.runtime.ThreadContext org.jruby.Ruby org.jruby.runtime.builtin.IRubyObject org.jruby.RubyString top top org.jruby.ext.stringio.StringIO$StringIOData org.jruby.ext.stringio.StringIO$StringIOData org.jcodings.Encoding org.jcodings.Encoding
      StackMap stack:
            aload 4 /* str */
            invokevirtual org.jruby.RubyString.getByteList:()Lorg/jruby/util/ByteList;
            astore 11 /* strByteList */
        start local 11 // org.jruby.util.ByteList strByteList
        10: .line 1201
            aload 4 /* str */
            invokevirtual org.jruby.RubyString.size:()I
            istore 5 /* len */
        start local 5 // int len
        11: .line 1202
            iload 5 /* len */
            ifne 13
            aload 8
            monitorexit
        12: lconst_0
            lreturn
        13: .line 1203
      StackMap locals: org.jruby.ext.stringio.StringIO org.jruby.runtime.ThreadContext org.jruby.Ruby org.jruby.runtime.builtin.IRubyObject org.jruby.RubyString int top org.jruby.ext.stringio.StringIO$StringIOData org.jruby.ext.stringio.StringIO$StringIOData org.jcodings.Encoding org.jcodings.Encoding org.jruby.util.ByteList
      StackMap stack:
            aload 0 /* this */
            invokevirtual org.jruby.ext.stringio.StringIO.checkModifiable:()V
        14: .line 1204
            aload 7 /* ptr */
            getfield org.jruby.ext.stringio.StringIO$StringIOData.string:Lorg/jruby/RubyString;
            invokevirtual org.jruby.RubyString.size:()I
            istore 6 /* olen */
        start local 6 // int olen
        15: .line 1205
            aload 7 /* ptr */
            getfield org.jruby.ext.stringio.StringIO$StringIOData.flags:I
            bipush 64
            iand
            ifeq 17
        16: .line 1206
            aload 7 /* ptr */
            iload 6 /* olen */
            putfield org.jruby.ext.stringio.StringIO$StringIOData.pos:I
        17: .line 1208
      StackMap locals: org.jruby.ext.stringio.StringIO org.jruby.runtime.ThreadContext org.jruby.Ruby org.jruby.runtime.builtin.IRubyObject org.jruby.RubyString int int org.jruby.ext.stringio.StringIO$StringIOData org.jruby.ext.stringio.StringIO$StringIOData org.jcodings.Encoding org.jcodings.Encoding org.jruby.util.ByteList
      StackMap stack:
            aload 7 /* ptr */
            getfield org.jruby.ext.stringio.StringIO$StringIOData.pos:I
            iload 6 /* olen */
            if_icmpne 20
        18: .line 1209
            aload 2 /* runtime */
            aload 7 /* ptr */
            getfield org.jruby.ext.stringio.StringIO$StringIOData.string:Lorg/jruby/RubyString;
            aload 11 /* strByteList */
            aload 9 /* enc */
            invokestatic org.jruby.util.io.EncodingUtils.encStrBufCat:(Lorg/jruby/Ruby;Lorg/jruby/RubyString;Lorg/jruby/util/ByteList;Lorg/jcodings/Encoding;)V
        19: .line 1210
            goto 23
        20: .line 1211
      StackMap locals:
      StackMap stack:
            aload 0 /* this */
            aload 7 /* ptr */
            getfield org.jruby.ext.stringio.StringIO$StringIOData.pos:I
            iload 5 /* len */
            invokevirtual org.jruby.ext.stringio.StringIO.strioExtend:(II)V
        21: .line 1212
            aload 7 /* ptr */
            getfield org.jruby.ext.stringio.StringIO$StringIOData.string:Lorg/jruby/RubyString;
            invokevirtual org.jruby.RubyString.getByteList:()Lorg/jruby/util/ByteList;
            astore 12 /* ptrByteList */
        start local 12 // org.jruby.util.ByteList ptrByteList
        22: .line 1213
            aload 11 /* strByteList */
            invokevirtual org.jruby.util.ByteList.getUnsafeBytes:()[B
            aload 11 /* strByteList */
            invokevirtual org.jruby.util.ByteList.getBegin:()I
            aload 12 /* ptrByteList */
            invokevirtual org.jruby.util.ByteList.getUnsafeBytes:()[B
            aload 12 /* ptrByteList */
            invokevirtual org.jruby.util.ByteList.begin:()I
            aload 7 /* ptr */
            getfield org.jruby.ext.stringio.StringIO$StringIOData.pos:I
            iadd
            iload 5 /* len */
            invokestatic java.lang.System.arraycopy:(Ljava/lang/Object;ILjava/lang/Object;II)V
        end local 12 // org.jruby.util.ByteList ptrByteList
        23: .line 1215
      StackMap locals:
      StackMap stack:
            aload 7 /* ptr */
            getfield org.jruby.ext.stringio.StringIO$StringIOData.string:Lorg/jruby/RubyString;
            aload 4 /* str */
            invokevirtual org.jruby.RubyString.infectBy:(Lorg/jruby/runtime/builtin/IRubyObject;)Lorg/jruby/runtime/builtin/IRubyObject;
            pop
        24: .line 1216
            aload 7 /* ptr */
            getfield org.jruby.ext.stringio.StringIO$StringIOData.string:Lorg/jruby/RubyString;
            aload 0 /* this */
            invokevirtual org.jruby.RubyString.infectBy:(Lorg/jruby/runtime/builtin/IRubyObject;)Lorg/jruby/runtime/builtin/IRubyObject;
            pop
        25: .line 1217
            aload 7 /* ptr */
            dup
            getfield org.jruby.ext.stringio.StringIO$StringIOData.pos:I
            iload 5 /* len */
            iadd
            putfield org.jruby.ext.stringio.StringIO$StringIOData.pos:I
        end local 11 // org.jruby.util.ByteList strByteList
        end local 10 // org.jcodings.Encoding encStr
        end local 9 // org.jcodings.Encoding enc
        26: .line 1192
            aload 8
            monitorexit
        27: goto 30
        end local 6 // int olen
        end local 5 // int len
      StackMap locals: org.jruby.ext.stringio.StringIO org.jruby.runtime.ThreadContext org.jruby.Ruby org.jruby.runtime.builtin.IRubyObject org.jruby.RubyString top top org.jruby.ext.stringio.StringIO$StringIOData org.jruby.ext.stringio.StringIO$StringIOData
      StackMap stack: java.lang.Throwable
        28: aload 8
            monitorexit
        29: athrow
        start local 5 // int len
        start local 6 // int olen
        30: .line 1220
      StackMap locals: org.jruby.ext.stringio.StringIO org.jruby.runtime.ThreadContext org.jruby.Ruby org.jruby.runtime.builtin.IRubyObject org.jruby.RubyString int int org.jruby.ext.stringio.StringIO$StringIOData
      StackMap stack:
            iload 5 /* len */
            i2l
            lreturn
        end local 7 // org.jruby.ext.stringio.StringIO$StringIOData ptr
        end local 6 // int olen
        end local 5 // int len
        end local 4 // org.jruby.RubyString str
        end local 3 // org.jruby.runtime.builtin.IRubyObject arg
        end local 2 // org.jruby.Ruby runtime
        end local 1 // org.jruby.runtime.ThreadContext context
        end local 0 // org.jruby.ext.stringio.StringIO this
      LocalVariableTable:
        Start  End  Slot         Name  Signature
            0   31     0         this  Lorg/jruby/ext/stringio/StringIO;
            0   31     1      context  Lorg/jruby/runtime/ThreadContext;
            0   31     2      runtime  Lorg/jruby/Ruby;
            0   31     3          arg  Lorg/jruby/runtime/builtin/IRubyObject;
            2   31     4          str  Lorg/jruby/RubyString;
           11   28     5          len  I
           30   31     5          len  I
           15   28     6         olen  I
           30   31     6         olen  I
            3   31     7          ptr  Lorg/jruby/ext/stringio/StringIO$StringIOData;
            5   26     9          enc  Lorg/jcodings/Encoding;
            6   26    10       encStr  Lorg/jcodings/Encoding;
           10   26    11  strByteList  Lorg/jruby/util/ByteList;
           22   23    12  ptrByteList  Lorg/jruby/util/ByteList;
      Exception table:
        from    to  target  type
           4    12      28  any
          13    27      28  any
          28    29      28  any
    MethodParameters:
         Name  Flags
      context  
      runtime  
      arg      

  public org.jruby.runtime.builtin.IRubyObject set_encoding(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=2, locals=7, args_size=3
        start local 0 // org.jruby.ext.stringio.StringIO this
        start local 1 // org.jruby.runtime.ThreadContext context
        start local 2 // org.jruby.runtime.builtin.IRubyObject ext_enc
         0: .line 1226
            aload 2 /* ext_enc */
            invokeinterface org.jruby.runtime.builtin.IRubyObject.isNil:()Z
            ifeq 3
         1: .line 1227
            aload 1 /* context */
            getfield org.jruby.runtime.ThreadContext.runtime:Lorg/jruby/Ruby;
            invokestatic org.jruby.util.io.EncodingUtils.defaultExternalEncoding:(Lorg/jruby/Ruby;)Lorg/jcodings/Encoding;
            astore 3 /* enc */
        start local 3 // org.jcodings.Encoding enc
         2: .line 1228
            goto 4
        end local 3 // org.jcodings.Encoding enc
         3: .line 1229
      StackMap locals:
      StackMap stack:
            aload 1 /* context */
            aload 2 /* ext_enc */
            invokestatic org.jruby.util.io.EncodingUtils.rbToEncoding:(Lorg/jruby/runtime/ThreadContext;Lorg/jruby/runtime/builtin/IRubyObject;)Lorg/jcodings/Encoding;
            astore 3 /* enc */
        start local 3 // org.jcodings.Encoding enc
         4: .line 1232
      StackMap locals: org.jcodings.Encoding
      StackMap stack:
            aload 0 /* this */
            getfield org.jruby.ext.stringio.StringIO.ptr:Lorg/jruby/ext/stringio/StringIO$StringIOData;
            astore 4 /* ptr */
        start local 4 // org.jruby.ext.stringio.StringIO$StringIOData ptr
         5: .line 1234
            aload 4 /* ptr */
            dup
            astore 5
            monitorenter
         6: .line 1235
            aload 4 /* ptr */
            aload 3 /* enc */
            putfield org.jruby.ext.stringio.StringIO$StringIOData.enc:Lorg/jcodings/Encoding;
         7: .line 1239
            aload 0 /* this */
            invokevirtual org.jruby.ext.stringio.StringIO.writable:()Z
            ifeq 11
            aload 4 /* ptr */
            getfield org.jruby.ext.stringio.StringIO$StringIOData.string:Lorg/jruby/RubyString;
            dup
            astore 6 /* string */
        start local 6 // org.jruby.RubyString string
         8: invokevirtual org.jruby.RubyString.getEncoding:()Lorg/jcodings/Encoding;
            aload 3 /* enc */
            if_acmpeq 11
         9: .line 1240
            aload 6 /* string */
            invokevirtual org.jruby.RubyString.modify:()V
        10: .line 1241
            aload 6 /* string */
            aload 3 /* enc */
            invokevirtual org.jruby.RubyString.setEncoding:(Lorg/jcodings/Encoding;)V
        end local 6 // org.jruby.RubyString string
        11: .line 1234
      StackMap locals: org.jruby.ext.stringio.StringIO$StringIOData org.jruby.ext.stringio.StringIO$StringIOData
      StackMap stack:
            aload 5
            monitorexit
        12: goto 15
      StackMap locals:
      StackMap stack: java.lang.Throwable
        13: aload 5
            monitorexit
        14: athrow
        15: .line 1245
      StackMap locals:
      StackMap stack:
            aload 0 /* this */
            areturn
        end local 4 // org.jruby.ext.stringio.StringIO$StringIOData ptr
        end local 3 // org.jcodings.Encoding enc
        end local 2 // org.jruby.runtime.builtin.IRubyObject ext_enc
        end local 1 // org.jruby.runtime.ThreadContext context
        end local 0 // org.jruby.ext.stringio.StringIO this
      LocalVariableTable:
        Start  End  Slot     Name  Signature
            0   16     0     this  Lorg/jruby/ext/stringio/StringIO;
            0   16     1  context  Lorg/jruby/runtime/ThreadContext;
            0   16     2  ext_enc  Lorg/jruby/runtime/builtin/IRubyObject;
            2    3     3      enc  Lorg/jcodings/Encoding;
            4   16     3      enc  Lorg/jcodings/Encoding;
            5   16     4      ptr  Lorg/jruby/ext/stringio/StringIO$StringIOData;
            8   11     6   string  Lorg/jruby/RubyString;
      Exception table:
        from    to  target  type
           6    12      13  any
          13    14      13  any
    RuntimeVisibleAnnotations: 
      org.jruby.anno.JRubyMethod()
    MethodParameters:
         Name  Flags
      context  
      ext_enc  

  public org.jruby.runtime.builtin.IRubyObject set_encoding(org.jruby.runtime.ThreadContext, org.jruby.runtime.builtin.IRubyObject, org.jruby.runtime.builtin.IRubyObject);
    descriptor: (Lorg/jruby/runtime/ThreadContext;Lorg/jruby/runtime/builtin/IRubyObject;Lorg/jruby/runtime/builtin/IRubyObject;)Lorg/jruby/runtime/builtin/IRubyObject;
    flags: (0x0001) ACC_PUBLIC
    Code:
      stack=3, locals=4, args_size=4
        start local 0 // org.jruby.ext.stringio.StringIO this
        start local 1 // org.jruby.runtime.ThreadContext context
        start local 2 // org.jruby.runtime.builtin.IRubyObject enc
        start local 3 // org.jruby.runtime.builtin.IRubyObject ignored
         0: .line 1250
            aload 0 /* this */
            aload 1 /* context */
            aload 2 /* enc */
            invokevirtual org.jruby.ext.stringio.StringIO.set_encoding:(Lorg/jruby/runtime/ThreadContext;Lorg/jruby/runtime/builtin/IRubyObject;)Lorg/jruby/runtime/builtin/IRubyObject;
            areturn
        end local 3 // org.jruby.runtime.builtin.IRubyObject ignored
        end local 2 // org.jruby.runtime.builtin.IRubyObject enc
        end local 1 // org.jruby.runtime.ThreadContext context
        end local 0 // org.jruby.ext.stringio.StringIO this
      LocalVariableTable:
        Start  End  Slot     Name  Signature
            0    1     0     this  Lorg/jruby/ext/stringio/StringIO;
            0    1     1  context  Lorg/jruby/runtime/ThreadContext;
            0    1     2      enc  Lorg/jruby/runtime/builtin/IRubyObject;
            0    1     3  ignored  Lorg/jruby/runtime/builtin/IRubyObject;
    RuntimeVisibleAnnotations: 
      org.jruby.anno.JRubyMethod()
    MethodParameters:
         Name  Flags
      context  
      enc      
      ignored  

  public org.jruby.runtime.builtin.IRubyObject set_encoding(org.jruby.runtime.ThreadContext, org.jruby.runtime.builtin.IRubyObject, org.jruby.runtime.builtin.IRubyObject, org.jruby.runtime.builtin.IRubyObject);
    descriptor: (Lorg/jruby/runtime/ThreadContext;Lorg/jruby/runtime/builtin/IRubyObject;Lorg/jruby/runtime/builtin/IRubyObject;Lorg/jruby/runtime/builtin/IRubyObject;)Lorg/jruby/runtime/builtin/IRubyObject;
    flags: (0x0001) ACC_PUBLIC
    Code:
      stack=3, locals=5, args_size=5
        start local 0 // org.jruby.ext.stringio.StringIO this
        start local 1 // org.jruby.runtime.ThreadContext context
        start local 2 // org.jruby.runtime.builtin.IRubyObject enc
        start local 3 // org.jruby.runtime.builtin.IRubyObject ignored1
        start local 4 // org.jruby.runtime.builtin.IRubyObject ignored2
         0: .line 1255
            aload 0 /* this */
            aload 1 /* context */
            aload 2 /* enc */
            invokevirtual org.jruby.ext.stringio.StringIO.set_encoding:(Lorg/jruby/runtime/ThreadContext;Lorg/jruby/runtime/builtin/IRubyObject;)Lorg/jruby/runtime/builtin/IRubyObject;
            areturn
        end local 4 // org.jruby.runtime.builtin.IRubyObject ignored2
        end local 3 // org.jruby.runtime.builtin.IRubyObject ignored1
        end local 2 // org.jruby.runtime.builtin.IRubyObject enc
        end local 1 // org.jruby.runtime.ThreadContext context
        end local 0 // org.jruby.ext.stringio.StringIO this
      LocalVariableTable:
        Start  End  Slot      Name  Signature
            0    1     0      this  Lorg/jruby/ext/stringio/StringIO;
            0    1     1   context  Lorg/jruby/runtime/ThreadContext;
            0    1     2       enc  Lorg/jruby/runtime/builtin/IRubyObject;
            0    1     3  ignored1  Lorg/jruby/runtime/builtin/IRubyObject;
            0    1     4  ignored2  Lorg/jruby/runtime/builtin/IRubyObject;
    RuntimeVisibleAnnotations: 
      org.jruby.anno.JRubyMethod()
    MethodParameters:
          Name  Flags
      context   
      enc       
      ignored1  
      ignored2  

  public org.jruby.runtime.builtin.IRubyObject external_encoding(org.jruby.runtime.ThreadContext);
    descriptor: (Lorg/jruby/runtime/ThreadContext;)Lorg/jruby/runtime/builtin/IRubyObject;
    flags: (0x0001) ACC_PUBLIC
    Code:
      stack=2, locals=2, args_size=2
        start local 0 // org.jruby.ext.stringio.StringIO this
        start local 1 // org.jruby.runtime.ThreadContext context
         0: .line 1260
            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 */
            invokevirtual org.jruby.ext.stringio.StringIO.getEncoding:()Lorg/jcodings/Encoding;
            invokevirtual org.jruby.runtime.encoding.EncodingService.convertEncodingToRubyEncoding:(Lorg/jcodings/Encoding;)Lorg/jruby/runtime/builtin/IRubyObject;
            areturn
        end local 1 // org.jruby.runtime.ThreadContext context
        end local 0 // org.jruby.ext.stringio.StringIO this
      LocalVariableTable:
        Start  End  Slot     Name  Signature
            0    1     0     this  Lorg/jruby/ext/stringio/StringIO;
            0    1     1  context  Lorg/jruby/runtime/ThreadContext;
    RuntimeVisibleAnnotations: 
      org.jruby.anno.JRubyMethod()
    MethodParameters:
         Name  Flags
      context  

  public org.jruby.runtime.builtin.IRubyObject internal_encoding(org.jruby.runtime.ThreadContext);
    descriptor: (Lorg/jruby/runtime/ThreadContext;)Lorg/jruby/runtime/builtin/IRubyObject;
    flags: (0x0001) ACC_PUBLIC
    Code:
      stack=1, locals=2, args_size=2
        start local 0 // org.jruby.ext.stringio.StringIO this
        start local 1 // org.jruby.runtime.ThreadContext context
         0: .line 1265
            aload 1 /* context */
            getfield org.jruby.runtime.ThreadContext.nil:Lorg/jruby/runtime/builtin/IRubyObject;
            areturn
        end local 1 // org.jruby.runtime.ThreadContext context
        end local 0 // org.jruby.ext.stringio.StringIO this
      LocalVariableTable:
        Start  End  Slot     Name  Signature
            0    1     0     this  Lorg/jruby/ext/stringio/StringIO;
            0    1     1  context  Lorg/jruby/runtime/ThreadContext;
    RuntimeVisibleAnnotations: 
      org.jruby.anno.JRubyMethod()
    MethodParameters:
         Name  Flags
      context  

  public org.jruby.runtime.builtin.IRubyObject each_codepoint(org.jruby.runtime.ThreadContext, org.jruby.runtime.Block);
    descriptor: (Lorg/jruby/runtime/ThreadContext;Lorg/jruby/runtime/Block;)Lorg/jruby/runtime/builtin/IRubyObject;
    flags: (0x0001) ACC_PUBLIC
    Code:
      stack=5, locals=12, args_size=3
        start local 0 // org.jruby.ext.stringio.StringIO this
        start local 1 // org.jruby.runtime.ThreadContext context
        start local 2 // org.jruby.runtime.Block block
         0: .line 1270
            aload 1 /* context */
            getfield org.jruby.runtime.ThreadContext.runtime:Lorg/jruby/Ruby;
            astore 3 /* runtime */
        start local 3 // org.jruby.Ruby runtime
         1: .line 1272
            aload 2 /* block */
            invokevirtual org.jruby.runtime.Block.isGiven:()Z
            ifne 2
            aload 3 /* runtime */
            aload 0 /* this */
            ldc "each_codepoint"
            invokestatic org.jruby.RubyEnumerator.enumeratorize:(Lorg/jruby/Ruby;Lorg/jruby/runtime/builtin/IRubyObject;Ljava/lang/String;)Lorg/jruby/runtime/builtin/IRubyObject;
            areturn
         2: .line 1274
      StackMap locals: org.jruby.Ruby
      StackMap stack:
            aload 0 /* this */
            invokevirtual org.jruby.ext.stringio.StringIO.checkReadable:()V
         3: .line 1276
            aload 0 /* this */
            getfield org.jruby.ext.stringio.StringIO.ptr:Lorg/jruby/ext/stringio/StringIO$StringIOData;
            astore 4 /* ptr */
        start local 4 // org.jruby.ext.stringio.StringIO$StringIOData ptr
         4: .line 1278
            aload 4 /* ptr */
            dup
            astore 5
            monitorenter
         5: .line 1279
            aload 0 /* this */
            invokevirtual org.jruby.ext.stringio.StringIO.getEncoding:()Lorg/jcodings/Encoding;
            astore 6 /* enc */
        start local 6 // org.jcodings.Encoding enc
         6: .line 1280
            aload 4 /* ptr */
            getfield org.jruby.ext.stringio.StringIO$StringIOData.string:Lorg/jruby/RubyString;
            invokevirtual org.jruby.RubyString.getByteList:()Lorg/jruby/util/ByteList;
            astore 7 /* string */
        start local 7 // org.jruby.util.ByteList string
         7: .line 1281
            aload 7 /* string */
            invokevirtual org.jruby.util.ByteList.getUnsafeBytes:()[B
            astore 8 /* stringBytes */
        start local 8 // byte[] stringBytes
         8: .line 1282
            aload 7 /* string */
            invokevirtual org.jruby.util.ByteList.getBegin:()I
            istore 9 /* begin */
        start local 9 // int begin
         9: .line 1284
      StackMap locals: org.jruby.ext.stringio.StringIO org.jruby.runtime.ThreadContext org.jruby.runtime.Block org.jruby.Ruby org.jruby.ext.stringio.StringIO$StringIOData org.jruby.ext.stringio.StringIO$StringIOData org.jcodings.Encoding org.jruby.util.ByteList byte[] int
      StackMap stack:
            aload 4 /* ptr */
            getfield org.jruby.ext.stringio.StringIO$StringIOData.pos:I
            aload 4 /* ptr */
            getfield org.jruby.ext.stringio.StringIO$StringIOData.string:Lorg/jruby/RubyString;
            invokevirtual org.jruby.RubyString.size:()I
            if_icmplt 11
            aload 0 /* this */
            aload 5
            monitorexit
        10: areturn
        11: .line 1286
      StackMap locals:
      StackMap stack:
            aload 3 /* runtime */
            aload 6 /* enc */
            aload 8 /* stringBytes */
            iload 9 /* begin */
            aload 4 /* ptr */
            getfield org.jruby.ext.stringio.StringIO$StringIOData.pos:I
            iadd
            aload 8 /* stringBytes */
            arraylength
            invokestatic org.jruby.util.StringSupport.codePoint:(Lorg/jruby/Ruby;Lorg/jcodings/Encoding;[BII)I
            istore 10 /* c */
        start local 10 // int c
        12: .line 1287
            aload 6 /* enc */
            iload 10 /* c */
            invokestatic org.jruby.util.StringSupport.codeLength:(Lorg/jcodings/Encoding;I)I
            istore 11 /* n */
        start local 11 // int n
        13: .line 1288
            aload 2 /* block */
            aload 1 /* context */
            aload 3 /* runtime */
            iload 10 /* c */
            invokevirtual org.jruby.Ruby.newFixnum:(I)Lorg/jruby/RubyFixnum;
            invokevirtual org.jruby.runtime.Block.yield:(Lorg/jruby/runtime/ThreadContext;Lorg/jruby/runtime/builtin/IRubyObject;)Lorg/jruby/runtime/builtin/IRubyObject;
            pop
        14: .line 1289
            aload 4 /* ptr */
            dup
            getfield org.jruby.ext.stringio.StringIO$StringIOData.pos:I
            iload 11 /* n */
            iadd
            putfield org.jruby.ext.stringio.StringIO$StringIOData.pos:I
        end local 11 // int n
        end local 10 // int c
        15: .line 1283
            goto 9
        end local 9 // int begin
        end local 8 // byte[] stringBytes
        end local 7 // org.jruby.util.ByteList string
        end local 6 // org.jcodings.Encoding enc
        16: .line 1278
      StackMap locals: org.jruby.ext.stringio.StringIO org.jruby.runtime.ThreadContext org.jruby.runtime.Block org.jruby.Ruby org.jruby.ext.stringio.StringIO$StringIOData org.jruby.ext.stringio.StringIO$StringIOData
      StackMap stack: java.lang.Throwable
            aload 5
            monitorexit
        17: athrow
        end local 4 // org.jruby.ext.stringio.StringIO$StringIOData ptr
        end local 3 // org.jruby.Ruby runtime
        end local 2 // org.jruby.runtime.Block block
        end local 1 // org.jruby.runtime.ThreadContext context
        end local 0 // org.jruby.ext.stringio.StringIO this
      LocalVariableTable:
        Start  End  Slot         Name  Signature
            0   18     0         this  Lorg/jruby/ext/stringio/StringIO;
            0   18     1      context  Lorg/jruby/runtime/ThreadContext;
            0   18     2        block  Lorg/jruby/runtime/Block;
            1   18     3      runtime  Lorg/jruby/Ruby;
            4   18     4          ptr  Lorg/jruby/ext/stringio/StringIO$StringIOData;
            6   16     6          enc  Lorg/jcodings/Encoding;
            7   16     7       string  Lorg/jruby/util/ByteList;
            8   16     8  stringBytes  [B
            9   16     9        begin  I
           12   15    10            c  I
           13   15    11            n  I
      Exception table:
        from    to  target  type
           5    10      16  any
          11    17      16  any
    RuntimeVisibleAnnotations: 
      org.jruby.anno.JRubyMethod(name = {"each_codepoint"})
    MethodParameters:
         Name  Flags
      context  
      block    

  public org.jruby.runtime.builtin.IRubyObject codepoints(org.jruby.runtime.ThreadContext, org.jruby.runtime.Block);
    descriptor: (Lorg/jruby/runtime/ThreadContext;Lorg/jruby/runtime/Block;)Lorg/jruby/runtime/builtin/IRubyObject;
    flags: (0x0001) ACC_PUBLIC
    Code:
      stack=3, locals=4, args_size=3
        start local 0 // org.jruby.ext.stringio.StringIO this
        start local 1 // org.jruby.runtime.ThreadContext context
        start local 2 // org.jruby.runtime.Block block
         0: .line 1296
            aload 1 /* context */
            getfield org.jruby.runtime.ThreadContext.runtime:Lorg/jruby/Ruby;
            astore 3 /* runtime */
        start local 3 // org.jruby.Ruby runtime
         1: .line 1297
            aload 3 /* runtime */
            invokevirtual org.jruby.Ruby.getWarnings:()Lorg/jruby/common/RubyWarnings;
            ldc "StringIO#codepoints is deprecated; use #each_codepoint"
            invokevirtual org.jruby.common.RubyWarnings.warn:(Ljava/lang/String;)V
         2: .line 1299
            aload 2 /* block */
            invokevirtual org.jruby.runtime.Block.isGiven:()Z
            ifne 3
            aload 3 /* runtime */
            aload 0 /* this */
            ldc "each_codepoint"
            invokestatic org.jruby.RubyEnumerator.enumeratorize:(Lorg/jruby/Ruby;Lorg/jruby/runtime/builtin/IRubyObject;Ljava/lang/String;)Lorg/jruby/runtime/builtin/IRubyObject;
            areturn
         3: .line 1301
      StackMap locals: org.jruby.Ruby
      StackMap stack:
            aload 0 /* this */
            aload 1 /* context */
            aload 2 /* block */
            invokevirtual org.jruby.ext.stringio.StringIO.each_codepoint:(Lorg/jruby/runtime/ThreadContext;Lorg/jruby/runtime/Block;)Lorg/jruby/runtime/builtin/IRubyObject;
            areturn
        end local 3 // org.jruby.Ruby runtime
        end local 2 // org.jruby.runtime.Block block
        end local 1 // org.jruby.runtime.ThreadContext context
        end local 0 // org.jruby.ext.stringio.StringIO this
      LocalVariableTable:
        Start  End  Slot     Name  Signature
            0    4     0     this  Lorg/jruby/ext/stringio/StringIO;
            0    4     1  context  Lorg/jruby/runtime/ThreadContext;
            0    4     2    block  Lorg/jruby/runtime/Block;
            1    4     3  runtime  Lorg/jruby/Ruby;
    RuntimeVisibleAnnotations: 
      org.jruby.anno.JRubyMethod(name = {"codepoints"})
    MethodParameters:
         Name  Flags
      context  
      block    

  public org.jruby.runtime.builtin.IRubyObject puts(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=3, locals=3, args_size=3
        start local 0 // org.jruby.ext.stringio.StringIO this
        start local 1 // org.jruby.runtime.ThreadContext context
        start local 2 // org.jruby.runtime.builtin.IRubyObject[] args
         0: .line 1451
            aload 1 /* context */
            aload 0 /* this */
            aload 2 /* args */
            invokestatic org.jruby.ext.stringio.StringIO$GenericWritable.puts:(Lorg/jruby/runtime/ThreadContext;Lorg/jruby/runtime/builtin/IRubyObject;[Lorg/jruby/runtime/builtin/IRubyObject;)Lorg/jruby/runtime/builtin/IRubyObject;
            areturn
        end local 2 // org.jruby.runtime.builtin.IRubyObject[] args
        end local 1 // org.jruby.runtime.ThreadContext context
        end local 0 // org.jruby.ext.stringio.StringIO this
      LocalVariableTable:
        Start  End  Slot     Name  Signature
            0    1     0     this  Lorg/jruby/ext/stringio/StringIO;
            0    1     1  context  Lorg/jruby/runtime/ThreadContext;
            0    1     2     args  [Lorg/jruby/runtime/builtin/IRubyObject;
    MethodParameters:
         Name  Flags
      context  
      args     

  public void checkFrozen();
    descriptor: ()V
    flags: (0x0001) ACC_PUBLIC
    Code:
      stack=1, locals=1, args_size=1
        start local 0 // org.jruby.ext.stringio.StringIO this
         0: .line 1456
            aload 0 /* this */
            invokespecial org.jruby.RubyObject.checkFrozen:()V
         1: .line 1457
            aload 0 /* this */
            invokevirtual org.jruby.ext.stringio.StringIO.checkInitialized:()V
         2: .line 1458
            return
        end local 0 // org.jruby.ext.stringio.StringIO this
      LocalVariableTable:
        Start  End  Slot  Name  Signature
            0    3     0  this  Lorg/jruby/ext/stringio/StringIO;

  private boolean readable();
    descriptor: ()Z
    flags: (0x0002) ACC_PRIVATE
    Code:
      stack=2, locals=1, args_size=1
        start local 0 // org.jruby.ext.stringio.StringIO this
         0: .line 1461
            aload 0 /* this */
            getfield org.jruby.ext.stringio.StringIO.flags:I
            getstatic org.jruby.ext.stringio.StringIO.STRIO_READABLE:I
            iand
            ifeq 3
         1: .line 1462
            aload 0 /* this */
            getfield org.jruby.ext.stringio.StringIO.ptr:Lorg/jruby/ext/stringio/StringIO$StringIOData;
            getfield org.jruby.ext.stringio.StringIO$StringIOData.flags:I
            iconst_1
            iand
            ifeq 3
         2: .line 1461
            iconst_1
            ireturn
      StackMap locals:
      StackMap stack:
         3: iconst_0
            ireturn
        end local 0 // org.jruby.ext.stringio.StringIO this
      LocalVariableTable:
        Start  End  Slot  Name  Signature
            0    4     0  this  Lorg/jruby/ext/stringio/StringIO;

  private boolean writable();
    descriptor: ()Z
    flags: (0x0002) ACC_PRIVATE
    Code:
      stack=2, locals=1, args_size=1
        start local 0 // org.jruby.ext.stringio.StringIO this
         0: .line 1466
            aload 0 /* this */
            getfield org.jruby.ext.stringio.StringIO.flags:I
            getstatic org.jruby.ext.stringio.StringIO.STRIO_WRITABLE:I
            iand
            ifeq 3
         1: .line 1467
            aload 0 /* this */
            getfield org.jruby.ext.stringio.StringIO.ptr:Lorg/jruby/ext/stringio/StringIO$StringIOData;
            getfield org.jruby.ext.stringio.StringIO$StringIOData.flags:I
            iconst_2
            iand
            ifeq 3
         2: .line 1466
            iconst_1
            ireturn
      StackMap locals:
      StackMap stack:
         3: iconst_0
            ireturn
        end local 0 // org.jruby.ext.stringio.StringIO this
      LocalVariableTable:
        Start  End  Slot  Name  Signature
            0    4     0  this  Lorg/jruby/ext/stringio/StringIO;

  private boolean closed();
    descriptor: ()Z
    flags: (0x0002) ACC_PRIVATE
    Code:
      stack=2, locals=1, args_size=1
        start local 0 // org.jruby.ext.stringio.StringIO this
         0: .line 1471
            aload 0 /* this */
            getfield org.jruby.ext.stringio.StringIO.flags:I
            getstatic org.jruby.ext.stringio.StringIO.STRIO_READWRITE:I
            iand
            ifeq 3
         1: .line 1472
            aload 0 /* this */
            getfield org.jruby.ext.stringio.StringIO.ptr:Lorg/jruby/ext/stringio/StringIO$StringIOData;
            getfield org.jruby.ext.stringio.StringIO$StringIOData.flags:I
            iconst_3
            iand
            ifeq 3
         2: .line 1471
            iconst_0
            goto 4
      StackMap locals:
      StackMap stack:
         3: iconst_1
      StackMap locals:
      StackMap stack: int
         4: ireturn
        end local 0 // org.jruby.ext.stringio.StringIO this
      LocalVariableTable:
        Start  End  Slot  Name  Signature
            0    5     0  this  Lorg/jruby/ext/stringio/StringIO;

  private void checkReadable();
    descriptor: ()V
    flags: (0x0002) ACC_PRIVATE
    Code:
      stack=2, locals=1, args_size=1
        start local 0 // org.jruby.ext.stringio.StringIO this
         0: .line 1477
            aload 0 /* this */
            invokevirtual org.jruby.ext.stringio.StringIO.checkInitialized:()V
         1: .line 1478
            aload 0 /* this */
            invokevirtual org.jruby.ext.stringio.StringIO.readable:()Z
            ifne 3
         2: .line 1479
            aload 0 /* this */
            invokevirtual org.jruby.ext.stringio.StringIO.getRuntime:()Lorg/jruby/Ruby;
            ldc "not opened for reading"
            invokevirtual org.jruby.Ruby.newIOError:(Ljava/lang/String;)Lorg/jruby/exceptions/RaiseException;
            athrow
         3: .line 1481
      StackMap locals:
      StackMap stack:
            return
        end local 0 // org.jruby.ext.stringio.StringIO this
      LocalVariableTable:
        Start  End  Slot  Name  Signature
            0    4     0  this  Lorg/jruby/ext/stringio/StringIO;

  private void checkWritable();
    descriptor: ()V
    flags: (0x0002) ACC_PRIVATE
    Code:
      stack=2, locals=1, args_size=1
        start local 0 // org.jruby.ext.stringio.StringIO this
         0: .line 1485
            aload 0 /* this */
            invokevirtual org.jruby.ext.stringio.StringIO.checkInitialized:()V
         1: .line 1486
            aload 0 /* this */
            invokevirtual org.jruby.ext.stringio.StringIO.writable:()Z
            ifne 3
         2: .line 1487
            aload 0 /* this */
            invokevirtual org.jruby.ext.stringio.StringIO.getRuntime:()Lorg/jruby/Ruby;
            ldc "not opened for writing"
            invokevirtual org.jruby.Ruby.newIOError:(Ljava/lang/String;)Lorg/jruby/exceptions/RaiseException;
            athrow
         3: .line 1491
      StackMap locals:
      StackMap stack:
            return
        end local 0 // org.jruby.ext.stringio.StringIO this
      LocalVariableTable:
        Start  End  Slot  Name  Signature
            0    4     0  this  Lorg/jruby/ext/stringio/StringIO;

  private void checkModifiable();
    descriptor: ()V
    flags: (0x0002) ACC_PRIVATE
    Code:
      stack=2, locals=1, args_size=1
        start local 0 // org.jruby.ext.stringio.StringIO this
         0: .line 1494
            aload 0 /* this */
            invokevirtual org.jruby.ext.stringio.StringIO.checkFrozen:()V
         1: .line 1495
            aload 0 /* this */
            getfield org.jruby.ext.stringio.StringIO.ptr:Lorg/jruby/ext/stringio/StringIO$StringIOData;
            getfield org.jruby.ext.stringio.StringIO$StringIOData.string:Lorg/jruby/RubyString;
            invokevirtual org.jruby.RubyString.isFrozen:()Z
            ifeq 2
            aload 0 /* this */
            invokevirtual org.jruby.ext.stringio.StringIO.getRuntime:()Lorg/jruby/Ruby;
            ldc "not modifiable string"
            invokevirtual org.jruby.Ruby.newIOError:(Ljava/lang/String;)Lorg/jruby/exceptions/RaiseException;
            athrow
         2: .line 1496
      StackMap locals:
      StackMap stack:
            return
        end local 0 // org.jruby.ext.stringio.StringIO this
      LocalVariableTable:
        Start  End  Slot  Name  Signature
            0    3     0  this  Lorg/jruby/ext/stringio/StringIO;

  private void checkInitialized();
    descriptor: ()V
    flags: (0x0002) ACC_PRIVATE
    Code:
      stack=2, locals=1, args_size=1
        start local 0 // org.jruby.ext.stringio.StringIO this
         0: .line 1499
            aload 0 /* this */
            getfield org.jruby.ext.stringio.StringIO.ptr:Lorg/jruby/ext/stringio/StringIO$StringIOData;
            ifnonnull 2
         1: .line 1500
            aload 0 /* this */
            invokevirtual org.jruby.ext.stringio.StringIO.getRuntime:()Lorg/jruby/Ruby;
            ldc "uninitialized stream"
            invokevirtual org.jruby.Ruby.newIOError:(Ljava/lang/String;)Lorg/jruby/exceptions/RaiseException;
            athrow
         2: .line 1502
      StackMap locals:
      StackMap stack:
            return
        end local 0 // org.jruby.ext.stringio.StringIO this
      LocalVariableTable:
        Start  End  Slot  Name  Signature
            0    3     0  this  Lorg/jruby/ext/stringio/StringIO;

  private void checkFinalized();
    descriptor: ()V
    flags: (0x0002) ACC_PRIVATE
    Code:
      stack=2, locals=1, args_size=1
        start local 0 // org.jruby.ext.stringio.StringIO this
         0: .line 1505
            aload 0 /* this */
            getfield org.jruby.ext.stringio.StringIO.ptr:Lorg/jruby/ext/stringio/StringIO$StringIOData;
            getfield org.jruby.ext.stringio.StringIO$StringIOData.string:Lorg/jruby/RubyString;
            ifnonnull 2
         1: .line 1506
            aload 0 /* this */
            invokevirtual org.jruby.ext.stringio.StringIO.getRuntime:()Lorg/jruby/Ruby;
            ldc "not opened"
            invokevirtual org.jruby.Ruby.newIOError:(Ljava/lang/String;)Lorg/jruby/exceptions/RaiseException;
            athrow
         2: .line 1508
      StackMap locals:
      StackMap stack:
            return
        end local 0 // org.jruby.ext.stringio.StringIO this
      LocalVariableTable:
        Start  End  Slot  Name  Signature
            0    3     0  this  Lorg/jruby/ext/stringio/StringIO;

  private void checkOpen();
    descriptor: ()V
    flags: (0x0002) ACC_PRIVATE
    Code:
      stack=2, locals=1, args_size=1
        start local 0 // org.jruby.ext.stringio.StringIO this
         0: .line 1511
            aload 0 /* this */
            invokevirtual org.jruby.ext.stringio.StringIO.closed:()Z
            ifeq 2
         1: .line 1512
            aload 0 /* this */
            invokevirtual org.jruby.ext.stringio.StringIO.getRuntime:()Lorg/jruby/Ruby;
            ldc "closed stream"
            invokevirtual org.jruby.Ruby.newIOError:(Ljava/lang/String;)Lorg/jruby/exceptions/RaiseException;
            athrow
         2: .line 1514
      StackMap locals:
      StackMap stack:
            return
        end local 0 // org.jruby.ext.stringio.StringIO this
      LocalVariableTable:
        Start  End  Slot  Name  Signature
            0    3     0  this  Lorg/jruby/ext/stringio/StringIO;
}
SourceFile: "StringIO.java"
NestMembers:
  org.jruby.ext.stringio.StringIO$1  org.jruby.ext.stringio.StringIO$2  org.jruby.ext.stringio.StringIO$3  org.jruby.ext.stringio.StringIO$4  org.jruby.ext.stringio.StringIO$GenericReadable  org.jruby.ext.stringio.StringIO$GenericWritable  org.jruby.ext.stringio.StringIO$StringIOData
InnerClasses:
  org.jruby.ext.stringio.StringIO$1
  org.jruby.ext.stringio.StringIO$2
  org.jruby.ext.stringio.StringIO$3
  org.jruby.ext.stringio.StringIO$4
  public GenericReadable = org.jruby.ext.stringio.StringIO$GenericReadable of org.jruby.ext.stringio.StringIO
  public GenericWritable = org.jruby.ext.stringio.StringIO$GenericWritable of org.jruby.ext.stringio.StringIO
  StringIOData = org.jruby.ext.stringio.StringIO$StringIOData of org.jruby.ext.stringio.StringIO
  public AnyIO = org.jruby.java.addons.IOJavaAddons$AnyIO of org.jruby.java.addons.IOJavaAddons
  public abstract Callback = org.jruby.util.io.Getline$Callback of org.jruby.util.io.Getline
    RuntimeVisibleAnnotations: 
      org.jruby.anno.JRubyClass(name = {"StringIO"})