public class org.jruby.util.ByteListHelper
  minor version: 0
  major version: 59
  flags: flags: (0x0021) ACC_PUBLIC, ACC_SUPER
  this_class: org.jruby.util.ByteListHelper
  super_class: java.lang.Object
{
  public void <init>();
    descriptor: ()V
    flags: (0x0001) ACC_PUBLIC
    Code:
      stack=1, locals=1, args_size=1
        start local 0 // org.jruby.util.ByteListHelper this
         0: .line 8
            aload 0 /* this */
            invokespecial java.lang.Object.<init>:()V
            return
        end local 0 // org.jruby.util.ByteListHelper this
      LocalVariableTable:
        Start  End  Slot  Name  Signature
            0    1     0  this  Lorg/jruby/util/ByteListHelper;

  public static boolean eachCodePoint(org.jruby.util.ByteList, org.jruby.util.ByteListHelper$CodePoint);
    descriptor: (Lorg/jruby/util/ByteList;Lorg/jruby/util/ByteListHelper$CodePoint;)Z
    flags: (0x0009) ACC_PUBLIC, ACC_STATIC
    Code:
      stack=6, locals=10, args_size=2
        start local 0 // org.jruby.util.ByteList bytelist
        start local 1 // org.jruby.util.ByteListHelper$CodePoint each
         0: .line 35
            aload 0 /* bytelist */
            invokevirtual org.jruby.util.ByteList.unsafeBytes:()[B
            astore 2 /* bytes */
        start local 2 // byte[] bytes
         1: .line 36
            aload 0 /* bytelist */
            invokevirtual org.jruby.util.ByteList.getRealSize:()I
            istore 3 /* len */
        start local 3 // int len
         2: .line 37
            aload 0 /* bytelist */
            invokevirtual org.jruby.util.ByteList.getEncoding:()Lorg/jcodings/Encoding;
            astore 4 /* encoding */
        start local 4 // org.jcodings.Encoding encoding
         3: .line 38
            aload 0 /* bytelist */
            invokevirtual org.jruby.util.ByteList.begin:()I
            istore 5 /* begin */
        start local 5 // int begin
         4: .line 39
            iload 5 /* begin */
            iload 3 /* len */
            iadd
            istore 6 /* end */
        start local 6 // int end
         5: .line 42
            iconst_0
            istore 8 /* i */
        start local 8 // int i
         6: goto 11
         7: .line 43
      StackMap locals: org.jruby.util.ByteList org.jruby.util.ByteListHelper$CodePoint byte[] int org.jcodings.Encoding int int top int
      StackMap stack:
            iload 5 /* begin */
            iload 8 /* i */
            iadd
            istore 9 /* realIndex */
        start local 9 // int realIndex
         8: .line 44
            aload 2 /* bytes */
            iload 9 /* realIndex */
            iload 6 /* end */
            aload 4 /* encoding */
            invokestatic org.jruby.util.StringSupport.encFastMBCLen:([BIILorg/jcodings/Encoding;)I
            istore 7 /* n */
        start local 7 // int n
         9: .line 45
            aload 1 /* each */
            iload 8 /* i */
            aload 4 /* encoding */
            aload 2 /* bytes */
            iload 9 /* realIndex */
            iload 6 /* end */
            invokevirtual org.jcodings.Encoding.mbcToCode:([BII)I
            aload 4 /* encoding */
            invokeinterface org.jruby.util.ByteListHelper$CodePoint.call:(IILorg/jcodings/Encoding;)Z
            ifne 10
            iconst_0
            ireturn
        end local 9 // int realIndex
        10: .line 42
      StackMap locals: org.jruby.util.ByteList org.jruby.util.ByteListHelper$CodePoint byte[] int org.jcodings.Encoding int int int int
      StackMap stack:
            iload 8 /* i */
            iload 7 /* n */
            iadd
            istore 8 /* i */
        end local 7 // int n
      StackMap locals: org.jruby.util.ByteList org.jruby.util.ByteListHelper$CodePoint byte[] int org.jcodings.Encoding int int top int
      StackMap stack:
        11: iload 8 /* i */
            iload 3 /* len */
            if_icmplt 7
        end local 8 // int i
        12: .line 48
            iconst_1
            ireturn
        end local 6 // int end
        end local 5 // int begin
        end local 4 // org.jcodings.Encoding encoding
        end local 3 // int len
        end local 2 // byte[] bytes
        end local 1 // org.jruby.util.ByteListHelper$CodePoint each
        end local 0 // org.jruby.util.ByteList bytelist
      LocalVariableTable:
        Start  End  Slot       Name  Signature
            0   13     0   bytelist  Lorg/jruby/util/ByteList;
            0   13     1       each  Lorg/jruby/util/ByteListHelper$CodePoint;
            1   13     2      bytes  [B
            2   13     3        len  I
            3   13     4   encoding  Lorg/jcodings/Encoding;
            4   13     5      begin  I
            5   13     6        end  I
            9   11     7          n  I
            6   12     8          i  I
            8   10     9  realIndex  I
    MethodParameters:
          Name  Flags
      bytelist  
      each      

  public static <T> T split(org.jruby.util.ByteList, org.jruby.util.ByteList, org.jruby.util.ByteListHelper$Visit<org.jruby.util.ByteList, T>, org.jruby.util.ByteListHelper$Visit<org.jruby.util.ByteList, T>);
    descriptor: (Lorg/jruby/util/ByteList;Lorg/jruby/util/ByteList;Lorg/jruby/util/ByteListHelper$Visit;Lorg/jruby/util/ByteListHelper$Visit;)Ljava/lang/Object;
    flags: (0x0009) ACC_PUBLIC, ACC_STATIC
    Code:
      stack=6, locals=14, args_size=4
        start local 0 // org.jruby.util.ByteList value
        start local 1 // org.jruby.util.ByteList pattern
        start local 2 // org.jruby.util.ByteListHelper$Visit bodyVisitor
        start local 3 // org.jruby.util.ByteListHelper$Visit headVisitor
         0: .line 62
            aload 3 /* headVisitor */
            ifnonnull 1
            aload 2 /* bodyVisitor */
            astore 3 /* headVisitor */
         1: .line 64
      StackMap locals:
      StackMap stack:
            aload 1 /* pattern */
            invokevirtual org.jruby.util.ByteList.getEncoding:()Lorg/jcodings/Encoding;
            astore 4 /* enc */
        start local 4 // org.jcodings.Encoding enc
         2: .line 65
            aload 0 /* value */
            invokevirtual org.jruby.util.ByteList.getUnsafeBytes:()[B
            astore 5 /* bytes */
        start local 5 // byte[] bytes
         3: .line 66
            aload 0 /* value */
            invokevirtual org.jruby.util.ByteList.getBegin:()I
            istore 6 /* begin */
        start local 6 // int begin
         4: .line 67
            aload 0 /* value */
            invokevirtual org.jruby.util.ByteList.getRealSize:()I
            istore 7 /* realSize */
        start local 7 // int realSize
         5: .line 68
            iload 6 /* begin */
            iload 7 /* realSize */
            iadd
            istore 8 /* end */
        start local 8 // int end
         6: .line 69
            iconst_0
            istore 9 /* currentOffset */
        start local 9 // int currentOffset
         7: .line 71
            iconst_0
            istore 11 /* i */
        start local 11 // int i
         8: .line 72
            aconst_null
            astore 12 /* current */
        start local 12 // java.lang.Object current
         9: .line 74
            goto 18
        start local 10 // int patternIndex
        10: .line 75
      StackMap locals: org.jruby.util.ByteList org.jruby.util.ByteList org.jruby.util.ByteListHelper$Visit org.jruby.util.ByteListHelper$Visit org.jcodings.Encoding byte[] int int int int int int java.lang.Object
      StackMap stack:
            aload 4 /* enc */
            aload 5 /* bytes */
            iload 9 /* currentOffset */
            iload 6 /* begin */
            iadd
            iload 10 /* patternIndex */
            iload 6 /* begin */
            iadd
            iload 8 /* end */
            invokevirtual org.jcodings.Encoding.rightAdjustCharHead:([BIII)I
            iload 6 /* begin */
            isub
            istore 13 /* t */
        start local 13 // int t
        11: .line 76
            iload 13 /* t */
            iload 10 /* patternIndex */
            if_icmpeq 14
        12: .line 77
            iload 13 /* t */
            istore 9 /* currentOffset */
        13: .line 78
            goto 17
        14: .line 81
      StackMap locals: int
      StackMap stack:
            aload 2 /* bodyVisitor */
            iload 11 /* i */
            aload 0 /* value */
            iload 9 /* currentOffset */
            iload 10 /* patternIndex */
            iload 9 /* currentOffset */
            isub
            invokevirtual org.jruby.util.ByteList.makeShared:(II)Lorg/jruby/util/ByteList;
            aload 12 /* current */
            invokeinterface org.jruby.util.ByteListHelper$Visit.call:(ILjava/lang/Object;Ljava/lang/Object;)Ljava/lang/Object;
            astore 12 /* current */
        15: .line 82
            aload 12 /* current */
            ifnonnull 16
            aconst_null
            areturn
        16: .line 84
      StackMap locals:
      StackMap stack:
            iload 10 /* patternIndex */
            aload 1 /* pattern */
            invokevirtual org.jruby.util.ByteList.getRealSize:()I
            iadd
            istore 9 /* currentOffset */
        end local 13 // int t
        17: .line 74
      StackMap locals:
      StackMap stack:
            iinc 11 /* i */ 1
        end local 10 // int patternIndex
      StackMap locals: org.jruby.util.ByteList org.jruby.util.ByteList org.jruby.util.ByteListHelper$Visit org.jruby.util.ByteListHelper$Visit org.jcodings.Encoding byte[] int int int int top int java.lang.Object
      StackMap stack:
        18: iload 9 /* currentOffset */
            iload 7 /* realSize */
            if_icmpge 20
            aload 0 /* value */
            aload 1 /* pattern */
            iload 9 /* currentOffset */
            invokevirtual org.jruby.util.ByteList.indexOf:(Lorg/jruby/util/ByteList;I)I
            dup
            istore 10 /* patternIndex */
        start local 10 // int patternIndex
        19: ifge 10
        end local 10 // int patternIndex
        20: .line 87
      StackMap locals:
      StackMap stack:
            aload 3 /* headVisitor */
            iload 11 /* i */
            aload 0 /* value */
            iload 9 /* currentOffset */
            iload 7 /* realSize */
            iload 9 /* currentOffset */
            isub
            invokevirtual org.jruby.util.ByteList.makeShared:(II)Lorg/jruby/util/ByteList;
            aload 12 /* current */
            invokeinterface org.jruby.util.ByteListHelper$Visit.call:(ILjava/lang/Object;Ljava/lang/Object;)Ljava/lang/Object;
            areturn
        end local 12 // java.lang.Object current
        end local 11 // int i
        end local 9 // int currentOffset
        end local 8 // int end
        end local 7 // int realSize
        end local 6 // int begin
        end local 5 // byte[] bytes
        end local 4 // org.jcodings.Encoding enc
        end local 3 // org.jruby.util.ByteListHelper$Visit headVisitor
        end local 2 // org.jruby.util.ByteListHelper$Visit bodyVisitor
        end local 1 // org.jruby.util.ByteList pattern
        end local 0 // org.jruby.util.ByteList value
      LocalVariableTable:
        Start  End  Slot           Name  Signature
            0   21     0          value  Lorg/jruby/util/ByteList;
            0   21     1        pattern  Lorg/jruby/util/ByteList;
            0   21     2    bodyVisitor  Lorg/jruby/util/ByteListHelper$Visit<Lorg/jruby/util/ByteList;TT;>;
            0   21     3    headVisitor  Lorg/jruby/util/ByteListHelper$Visit<Lorg/jruby/util/ByteList;TT;>;
            2   21     4            enc  Lorg/jcodings/Encoding;
            3   21     5          bytes  [B
            4   21     6          begin  I
            5   21     7       realSize  I
            6   21     8            end  I
            7   21     9  currentOffset  I
           10   18    10   patternIndex  I
           19   20    10   patternIndex  I
            8   21    11              i  I
            9   21    12        current  TT;
           11   17    13              t  I
    Signature: <T:Ljava/lang/Object;>(Lorg/jruby/util/ByteList;Lorg/jruby/util/ByteList;Lorg/jruby/util/ByteListHelper$Visit<Lorg/jruby/util/ByteList;TT;>;Lorg/jruby/util/ByteListHelper$Visit<Lorg/jruby/util/ByteList;TT;>;)TT;
    MethodParameters:
             Name  Flags
      value        
      pattern      
      bodyVisitor  
      headVisitor  
}
SourceFile: "ByteListHelper.java"
NestMembers:
  org.jruby.util.ByteListHelper$CodePoint  org.jruby.util.ByteListHelper$Visit
InnerClasses:
  public abstract CodePoint = org.jruby.util.ByteListHelper$CodePoint of org.jruby.util.ByteListHelper
  public abstract Visit = org.jruby.util.ByteListHelper$Visit of org.jruby.util.ByteListHelper