abstract class org.jruby.util.io.EncodingUtils$AbstractTranscodeFallback implements org.jruby.util.io.EncodingUtils$TranscodeFallback<org.jruby.runtime.builtin.IRubyObject>
  minor version: 0
  major version: 59
  flags: flags: (0x0420) ACC_SUPER, ACC_ABSTRACT
  this_class: org.jruby.util.io.EncodingUtils$AbstractTranscodeFallback
  super_class: java.lang.Object
{
  private void <init>();
    descriptor: ()V
    flags: (0x0002) ACC_PRIVATE
    Code:
      stack=1, locals=1, args_size=1
        start local 0 // org.jruby.util.io.EncodingUtils$AbstractTranscodeFallback this
         0: .line 1222
            aload 0 /* this */
            invokespecial java.lang.Object.<init>:()V
            return
        end local 0 // org.jruby.util.io.EncodingUtils$AbstractTranscodeFallback this
      LocalVariableTable:
        Start  End  Slot  Name  Signature
            0    1     0  this  Lorg/jruby/util/io/EncodingUtils$AbstractTranscodeFallback;

  public boolean call(org.jruby.runtime.ThreadContext, org.jruby.runtime.builtin.IRubyObject, org.jcodings.transcode.EConv);
    descriptor: (Lorg/jruby/runtime/ThreadContext;Lorg/jruby/runtime/builtin/IRubyObject;Lorg/jcodings/transcode/EConv;)Z
    flags: (0x0001) ACC_PUBLIC
    Code:
      stack=8, locals=8, args_size=4
        start local 0 // org.jruby.util.io.EncodingUtils$AbstractTranscodeFallback this
        start local 1 // org.jruby.runtime.ThreadContext context
        start local 2 // org.jruby.runtime.builtin.IRubyObject fallback
        start local 3 // org.jcodings.transcode.EConv ec
         0: .line 1225
            aload 1 /* context */
            getfield org.jruby.runtime.ThreadContext.runtime:Lorg/jruby/Ruby;
            astore 4 /* runtime */
        start local 4 // org.jruby.Ruby runtime
         1: .line 1227
            aload 4 /* runtime */
         2: .line 1228
            new org.jruby.util.ByteList
            dup
         3: .line 1229
            aload 3 /* ec */
            getfield org.jcodings.transcode.EConv.lastError:Lorg/jcodings/transcode/EConv$LastError;
            invokevirtual org.jcodings.transcode.EConv$LastError.getErrorBytes:()[B
         4: .line 1230
            aload 3 /* ec */
            getfield org.jcodings.transcode.EConv.lastError:Lorg/jcodings/transcode/EConv$LastError;
            invokevirtual org.jcodings.transcode.EConv$LastError.getErrorBytesP:()I
         5: .line 1231
            aload 3 /* ec */
            getfield org.jcodings.transcode.EConv.lastError:Lorg/jcodings/transcode/EConv$LastError;
            invokevirtual org.jcodings.transcode.EConv$LastError.getErrorBytesLength:()I
         6: .line 1232
            aload 4 /* runtime */
            invokevirtual org.jruby.Ruby.getEncodingService:()Lorg/jruby/runtime/encoding/EncodingService;
            aload 3 /* ec */
            getfield org.jcodings.transcode.EConv.lastError:Lorg/jcodings/transcode/EConv$LastError;
            invokevirtual org.jcodings.transcode.EConv$LastError.getSource:()[B
            invokevirtual org.jruby.runtime.encoding.EncodingService.findEncodingOrAliasEntry:([B)Lorg/jcodings/EncodingDB$Entry;
            invokevirtual org.jcodings.EncodingDB$Entry.getEncoding:()Lorg/jcodings/Encoding;
         7: .line 1233
            iconst_0
         8: .line 1228
            invokespecial org.jruby.util.ByteList.<init>:([BIILorg/jcodings/Encoding;Z)V
         9: .line 1226
            invokestatic org.jruby.RubyString.newStringNoCopy:(Lorg/jruby/Ruby;Lorg/jruby/util/ByteList;)Lorg/jruby/RubyString;
            astore 5 /* rep */
        start local 5 // org.jruby.runtime.builtin.IRubyObject rep
        10: .line 1235
            aload 0 /* this */
            aload 1 /* context */
            aload 2 /* fallback */
            aload 5 /* rep */
            invokevirtual org.jruby.util.io.EncodingUtils$AbstractTranscodeFallback.innerCall:(Lorg/jruby/runtime/ThreadContext;Lorg/jruby/runtime/builtin/IRubyObject;Lorg/jruby/runtime/builtin/IRubyObject;)Lorg/jruby/runtime/builtin/IRubyObject;
            astore 5 /* rep */
        11: .line 1236
            aload 5 /* rep */
            invokeinterface org.jruby.runtime.builtin.IRubyObject.isNil:()Z
            ifne 17
        12: .line 1237
            aload 5 /* rep */
            invokeinterface org.jruby.runtime.builtin.IRubyObject.convertToString:()Lorg/jruby/RubyString;
            astore 5 /* rep */
        13: .line 1238
            aload 5 /* rep */
            checkcast org.jruby.RubyString
            invokevirtual org.jruby.RubyString.getEncoding:()Lorg/jcodings/Encoding;
            astore 6 /* repEnc */
        start local 6 // org.jcodings.Encoding repEnc
        14: .line 1239
            aload 5 /* rep */
            checkcast org.jruby.RubyString
            invokevirtual org.jruby.RubyString.getByteList:()Lorg/jruby/util/ByteList;
            astore 7 /* repByteList */
        start local 7 // org.jruby.util.ByteList repByteList
        15: .line 1240
            aload 3 /* ec */
            aload 7 /* repByteList */
            invokevirtual org.jruby.util.ByteList.getUnsafeBytes:()[B
            aload 7 /* repByteList */
            invokevirtual org.jruby.util.ByteList.begin:()I
            aload 7 /* repByteList */
            invokevirtual org.jruby.util.ByteList.getRealSize:()I
            aload 6 /* repEnc */
            invokevirtual org.jcodings.Encoding.getName:()[B
            invokevirtual org.jcodings.transcode.EConv.insertOutput:([BII[B)I
            pop
        16: .line 1243
            iconst_1
            ireturn
        end local 7 // org.jruby.util.ByteList repByteList
        end local 6 // org.jcodings.Encoding repEnc
        17: .line 1245
      StackMap locals: org.jruby.Ruby org.jruby.runtime.builtin.IRubyObject
      StackMap stack:
            iconst_0
            ireturn
        end local 5 // org.jruby.runtime.builtin.IRubyObject rep
        end local 4 // org.jruby.Ruby runtime
        end local 3 // org.jcodings.transcode.EConv ec
        end local 2 // org.jruby.runtime.builtin.IRubyObject fallback
        end local 1 // org.jruby.runtime.ThreadContext context
        end local 0 // org.jruby.util.io.EncodingUtils$AbstractTranscodeFallback this
      LocalVariableTable:
        Start  End  Slot         Name  Signature
            0   18     0         this  Lorg/jruby/util/io/EncodingUtils$AbstractTranscodeFallback;
            0   18     1      context  Lorg/jruby/runtime/ThreadContext;
            0   18     2     fallback  Lorg/jruby/runtime/builtin/IRubyObject;
            0   18     3           ec  Lorg/jcodings/transcode/EConv;
            1   18     4      runtime  Lorg/jruby/Ruby;
           10   18     5          rep  Lorg/jruby/runtime/builtin/IRubyObject;
           14   17     6       repEnc  Lorg/jcodings/Encoding;
           15   17     7  repByteList  Lorg/jruby/util/ByteList;
    MethodParameters:
          Name  Flags
      context   
      fallback  
      ec        

  protected abstract org.jruby.runtime.builtin.IRubyObject innerCall(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: (0x0404) ACC_PROTECTED, ACC_ABSTRACT
    MethodParameters:
          Name  Flags
      context   
      fallback  
      c         

  public boolean call(org.jruby.runtime.ThreadContext, java.lang.Object, org.jcodings.transcode.EConv);
    descriptor: (Lorg/jruby/runtime/ThreadContext;Ljava/lang/Object;Lorg/jcodings/transcode/EConv;)Z
    flags: (0x1041) ACC_PUBLIC, ACC_BRIDGE, ACC_SYNTHETIC
    Code:
      stack=4, locals=4, args_size=4
         0: .line 1
            aload 0
            aload 1
            aload 2
            checkcast org.jruby.runtime.builtin.IRubyObject
            aload 3
            invokevirtual org.jruby.util.io.EncodingUtils$AbstractTranscodeFallback.call:(Lorg/jruby/runtime/ThreadContext;Lorg/jruby/runtime/builtin/IRubyObject;Lorg/jcodings/transcode/EConv;)Z
            ireturn
      LocalVariableTable:
        Start  End  Slot  Name  Signature
}
Signature: Ljava/lang/Object;Lorg/jruby/util/io/EncodingUtils$TranscodeFallback<Lorg/jruby/runtime/builtin/IRubyObject;>;
SourceFile: "EncodingUtils.java"
NestHost: org.jruby.util.io.EncodingUtils
InnerClasses:
  public final Entry = org.jcodings.EncodingDB$Entry of org.jcodings.EncodingDB
  public final LastError = org.jcodings.transcode.EConv$LastError of org.jcodings.transcode.EConv
  private abstract AbstractTranscodeFallback = org.jruby.util.io.EncodingUtils$AbstractTranscodeFallback of org.jruby.util.io.EncodingUtils
  public abstract TranscodeFallback = org.jruby.util.io.EncodingUtils$TranscodeFallback of org.jruby.util.io.EncodingUtils