public class org.jruby.util.RegexpSupport
minor version: 0
major version: 59
flags: flags: (0x0021) ACC_PUBLIC, ACC_SUPER
this_class: org.jruby.util.RegexpSupport
super_class: java.lang.Object
{
private static volatile int[] $SWITCH_TABLE$org$jruby$util$RegexpSupport$ErrorMode;
descriptor: [I
flags: (0x104a) ACC_PRIVATE, ACC_STATIC, ACC_VOLATILE, ACC_SYNTHETIC
public void <init>();
descriptor: ()V
flags: (0x0001) ACC_PUBLIC
Code:
stack=1, locals=1, args_size=1
start local 0 0: aload 0
invokespecial java.lang.Object.<init>:()V
return
end local 0 LocalVariableTable:
Start End Slot Name Signature
0 1 0 this Lorg/jruby/util/RegexpSupport;
public static org.jruby.util.ByteList preprocess(org.jruby.Ruby, org.jruby.util.ByteList, org.jcodings.Encoding, org.jcodings.Encoding[], org.jruby.util.RegexpSupport$ErrorMode);
descriptor: (Lorg/jruby/Ruby;Lorg/jruby/util/ByteList;Lorg/jcodings/Encoding;[Lorg/jcodings/Encoding;Lorg/jruby/util/RegexpSupport$ErrorMode;)Lorg/jruby/util/ByteList;
flags: (0x0009) ACC_PUBLIC, ACC_STATIC
Code:
stack=9, locals=7, args_size=5
start local 0 start local 1 start local 2 start local 3 start local 4 0: new org.jruby.util.ByteList
dup
aload 1
invokevirtual org.jruby.util.ByteList.getRealSize:()I
invokespecial org.jruby.util.ByteList.<init>:(I)V
astore 5
start local 5 1: aload 2
invokevirtual org.jcodings.Encoding.isAsciiCompatible:()Z
ifeq 4
2: aload 3
iconst_0
aconst_null
aastore
3: goto 6
4: StackMap locals: org.jruby.util.ByteList
StackMap stack:
aload 3
iconst_0
aload 2
aastore
5: aload 5
aload 2
invokevirtual org.jruby.util.ByteList.setEncoding:(Lorg/jcodings/Encoding;)V
6: StackMap locals:
StackMap stack:
aload 0
aload 5
aload 1
invokevirtual org.jruby.util.ByteList.getUnsafeBytes:()[B
aload 1
invokevirtual org.jruby.util.ByteList.getBegin:()I
aload 1
invokevirtual org.jruby.util.ByteList.getBegin:()I
aload 1
invokevirtual org.jruby.util.ByteList.getRealSize:()I
iadd
aload 2
aload 3
aload 1
aload 4
invokestatic org.jruby.util.RegexpSupport.unescapeNonAscii:(Lorg/jruby/Ruby;Lorg/jruby/util/ByteList;[BIILorg/jcodings/Encoding;[Lorg/jcodings/Encoding;Lorg/jruby/util/ByteList;Lorg/jruby/util/RegexpSupport$ErrorMode;)Z
istore 6
start local 6 7: iload 6
ifeq 8
aload 3
iconst_0
aaload
ifnonnull 8
aload 3
iconst_0
aload 2
aastore
8: StackMap locals: int
StackMap stack:
aload 3
iconst_0
aaload
ifnull 9
aload 5
aload 3
iconst_0
aaload
invokevirtual org.jruby.util.ByteList.setEncoding:(Lorg/jcodings/Encoding;)V
9: StackMap locals:
StackMap stack:
aload 5
areturn
end local 6 end local 5 end local 4 end local 3 end local 2 end local 1 end local 0 LocalVariableTable:
Start End Slot Name Signature
0 10 0 runtime Lorg/jruby/Ruby;
0 10 1 str Lorg/jruby/util/ByteList;
0 10 2 enc Lorg/jcodings/Encoding;
0 10 3 fixedEnc [Lorg/jcodings/Encoding;
0 10 4 mode Lorg/jruby/util/RegexpSupport$ErrorMode;
1 10 5 to Lorg/jruby/util/ByteList;
7 10 6 hasProperty Z
MethodParameters:
Name Flags
runtime
str
enc
fixedEnc
mode
public static boolean unescapeNonAscii(org.jruby.Ruby, org.jruby.util.ByteList, byte[], int, int, org.jcodings.Encoding, org.jcodings.Encoding[], org.jruby.util.ByteList, org.jruby.util.RegexpSupport$ErrorMode);
descriptor: (Lorg/jruby/Ruby;Lorg/jruby/util/ByteList;[BIILorg/jcodings/Encoding;[Lorg/jcodings/Encoding;Lorg/jruby/util/ByteList;Lorg/jruby/util/RegexpSupport$ErrorMode;)Z
flags: (0x0009) ACC_PUBLIC, ACC_STATIC
Code:
stack=9, locals=14, args_size=9
start local 0 start local 1 start local 2 start local 3 start local 4 start local 5 start local 6 start local 7 start local 8 0: iconst_0
istore 9
start local 9 1: aconst_null
astore 10
start local 10 2: goto 48
3: StackMap locals: int byte[]
StackMap stack:
aload 5
aload 2
iload 3
iload 4
invokestatic org.jruby.util.StringSupport.preciseLength:(Lorg/jcodings/Encoding;[BII)I
istore 11
start local 11 4: iload 11
ifgt 5
aload 0
aload 7
ldc "invalid multibyte character"
aload 8
invokestatic org.jruby.util.RegexpSupport.raisePreprocessError:(Lorg/jruby/Ruby;Lorg/jruby/util/ByteList;Ljava/lang/String;Lorg/jruby/util/RegexpSupport$ErrorMode;)I
pop
5: StackMap locals: int
StackMap stack:
iload 11
iconst_1
if_icmpgt 6
aload 2
iload 3
baload
sipush 128
iand
ifeq 14
6: StackMap locals:
StackMap stack:
aload 1
ifnull 7
aload 1
aload 2
iload 3
iload 11
invokevirtual org.jruby.util.ByteList.append:([BII)V
7: StackMap locals:
StackMap stack:
iload 3
iload 11
iadd
istore 3
8: aload 6
iconst_0
aaload
ifnonnull 11
9: aload 6
iconst_0
aload 5
aastore
10: goto 48
StackMap locals:
StackMap stack:
11: aload 6
iconst_0
aaload
aload 5
if_acmpeq 48
12: aload 0
aload 7
ldc "non ASCII character in UTF-8 regexp"
aload 8
invokestatic org.jruby.util.RegexpSupport.raisePreprocessError:(Lorg/jruby/Ruby;Lorg/jruby/util/ByteList;Ljava/lang/String;Lorg/jruby/util/RegexpSupport$ErrorMode;)I
pop
13: goto 48
14: StackMap locals:
StackMap stack:
aload 2
iload 3
iinc 3 1
baload
sipush 255
iand
dup
istore 12
start local 12 15: tableswitch { // 92 - 92
92: 16
default: 47
}
16: StackMap locals: int
StackMap stack:
iload 3
iload 4
if_icmpne 17
aload 0
aload 7
ldc "too short escape sequence"
aload 8
invokestatic org.jruby.util.RegexpSupport.raisePreprocessError:(Lorg/jruby/Ruby;Lorg/jruby/util/ByteList;Ljava/lang/String;Lorg/jruby/util/RegexpSupport$ErrorMode;)I
pop
17: StackMap locals:
StackMap stack:
aload 2
iload 3
iinc 3 1
baload
sipush 255
iand
dup
istore 12
lookupswitch { // 14
48: 21
49: 18
50: 18
51: 18
52: 18
53: 18
54: 18
55: 18
67: 21
77: 21
99: 21
112: 42
117: 33
120: 21
default: 45
}
18: StackMap locals:
StackMap stack:
aload 2
iload 3
iconst_1
isub
iload 4
iload 3
iconst_1
isub
isub
invokestatic org.jruby.util.StringSupport.scanOct:([BII)I
bipush 127
if_icmpgt 21
19: aload 1
ifnull 48
aload 1
bipush 92
invokevirtual org.jruby.util.ByteList.append:(I)Lorg/jruby/util/ByteList;
iload 12
invokevirtual org.jruby.util.ByteList.append:(I)Lorg/jruby/util/ByteList;
pop
20: goto 48
21: StackMap locals:
StackMap stack:
iinc 3 -2
22: aload 5
getstatic org.jcodings.specific.USASCIIEncoding.INSTANCE:Lorg/jcodings/specific/USASCIIEncoding;
if_acmpne 31
23: aload 10
ifnonnull 24
iconst_1
newarray 8
astore 10
24: StackMap locals:
StackMap stack:
iload 3
istore 13
start local 13 25: aload 0
aload 10
iconst_0
aload 2
iload 3
iload 4
aload 7
aload 8
invokestatic org.jruby.util.RegexpSupport.readEscapedByte:(Lorg/jruby/Ruby;[BI[BIILorg/jruby/util/ByteList;Lorg/jruby/util/RegexpSupport$ErrorMode;)I
istore 3
26: aload 10
iconst_0
baload
istore 12
27: iload 12
ldc 65535
if_icmpne 28
iconst_0
ireturn
28: StackMap locals: int
StackMap stack:
aload 1
ifnull 48
29: aload 1
aload 2
iload 13
iload 3
iload 13
isub
invokevirtual org.jruby.util.ByteList.append:([BII)V
end local 13 30: goto 48
31: StackMap locals:
StackMap stack:
aload 0
aload 1
aload 2
iload 3
iload 4
aload 5
aload 6
aload 7
aload 8
invokestatic org.jruby.util.RegexpSupport.unescapeEscapedNonAscii:(Lorg/jruby/Ruby;Lorg/jruby/util/ByteList;[BIILorg/jcodings/Encoding;[Lorg/jcodings/Encoding;Lorg/jruby/util/ByteList;Lorg/jruby/util/RegexpSupport$ErrorMode;)I
istore 3
32: goto 48
33: StackMap locals:
StackMap stack:
iload 3
iload 4
if_icmpne 34
aload 0
aload 7
ldc "too short escape sequence"
aload 8
invokestatic org.jruby.util.RegexpSupport.raisePreprocessError:(Lorg/jruby/Ruby;Lorg/jruby/util/ByteList;Ljava/lang/String;Lorg/jruby/util/RegexpSupport$ErrorMode;)I
pop
34: StackMap locals:
StackMap stack:
aload 2
iload 3
baload
bipush 123
if_icmpne 40
35: iinc 3 1
36: aload 0
aload 1
aload 2
iload 3
iload 4
aload 6
aload 7
aload 8
invokestatic org.jruby.util.RegexpSupport.unescapeUnicodeList:(Lorg/jruby/Ruby;Lorg/jruby/util/ByteList;[BII[Lorg/jcodings/Encoding;Lorg/jruby/util/ByteList;Lorg/jruby/util/RegexpSupport$ErrorMode;)I
istore 3
37: iload 3
iload 4
if_icmpeq 38
aload 2
iload 3
iinc 3 1
baload
bipush 125
if_icmpeq 48
StackMap locals:
StackMap stack:
38: aload 0
aload 7
ldc "invalid Unicode list"
aload 8
invokestatic org.jruby.util.RegexpSupport.raisePreprocessError:(Lorg/jruby/Ruby;Lorg/jruby/util/ByteList;Ljava/lang/String;Lorg/jruby/util/RegexpSupport$ErrorMode;)I
pop
39: goto 48
40: StackMap locals:
StackMap stack:
aload 0
aload 1
aload 2
iload 3
iload 4
aload 6
aload 7
aload 8
invokestatic org.jruby.util.RegexpSupport.unescapeUnicodeBmp:(Lorg/jruby/Ruby;Lorg/jruby/util/ByteList;[BII[Lorg/jcodings/Encoding;Lorg/jruby/util/ByteList;Lorg/jruby/util/RegexpSupport$ErrorMode;)I
istore 3
41: goto 48
42: StackMap locals:
StackMap stack:
aload 6
iconst_0
aaload
ifnonnull 43
iconst_1
istore 9
43: StackMap locals:
StackMap stack:
aload 1
ifnull 48
aload 1
bipush 92
invokevirtual org.jruby.util.ByteList.append:(I)Lorg/jruby/util/ByteList;
iload 12
invokevirtual org.jruby.util.ByteList.append:(I)Lorg/jruby/util/ByteList;
pop
44: goto 48
45: StackMap locals:
StackMap stack:
aload 1
ifnull 48
aload 1
bipush 92
invokevirtual org.jruby.util.ByteList.append:(I)Lorg/jruby/util/ByteList;
iload 12
invokevirtual org.jruby.util.ByteList.append:(I)Lorg/jruby/util/ByteList;
pop
46: goto 48
47: StackMap locals:
StackMap stack:
aload 1
ifnull 48
aload 1
iload 12
invokevirtual org.jruby.util.ByteList.append:(I)Lorg/jruby/util/ByteList;
pop
end local 12 end local 11 48: StackMap locals:
StackMap stack:
iload 3
iload 4
if_icmplt 3
49: iload 9
ireturn
end local 10 end local 9 end local 8 end local 7 end local 6 end local 5 end local 4 end local 3 end local 2 end local 1 end local 0 LocalVariableTable:
Start End Slot Name Signature
0 50 0 runtime Lorg/jruby/Ruby;
0 50 1 to Lorg/jruby/util/ByteList;
0 50 2 bytes [B
0 50 3 p I
0 50 4 end I
0 50 5 enc Lorg/jcodings/Encoding;
0 50 6 encp [Lorg/jcodings/Encoding;
0 50 7 str Lorg/jruby/util/ByteList;
0 50 8 mode Lorg/jruby/util/RegexpSupport$ErrorMode;
1 50 9 hasProperty Z
2 50 10 buf [B
4 48 11 cl I
15 48 12 c I
25 30 13 pbeg I
MethodParameters:
Name Flags
runtime
to
bytes
p
end
enc
encp
str
mode
public static int raisePreprocessError(org.jruby.Ruby, org.jruby.util.ByteList, java.lang.String, org.jruby.util.RegexpSupport$ErrorMode);
descriptor: (Lorg/jruby/Ruby;Lorg/jruby/util/ByteList;Ljava/lang/String;Lorg/jruby/util/RegexpSupport$ErrorMode;)I
flags: (0x0009) ACC_PUBLIC, ACC_STATIC
Code:
stack=5, locals=4, args_size=4
start local 0 start local 1 start local 2 start local 3 0: invokestatic org.jruby.util.RegexpSupport.$SWITCH_TABLE$org$jruby$util$RegexpSupport$ErrorMode:()[I
aload 3
invokevirtual org.jruby.util.RegexpSupport$ErrorMode.ordinal:()I
iaload
tableswitch { // 1 - 3
1: 1
2: 2
3: 3
default: 3
}
1: StackMap locals:
StackMap stack:
aload 0
aload 1
aload 1
invokevirtual org.jruby.util.ByteList.getEncoding:()Lorg/jcodings/Encoding;
getstatic org.jruby.util.RegexpOptions.NULL_OPTIONS:Lorg/jruby/util/RegexpOptions;
aload 2
invokestatic org.jruby.util.RegexpSupport.raiseRegexpError19:(Lorg/jruby/Ruby;Lorg/jruby/util/ByteList;Lorg/jcodings/Encoding;Lorg/jruby/util/RegexpOptions;Ljava/lang/String;)V
2: StackMap locals:
StackMap stack:
aload 0
new java.lang.StringBuilder
dup
ldc "regexp preprocess failed: "
invokespecial java.lang.StringBuilder.<init>:(Ljava/lang/String;)V
aload 2
invokevirtual java.lang.StringBuilder.append:(Ljava/lang/String;)Ljava/lang/StringBuilder;
invokevirtual java.lang.StringBuilder.toString:()Ljava/lang/String;
invokevirtual org.jruby.Ruby.newArgumentError:(Ljava/lang/String;)Lorg/jruby/exceptions/RaiseException;
athrow
3: StackMap locals:
StackMap stack:
iconst_0
ireturn
end local 3 end local 2 end local 1 end local 0 LocalVariableTable:
Start End Slot Name Signature
0 4 0 runtime Lorg/jruby/Ruby;
0 4 1 str Lorg/jruby/util/ByteList;
0 4 2 err Ljava/lang/String;
0 4 3 mode Lorg/jruby/util/RegexpSupport$ErrorMode;
MethodParameters:
Name Flags
runtime
str
err
mode
public static void raiseRegexpError19(org.jruby.Ruby, org.jruby.util.ByteList, org.jcodings.Encoding, org.jruby.util.RegexpOptions, java.lang.String);
descriptor: (Lorg/jruby/Ruby;Lorg/jruby/util/ByteList;Lorg/jcodings/Encoding;Lorg/jruby/util/RegexpOptions;Ljava/lang/String;)V
flags: (0x0009) ACC_PUBLIC, ACC_STATIC
Code:
stack=6, locals=5, args_size=5
start local 0 start local 1 start local 2 start local 3 start local 4 0: aload 0
new java.lang.StringBuilder
dup
aload 4
invokestatic java.lang.String.valueOf:(Ljava/lang/Object;)Ljava/lang/String;
invokespecial java.lang.StringBuilder.<init>:(Ljava/lang/String;)V
ldc ": "
invokevirtual java.lang.StringBuilder.append:(Ljava/lang/String;)Ljava/lang/StringBuilder;
aload 0
aload 1
aload 3
aload 2
invokestatic org.jruby.util.RegexpSupport.regexpDescription19:(Lorg/jruby/Ruby;Lorg/jruby/util/ByteList;Lorg/jruby/util/RegexpOptions;Lorg/jcodings/Encoding;)Lorg/jruby/util/ByteList;
invokevirtual java.lang.StringBuilder.append:(Ljava/lang/Object;)Ljava/lang/StringBuilder;
invokevirtual java.lang.StringBuilder.toString:()Ljava/lang/String;
invokevirtual org.jruby.Ruby.newRegexpError:(Ljava/lang/String;)Lorg/jruby/exceptions/RaiseException;
athrow
end local 4 end local 3 end local 2 end local 1 end local 0 LocalVariableTable:
Start End Slot Name Signature
0 1 0 runtime Lorg/jruby/Ruby;
0 1 1 bytes Lorg/jruby/util/ByteList;
0 1 2 enc Lorg/jcodings/Encoding;
0 1 3 options Lorg/jruby/util/RegexpOptions;
0 1 4 err Ljava/lang/String;
MethodParameters:
Name Flags
runtime
bytes
enc
options
err
public static org.jruby.util.ByteList regexpDescription19(org.jruby.Ruby, org.jruby.util.ByteList, org.jruby.util.RegexpOptions, org.jcodings.Encoding);
descriptor: (Lorg/jruby/Ruby;Lorg/jruby/util/ByteList;Lorg/jruby/util/RegexpOptions;Lorg/jcodings/Encoding;)Lorg/jruby/util/ByteList;
flags: (0x0009) ACC_PUBLIC, ACC_STATIC
Code:
stack=6, locals=4, args_size=4
start local 0 start local 1 start local 2 start local 3 0: aload 0
aload 1
invokevirtual org.jruby.util.ByteList.getUnsafeBytes:()[B
aload 1
invokevirtual org.jruby.util.ByteList.getBegin:()I
aload 1
invokevirtual org.jruby.util.ByteList.getRealSize:()I
aload 2
aload 3
invokestatic org.jruby.util.RegexpSupport.regexpDescription19:(Lorg/jruby/Ruby;[BIILorg/jruby/util/RegexpOptions;Lorg/jcodings/Encoding;)Lorg/jruby/util/ByteList;
areturn
end local 3 end local 2 end local 1 end local 0 LocalVariableTable:
Start End Slot Name Signature
0 1 0 runtime Lorg/jruby/Ruby;
0 1 1 bytes Lorg/jruby/util/ByteList;
0 1 2 options Lorg/jruby/util/RegexpOptions;
0 1 3 enc Lorg/jcodings/Encoding;
MethodParameters:
Name Flags
runtime
bytes
options
enc
private static org.jruby.util.ByteList regexpDescription19(org.jruby.Ruby, byte[], int, int, org.jruby.util.RegexpOptions, org.jcodings.Encoding);
descriptor: (Lorg/jruby/Ruby;[BIILorg/jruby/util/RegexpOptions;Lorg/jcodings/Encoding;)Lorg/jruby/util/ByteList;
flags: (0x000a) ACC_PRIVATE, ACC_STATIC
Code:
stack=7, locals=8, args_size=6
start local 0 start local 1 start local 2 start local 3 start local 4 start local 5 0: new org.jruby.util.ByteList
dup
invokespecial org.jruby.util.ByteList.<init>:()V
astore 6
start local 6 1: aload 6
aload 5
invokevirtual org.jruby.util.ByteList.setEncoding:(Lorg/jcodings/Encoding;)V
2: aload 6
bipush 47
invokevirtual org.jruby.util.ByteList.append:(B)Lorg/jruby/util/ByteList;
pop
3: aload 0
invokevirtual org.jruby.Ruby.getDefaultInternalEncoding:()Lorg/jcodings/Encoding;
astore 7
start local 7 4: aload 7
ifnonnull 5
aload 0
invokevirtual org.jruby.Ruby.getDefaultExternalEncoding:()Lorg/jcodings/Encoding;
astore 7
5: StackMap locals: org.jruby.util.ByteList org.jcodings.Encoding
StackMap stack:
aload 0
aload 6
aload 1
iload 2
iload 3
aload 5
aload 7
invokestatic org.jruby.util.RegexpSupport.appendRegexpString19:(Lorg/jruby/Ruby;Lorg/jruby/util/ByteList;[BIILorg/jcodings/Encoding;Lorg/jcodings/Encoding;)V
6: aload 6
bipush 47
invokevirtual org.jruby.util.ByteList.append:(B)Lorg/jruby/util/ByteList;
pop
7: aload 6
aload 4
invokestatic org.jruby.util.RegexpSupport.appendOptions:(Lorg/jruby/util/ByteList;Lorg/jruby/util/RegexpOptions;)V
8: aload 4
invokevirtual org.jruby.util.RegexpOptions.isEncodingNone:()Z
ifeq 9
aload 6
bipush 110
invokevirtual org.jruby.util.ByteList.append:(B)Lorg/jruby/util/ByteList;
pop
9: StackMap locals:
StackMap stack:
aload 6
areturn
end local 7 end local 6 end local 5 end local 4 end local 3 end local 2 end local 1 end local 0 LocalVariableTable:
Start End Slot Name Signature
0 10 0 runtime Lorg/jruby/Ruby;
0 10 1 s [B
0 10 2 start I
0 10 3 len I
0 10 4 options Lorg/jruby/util/RegexpOptions;
0 10 5 enc Lorg/jcodings/Encoding;
1 10 6 description Lorg/jruby/util/ByteList;
4 10 7 resultEnc Lorg/jcodings/Encoding;
MethodParameters:
Name Flags
runtime
s
start
len
options
enc
public static void appendRegexpString19(org.jruby.Ruby, org.jruby.util.ByteList, byte[], int, int, org.jcodings.Encoding, org.jcodings.Encoding);
descriptor: (Lorg/jruby/Ruby;Lorg/jruby/util/ByteList;[BIILorg/jcodings/Encoding;Lorg/jcodings/Encoding;)V
flags: (0x0009) ACC_PUBLIC, ACC_STATIC
Code:
stack=5, locals=15, args_size=7
start local 0 start local 1 start local 2 start local 3 start local 4 start local 5 start local 6 0: iload 3
istore 7
start local 7 1: iload 7
iload 4
iadd
istore 8
start local 8 2: iconst_0
istore 9
start local 9 3: goto 18
4: StackMap locals: int int int
StackMap stack:
aload 5
invokevirtual org.jcodings.Encoding.isAsciiCompatible:()Z
ifeq 8
5: iconst_1
istore 11
start local 11 6: aload 2
iload 7
baload
sipush 255
iand
istore 10
start local 10 7: goto 10
end local 11 end local 10 8: StackMap locals:
StackMap stack:
aload 5
aload 2
iload 7
iload 8
invokestatic org.jruby.util.StringSupport.preciseLength:(Lorg/jcodings/Encoding;[BII)I
istore 11
start local 11 9: aload 5
aload 2
iload 7
iload 8
invokevirtual org.jcodings.Encoding.mbcToCode:([BII)I
istore 10
start local 10 10: StackMap locals: int int
StackMap stack:
iload 10
invokestatic org.jcodings.Encoding.isAscii:(I)Z
ifne 13
11: iload 7
aload 5
aload 2
iload 7
iload 8
invokestatic org.jruby.util.StringSupport.length:(Lorg/jcodings/Encoding;[BII)I
iadd
istore 7
12: goto 18
StackMap locals:
StackMap stack:
13: iload 10
bipush 47
if_icmpeq 16
aload 5
iload 10
invokevirtual org.jcodings.Encoding.isPrint:(I)Z
ifeq 16
14: iload 7
iload 11
iadd
istore 7
15: goto 18
16: StackMap locals:
StackMap stack:
iconst_1
istore 9
17: goto 19
end local 11 end local 10 18: StackMap locals:
StackMap stack:
iload 7
iload 8
if_icmplt 4
19: StackMap locals:
StackMap stack:
iload 9
ifne 22
20: aload 1
aload 2
iload 3
iload 4
invokevirtual org.jruby.util.ByteList.append:([BII)V
21: goto 62
22: StackMap locals:
StackMap stack:
aload 5
invokevirtual org.jcodings.Encoding.isUnicode:()Z
istore 10
start local 10 23: iload 3
istore 7
24: goto 61
25: StackMap locals: int
StackMap stack:
aload 5
invokevirtual org.jcodings.Encoding.isAsciiCompatible:()Z
ifeq 29
26: iconst_1
istore 12
start local 12 27: aload 2
iload 7
baload
sipush 255
iand
istore 11
start local 11 28: goto 31
end local 12 end local 11 29: StackMap locals:
StackMap stack:
aload 5
aload 2
iload 7
iload 8
invokestatic org.jruby.util.StringSupport.preciseLength:(Lorg/jcodings/Encoding;[BII)I
istore 12
start local 12 30: aload 5
aload 2
iload 7
iload 8
invokevirtual org.jcodings.Encoding.mbcToCode:([BII)I
istore 11
start local 11 31: StackMap locals: int int
StackMap stack:
iload 11
bipush 92
if_icmpne 36
iload 7
iload 12
iadd
iload 8
if_icmpge 36
32: iload 12
aload 5
aload 2
iload 7
iload 12
iadd
iload 8
invokestatic org.jruby.util.StringSupport.length:(Lorg/jcodings/Encoding;[BII)I
iadd
istore 13
start local 13 33: aload 1
aload 2
iload 7
iload 13
invokevirtual org.jruby.util.ByteList.append:([BII)V
34: iload 7
iload 13
iadd
istore 7
35: goto 61
end local 13 36: StackMap locals:
StackMap stack:
iload 11
bipush 47
if_icmpne 40
37: aload 1
bipush 92
invokevirtual org.jruby.util.ByteList.append:(B)Lorg/jruby/util/ByteList;
pop
38: aload 1
aload 2
iload 7
iload 12
invokevirtual org.jruby.util.ByteList.append:([BII)V
39: goto 60
StackMap locals:
StackMap stack:
40: iload 11
invokestatic org.jcodings.Encoding.isAscii:(I)Z
ifne 53
41: aload 5
aload 2
iload 7
iload 8
invokestatic org.jruby.util.StringSupport.preciseLength:(Lorg/jcodings/Encoding;[BII)I
istore 13
start local 13 42: iload 13
ifgt 46
43: iconst_1
istore 13
44: aload 0
aload 1
ldc "\\x%02X"
iload 11
invokestatic org.jruby.util.Sprintf.sprintf:(Lorg/jruby/Ruby;Lorg/jruby/util/ByteList;Ljava/lang/CharSequence;I)Z
pop
45: goto 51
StackMap locals: int
StackMap stack:
46: aload 6
ifnull 50
47: aload 5
aload 2
iload 7
iload 8
invokevirtual org.jcodings.Encoding.mbcToCode:([BII)I
istore 14
start local 14 48: aload 0
aload 1
iload 14
iload 10
invokestatic org.jruby.util.StringSupport.escapedCharFormat:(IZ)Ljava/lang/String;
iload 14
invokestatic org.jruby.util.Sprintf.sprintf:(Lorg/jruby/Ruby;Lorg/jruby/util/ByteList;Ljava/lang/CharSequence;I)Z
pop
end local 14 49: goto 51
50: StackMap locals:
StackMap stack:
aload 1
aload 2
iload 7
iload 13
invokevirtual org.jruby.util.ByteList.append:([BII)V
51: StackMap locals:
StackMap stack:
iload 7
iload 13
iadd
istore 7
52: goto 61
end local 13 53: StackMap locals:
StackMap stack:
aload 5
iload 11
invokevirtual org.jcodings.Encoding.isPrint:(I)Z
ifeq 56
54: aload 1
aload 2
iload 7
iload 12
invokevirtual org.jruby.util.ByteList.append:([BII)V
55: goto 60
StackMap locals:
StackMap stack:
56: aload 5
iload 11
invokevirtual org.jcodings.Encoding.isSpace:(I)Z
ifne 59
57: aload 0
aload 1
ldc "\\x%02X"
iload 11
invokestatic org.jruby.util.Sprintf.sprintf:(Lorg/jruby/Ruby;Lorg/jruby/util/ByteList;Ljava/lang/CharSequence;I)Z
pop
58: goto 60
59: StackMap locals:
StackMap stack:
aload 1
aload 2
iload 7
iload 12
invokevirtual org.jruby.util.ByteList.append:([BII)V
60: StackMap locals:
StackMap stack:
iload 7
iload 12
iadd
istore 7
end local 12 end local 11 61: StackMap locals:
StackMap stack:
iload 7
iload 8
if_icmplt 25
end local 10 62: StackMap locals:
StackMap stack:
return
end local 9 end local 8 end local 7 end local 6 end local 5 end local 4 end local 3 end local 2 end local 1 end local 0 LocalVariableTable:
Start End Slot Name Signature
0 63 0 runtime Lorg/jruby/Ruby;
0 63 1 to Lorg/jruby/util/ByteList;
0 63 2 bytes [B
0 63 3 start I
0 63 4 len I
0 63 5 enc Lorg/jcodings/Encoding;
0 63 6 resEnc Lorg/jcodings/Encoding;
1 63 7 p I
2 63 8 end I
3 63 9 needEscape Z
7 8 10 c I
10 18 10 c I
6 8 11 cl I
9 18 11 cl I
23 62 10 isUnicode Z
28 29 11 c I
31 61 11 c I
27 29 12 cl I
30 61 12 cl I
33 36 13 n I
42 53 13 l I
48 49 14 code I
MethodParameters:
Name Flags
runtime
to
bytes
start
len
enc
resEnc
public static void appendOptions(org.jruby.util.ByteList, org.jruby.util.RegexpOptions);
descriptor: (Lorg/jruby/util/ByteList;Lorg/jruby/util/RegexpOptions;)V
flags: (0x0009) ACC_PUBLIC, ACC_STATIC
Code:
stack=2, locals=2, args_size=2
start local 0 start local 1 0: aload 1
invokevirtual org.jruby.util.RegexpOptions.isMultiline:()Z
ifeq 1
aload 0
bipush 109
invokevirtual org.jruby.util.ByteList.append:(B)Lorg/jruby/util/ByteList;
pop
1: StackMap locals:
StackMap stack:
aload 1
invokevirtual org.jruby.util.RegexpOptions.isIgnorecase:()Z
ifeq 2
aload 0
bipush 105
invokevirtual org.jruby.util.ByteList.append:(B)Lorg/jruby/util/ByteList;
pop
2: StackMap locals:
StackMap stack:
aload 1
invokevirtual org.jruby.util.RegexpOptions.isExtended:()Z
ifeq 3
aload 0
bipush 120
invokevirtual org.jruby.util.ByteList.append:(B)Lorg/jruby/util/ByteList;
pop
3: StackMap locals:
StackMap stack:
return
end local 1 end local 0 LocalVariableTable:
Start End Slot Name Signature
0 4 0 to Lorg/jruby/util/ByteList;
0 4 1 options Lorg/jruby/util/RegexpOptions;
MethodParameters:
Name Flags
to
options
public static int readEscapedByte(org.jruby.Ruby, byte[], int, byte[], int, int, org.jruby.util.ByteList, org.jruby.util.RegexpSupport$ErrorMode);
descriptor: (Lorg/jruby/Ruby;[BI[BIILorg/jruby/util/ByteList;Lorg/jruby/util/RegexpSupport$ErrorMode;)I
flags: (0x0009) ACC_PUBLIC, ACC_STATIC
Code:
stack=4, locals=14, args_size=8
start local 0 start local 1 start local 2 start local 3 start local 4 start local 5 start local 6 start local 7 0: iload 4
iload 5
if_icmpeq 1
aload 3
iload 4
iinc 4 1
baload
bipush 92
if_icmpeq 2
StackMap locals:
StackMap stack:
1: aload 0
aload 6
ldc "too short escaped multibyte character"
aload 7
invokestatic org.jruby.util.RegexpSupport.raisePreprocessError:(Lorg/jruby/Ruby;Lorg/jruby/util/ByteList;Ljava/lang/String;Lorg/jruby/util/RegexpSupport$ErrorMode;)I
pop
2: StackMap locals:
StackMap stack:
iconst_0
istore 8
start local 8 3: iconst_0
istore 9
start local 9 4: iconst_0
istore 10
start local 10 5: StackMap locals: int int int
StackMap stack:
iload 4
iload 5
if_icmpne 6
aload 0
aload 6
ldc "too short escape sequence"
aload 7
invokestatic org.jruby.util.RegexpSupport.raisePreprocessError:(Lorg/jruby/Ruby;Lorg/jruby/util/ByteList;Ljava/lang/String;Lorg/jruby/util/RegexpSupport$ErrorMode;)I
pop
6: StackMap locals:
StackMap stack:
aload 3
iload 4
iinc 4 1
baload
lookupswitch { // 20
48: 15
49: 15
50: 15
51: 15
52: 15
53: 15
54: 15
55: 15
67: 39
77: 30
92: 7
97: 13
99: 41
101: 14
102: 11
110: 8
114: 10
116: 9
118: 12
120: 22
default: 50
}
7: StackMap locals:
StackMap stack:
bipush 92
istore 10
goto 51
8: StackMap locals:
StackMap stack:
bipush 10
istore 10
goto 51
9: StackMap locals:
StackMap stack:
bipush 9
istore 10
goto 51
10: StackMap locals:
StackMap stack:
bipush 13
istore 10
goto 51
11: StackMap locals:
StackMap stack:
bipush 12
istore 10
goto 51
12: StackMap locals:
StackMap stack:
bipush 11
istore 10
goto 51
13: StackMap locals:
StackMap stack:
bipush 7
istore 10
goto 51
14: StackMap locals:
StackMap stack:
bipush 27
istore 10
goto 51
15: StackMap locals:
StackMap stack:
iinc 4 -1
16: iload 5
iload 4
iconst_3
iadd
if_icmpge 17
iload 5
iload 4
isub
goto 18
StackMap locals:
StackMap stack:
17: iconst_3
StackMap locals:
StackMap stack: int
18: istore 11
start local 11 19: aload 3
iload 4
iload 11
invokestatic org.jruby.util.StringSupport.scanOct:([BII)I
istore 10
20: iload 4
aload 3
iload 4
iload 11
invokestatic org.jruby.util.StringSupport.octLength:([BII)I
iadd
istore 4
21: goto 51
end local 11 22: StackMap locals:
StackMap stack:
iload 5
iload 4
iconst_2
iadd
if_icmpge 23
iload 5
iload 4
isub
goto 24
StackMap locals:
StackMap stack:
23: iconst_2
StackMap locals:
StackMap stack: int
24: istore 12
start local 12 25: aload 3
iload 4
iload 12
invokestatic org.jruby.util.StringSupport.scanHex:([BII)I
istore 10
26: aload 3
iload 4
iload 12
invokestatic org.jruby.util.StringSupport.hexLength:([BII)I
istore 13
start local 13 27: iload 13
iconst_1
if_icmpge 28
aload 0
aload 6
ldc "invalid hex escape"
aload 7
invokestatic org.jruby.util.RegexpSupport.raisePreprocessError:(Lorg/jruby/Ruby;Lorg/jruby/util/ByteList;Ljava/lang/String;Lorg/jruby/util/RegexpSupport$ErrorMode;)I
pop
28: StackMap locals: org.jruby.Ruby byte[] int byte[] int int org.jruby.util.ByteList org.jruby.util.RegexpSupport$ErrorMode int int int top int int
StackMap stack:
iload 4
iload 13
iadd
istore 4
29: goto 51
end local 13 end local 12 30: StackMap locals: org.jruby.Ruby byte[] int byte[] int int org.jruby.util.ByteList org.jruby.util.RegexpSupport$ErrorMode int int int
StackMap stack:
iload 8
ifeq 31
aload 0
aload 6
ldc "duplicate meta escape"
aload 7
invokestatic org.jruby.util.RegexpSupport.raisePreprocessError:(Lorg/jruby/Ruby;Lorg/jruby/util/ByteList;Ljava/lang/String;Lorg/jruby/util/RegexpSupport$ErrorMode;)I
pop
31: StackMap locals:
StackMap stack:
iconst_1
istore 8
32: iload 4
iconst_1
iadd
iload 5
if_icmpge 38
aload 3
iload 4
iinc 4 1
baload
bipush 45
if_icmpne 38
aload 3
iload 4
baload
sipush 128
iand
ifne 38
33: aload 3
iload 4
baload
bipush 92
if_icmpne 36
34: iinc 4 1
35: goto 5
36: StackMap locals:
StackMap stack:
aload 3
iload 4
iinc 4 1
baload
sipush 255
iand
istore 10
37: goto 51
38: StackMap locals:
StackMap stack:
aload 0
aload 6
ldc "too short meta escape"
aload 7
invokestatic org.jruby.util.RegexpSupport.raisePreprocessError:(Lorg/jruby/Ruby;Lorg/jruby/util/ByteList;Ljava/lang/String;Lorg/jruby/util/RegexpSupport$ErrorMode;)I
pop
39: StackMap locals:
StackMap stack:
iload 4
iload 5
if_icmpeq 40
aload 3
iload 4
iinc 4 1
baload
bipush 45
if_icmpeq 41
StackMap locals:
StackMap stack:
40: aload 0
aload 6
ldc "too short control escape"
aload 7
invokestatic org.jruby.util.RegexpSupport.raisePreprocessError:(Lorg/jruby/Ruby;Lorg/jruby/util/ByteList;Ljava/lang/String;Lorg/jruby/util/RegexpSupport$ErrorMode;)I
pop
41: StackMap locals:
StackMap stack:
iload 9
ifeq 42
aload 0
aload 6
ldc "duplicate control escape"
aload 7
invokestatic org.jruby.util.RegexpSupport.raisePreprocessError:(Lorg/jruby/Ruby;Lorg/jruby/util/ByteList;Ljava/lang/String;Lorg/jruby/util/RegexpSupport$ErrorMode;)I
pop
42: StackMap locals:
StackMap stack:
iconst_1
istore 9
43: iload 4
iload 5
if_icmpge 49
aload 3
iload 4
baload
sipush 128
iand
ifne 49
44: aload 3
iload 4
baload
bipush 92
if_icmpne 47
45: iinc 4 1
46: goto 5
47: StackMap locals:
StackMap stack:
aload 3
iload 4
iinc 4 1
baload
sipush 255
iand
istore 10
48: goto 51
49: StackMap locals:
StackMap stack:
aload 0
aload 6
ldc "too short control escape"
aload 7
invokestatic org.jruby.util.RegexpSupport.raisePreprocessError:(Lorg/jruby/Ruby;Lorg/jruby/util/ByteList;Ljava/lang/String;Lorg/jruby/util/RegexpSupport$ErrorMode;)I
pop
50: StackMap locals:
StackMap stack:
aload 0
aload 6
ldc "unexpected escape sequence"
aload 7
invokestatic org.jruby.util.RegexpSupport.raisePreprocessError:(Lorg/jruby/Ruby;Lorg/jruby/util/ByteList;Ljava/lang/String;Lorg/jruby/util/RegexpSupport$ErrorMode;)I
pop
51: StackMap locals:
StackMap stack:
iload 10
iflt 52
iload 10
sipush 255
if_icmple 53
StackMap locals:
StackMap stack:
52: aload 0
aload 6
ldc "invalid escape code"
aload 7
invokestatic org.jruby.util.RegexpSupport.raisePreprocessError:(Lorg/jruby/Ruby;Lorg/jruby/util/ByteList;Ljava/lang/String;Lorg/jruby/util/RegexpSupport$ErrorMode;)I
pop
53: StackMap locals:
StackMap stack:
iload 9
ifeq 54
iload 10
bipush 31
iand
istore 10
54: StackMap locals:
StackMap stack:
iload 8
ifeq 55
iload 10
sipush 128
ior
istore 10
55: StackMap locals:
StackMap stack:
aload 1
iload 2
iload 10
i2b
bastore
56: iload 4
ireturn
end local 10 end local 9 end local 8 end local 7 end local 6 end local 5 end local 4 end local 3 end local 2 end local 1 end local 0 LocalVariableTable:
Start End Slot Name Signature
0 57 0 runtime Lorg/jruby/Ruby;
0 57 1 to [B
0 57 2 toP I
0 57 3 bytes [B
0 57 4 p I
0 57 5 end I
0 57 6 str Lorg/jruby/util/ByteList;
0 57 7 mode Lorg/jruby/util/RegexpSupport$ErrorMode;
3 57 8 metaPrefix Z
4 57 9 ctrlPrefix Z
5 57 10 code I
19 22 11 olen I
25 30 12 hlen I
27 30 13 len I
MethodParameters:
Name Flags
runtime
to
toP
bytes
p
end
str
mode
private static int unescapeEscapedNonAscii(org.jruby.Ruby, org.jruby.util.ByteList, byte[], int, int, org.jcodings.Encoding, org.jcodings.Encoding[], org.jruby.util.ByteList, org.jruby.util.RegexpSupport$ErrorMode);
descriptor: (Lorg/jruby/Ruby;Lorg/jruby/util/ByteList;[BIILorg/jcodings/Encoding;[Lorg/jcodings/Encoding;Lorg/jruby/util/ByteList;Lorg/jruby/util/RegexpSupport$ErrorMode;)I
flags: (0x000a) ACC_PRIVATE, ACC_STATIC
Code:
stack=8, locals=12, args_size=9
start local 0 start local 1 start local 2 start local 3 start local 4 start local 5 start local 6 start local 7 start local 8 0: aload 5
invokevirtual org.jcodings.Encoding.maxLength:()I
newarray 8
astore 9
start local 9 1: iconst_0
istore 10
start local 10 2: aload 0
aload 9
iload 10
iinc 10 1
aload 2
iload 3
iload 4
aload 7
aload 8
invokestatic org.jruby.util.RegexpSupport.readEscapedByte:(Lorg/jruby/Ruby;[BI[BIILorg/jruby/util/ByteList;Lorg/jruby/util/RegexpSupport$ErrorMode;)I
istore 3
3: goto 5
4: StackMap locals: byte[] int
StackMap stack:
aload 0
aload 9
iload 10
iinc 10 1
aload 2
iload 3
iload 4
aload 7
aload 8
invokestatic org.jruby.util.RegexpSupport.readEscapedByte:(Lorg/jruby/Ruby;[BI[BIILorg/jruby/util/ByteList;Lorg/jruby/util/RegexpSupport$ErrorMode;)I
istore 3
5: StackMap locals:
StackMap stack:
iload 10
aload 5
invokevirtual org.jcodings.Encoding.maxLength:()I
if_icmpge 6
aload 5
aload 9
iconst_0
iload 10
invokestatic org.jruby.util.StringSupport.preciseLength:(Lorg/jcodings/Encoding;[BII)I
invokestatic org.jruby.util.StringSupport.MBCLEN_NEEDMORE_P:(I)Z
ifne 4
6: StackMap locals:
StackMap stack:
aload 5
aload 9
iconst_0
iload 10
invokestatic org.jruby.util.StringSupport.preciseLength:(Lorg/jcodings/Encoding;[BII)I
istore 11
start local 11 7: iload 11
iconst_m1
if_icmpne 9
8: aload 0
aload 7
ldc "invalid multibyte escape"
aload 8
invokestatic org.jruby.util.RegexpSupport.raisePreprocessError:(Lorg/jruby/Ruby;Lorg/jruby/util/ByteList;Ljava/lang/String;Lorg/jruby/util/RegexpSupport$ErrorMode;)I
pop
9: StackMap locals: int
StackMap stack:
iload 10
iconst_1
if_icmpgt 10
aload 9
iconst_0
baload
sipush 128
iand
ifeq 17
10: StackMap locals:
StackMap stack:
aload 1
ifnull 11
aload 1
aload 9
iconst_0
iload 10
invokevirtual org.jruby.util.ByteList.append:([BII)V
11: StackMap locals:
StackMap stack:
aload 6
iconst_0
aaload
ifnonnull 14
12: aload 6
iconst_0
aload 5
aastore
13: goto 18
StackMap locals:
StackMap stack:
14: aload 6
iconst_0
aaload
aload 5
if_acmpeq 18
15: aload 0
aload 7
ldc "escaped non ASCII character in UTF-8 regexp"
aload 8
invokestatic org.jruby.util.RegexpSupport.raisePreprocessError:(Lorg/jruby/Ruby;Lorg/jruby/util/ByteList;Ljava/lang/String;Lorg/jruby/util/RegexpSupport$ErrorMode;)I
pop
16: goto 18
17: StackMap locals:
StackMap stack:
aload 1
ifnull 18
aload 0
aload 1
ldc "\\x%02X"
aload 9
iconst_0
baload
sipush 255
iand
invokestatic org.jruby.util.Sprintf.sprintf:(Lorg/jruby/Ruby;Lorg/jruby/util/ByteList;Ljava/lang/CharSequence;I)Z
pop
18: StackMap locals:
StackMap stack:
iload 3
ireturn
end local 11 end local 10 end local 9 end local 8 end local 7 end local 6 end local 5 end local 4 end local 3 end local 2 end local 1 end local 0 LocalVariableTable:
Start End Slot Name Signature
0 19 0 runtime Lorg/jruby/Ruby;
0 19 1 to Lorg/jruby/util/ByteList;
0 19 2 bytes [B
0 19 3 p I
0 19 4 end I
0 19 5 enc Lorg/jcodings/Encoding;
0 19 6 encp [Lorg/jcodings/Encoding;
0 19 7 str Lorg/jruby/util/ByteList;
0 19 8 mode Lorg/jruby/util/RegexpSupport$ErrorMode;
1 19 9 chBuf [B
2 19 10 chLen I
7 19 11 cl I
MethodParameters:
Name Flags
runtime
to
bytes
p
end
enc
encp
str
mode
private static int unescapeUnicodeList(org.jruby.Ruby, org.jruby.util.ByteList, byte[], int, int, org.jcodings.Encoding[], org.jruby.util.ByteList, org.jruby.util.RegexpSupport$ErrorMode);
descriptor: (Lorg/jruby/Ruby;Lorg/jruby/util/ByteList;[BII[Lorg/jcodings/Encoding;Lorg/jruby/util/ByteList;Lorg/jruby/util/RegexpSupport$ErrorMode;)I
flags: (0x000a) ACC_PRIVATE, ACC_STATIC
Code:
stack=6, locals=11, args_size=8
start local 0 start local 1 start local 2 start local 3 start local 4 start local 5 start local 6 start local 7 0: goto 2
StackMap locals:
StackMap stack:
1: iinc 3 1
StackMap locals:
StackMap stack:
2: iload 3
iload 4
if_icmpge 3
getstatic org.jcodings.specific.ASCIIEncoding.INSTANCE:Lorg/jcodings/specific/ASCIIEncoding;
aload 2
iload 3
baload
sipush 255
iand
invokevirtual org.jcodings.specific.ASCIIEncoding.isSpace:(I)Z
ifne 1
3: StackMap locals:
StackMap stack:
iconst_0
istore 8
start local 8 4: StackMap locals: int
StackMap stack:
aload 2
iload 3
iload 4
iload 3
isub
invokestatic org.jruby.util.StringSupport.scanHex:([BII)I
istore 9
start local 9 5: aload 2
iload 3
iload 4
iload 3
isub
invokestatic org.jruby.util.StringSupport.hexLength:([BII)I
istore 10
start local 10 6: iload 10
ifne 7
goto 15
7: StackMap locals: int int
StackMap stack:
iload 10
bipush 6
if_icmple 8
aload 0
aload 6
ldc "invalid Unicode range"
aload 7
invokestatic org.jruby.util.RegexpSupport.raisePreprocessError:(Lorg/jruby/Ruby;Lorg/jruby/util/ByteList;Ljava/lang/String;Lorg/jruby/util/RegexpSupport$ErrorMode;)I
pop
8: StackMap locals:
StackMap stack:
iload 3
iload 10
iadd
istore 3
9: aload 1
ifnull 10
aload 0
aload 1
iload 9
aload 5
aload 6
aload 7
invokestatic org.jruby.util.RegexpSupport.appendUtf8:(Lorg/jruby/Ruby;Lorg/jruby/util/ByteList;I[Lorg/jcodings/Encoding;Lorg/jruby/util/ByteList;Lorg/jruby/util/RegexpSupport$ErrorMode;)V
10: StackMap locals:
StackMap stack:
iconst_1
istore 8
11: goto 13
StackMap locals:
StackMap stack:
12: iinc 3 1
StackMap locals:
StackMap stack:
13: iload 3
iload 4
if_icmpge 4
getstatic org.jcodings.specific.ASCIIEncoding.INSTANCE:Lorg/jcodings/specific/ASCIIEncoding;
aload 2
iload 3
baload
sipush 255
iand
invokevirtual org.jcodings.specific.ASCIIEncoding.isSpace:(I)Z
ifne 12
end local 10 end local 9 14: goto 4
15: StackMap locals:
StackMap stack:
iload 8
ifne 16
aload 0
aload 6
ldc "invalid Unicode list"
aload 7
invokestatic org.jruby.util.RegexpSupport.raisePreprocessError:(Lorg/jruby/Ruby;Lorg/jruby/util/ByteList;Ljava/lang/String;Lorg/jruby/util/RegexpSupport$ErrorMode;)I
pop
16: StackMap locals:
StackMap stack:
iload 3
ireturn
end local 8 end local 7 end local 6 end local 5 end local 4 end local 3 end local 2 end local 1 end local 0 LocalVariableTable:
Start End Slot Name Signature
0 17 0 runtime Lorg/jruby/Ruby;
0 17 1 to Lorg/jruby/util/ByteList;
0 17 2 bytes [B
0 17 3 p I
0 17 4 end I
0 17 5 encp [Lorg/jcodings/Encoding;
0 17 6 str Lorg/jruby/util/ByteList;
0 17 7 mode Lorg/jruby/util/RegexpSupport$ErrorMode;
4 17 8 hasUnicode Z
5 14 9 code I
6 14 10 len I
MethodParameters:
Name Flags
runtime
to
bytes
p
end
encp
str
mode
private static int unescapeUnicodeBmp(org.jruby.Ruby, org.jruby.util.ByteList, byte[], int, int, org.jcodings.Encoding[], org.jruby.util.ByteList, org.jruby.util.RegexpSupport$ErrorMode);
descriptor: (Lorg/jruby/Ruby;Lorg/jruby/util/ByteList;[BII[Lorg/jcodings/Encoding;Lorg/jruby/util/ByteList;Lorg/jruby/util/RegexpSupport$ErrorMode;)I
flags: (0x000a) ACC_PRIVATE, ACC_STATIC
Code:
stack=6, locals=10, args_size=8
start local 0 start local 1 start local 2 start local 3 start local 4 start local 5 start local 6 start local 7 0: iload 3
iconst_4
iadd
iload 4
if_icmple 1
aload 0
aload 6
ldc "invalid Unicode escape"
aload 7
invokestatic org.jruby.util.RegexpSupport.raisePreprocessError:(Lorg/jruby/Ruby;Lorg/jruby/util/ByteList;Ljava/lang/String;Lorg/jruby/util/RegexpSupport$ErrorMode;)I
pop
1: StackMap locals:
StackMap stack:
aload 2
iload 3
iconst_4
invokestatic org.jruby.util.StringSupport.scanHex:([BII)I
istore 8
start local 8 2: aload 2
iload 3
iconst_4
invokestatic org.jruby.util.StringSupport.hexLength:([BII)I
istore 9
start local 9 3: iload 9
iconst_4
if_icmpeq 4
aload 0
aload 6
ldc "invalid Unicode escape"
aload 7
invokestatic org.jruby.util.RegexpSupport.raisePreprocessError:(Lorg/jruby/Ruby;Lorg/jruby/util/ByteList;Ljava/lang/String;Lorg/jruby/util/RegexpSupport$ErrorMode;)I
pop
4: StackMap locals: int int
StackMap stack:
aload 0
aload 1
iload 8
aload 5
aload 6
aload 7
invokestatic org.jruby.util.RegexpSupport.appendUtf8:(Lorg/jruby/Ruby;Lorg/jruby/util/ByteList;I[Lorg/jcodings/Encoding;Lorg/jruby/util/ByteList;Lorg/jruby/util/RegexpSupport$ErrorMode;)V
5: iload 3
iconst_4
iadd
ireturn
end local 9 end local 8 end local 7 end local 6 end local 5 end local 4 end local 3 end local 2 end local 1 end local 0 LocalVariableTable:
Start End Slot Name Signature
0 6 0 runtime Lorg/jruby/Ruby;
0 6 1 to Lorg/jruby/util/ByteList;
0 6 2 bytes [B
0 6 3 p I
0 6 4 end I
0 6 5 encp [Lorg/jcodings/Encoding;
0 6 6 str Lorg/jruby/util/ByteList;
0 6 7 mode Lorg/jruby/util/RegexpSupport$ErrorMode;
2 6 8 code I
3 6 9 len I
MethodParameters:
Name Flags
runtime
to
bytes
p
end
encp
str
mode
private static void appendUtf8(org.jruby.Ruby, org.jruby.util.ByteList, int, org.jcodings.Encoding[], org.jruby.util.ByteList, org.jruby.util.RegexpSupport$ErrorMode);
descriptor: (Lorg/jruby/Ruby;Lorg/jruby/util/ByteList;I[Lorg/jcodings/Encoding;Lorg/jruby/util/ByteList;Lorg/jruby/util/RegexpSupport$ErrorMode;)V
flags: (0x000a) ACC_PRIVATE, ACC_STATIC
Code:
stack=6, locals=6, args_size=6
start local 0 start local 1 start local 2 start local 3 start local 4 start local 5 0: aload 0
iload 2
aload 4
getstatic org.jruby.util.RegexpSupport$ErrorMode.PREPROCESS:Lorg/jruby/util/RegexpSupport$ErrorMode;
invokestatic org.jruby.util.RegexpSupport.checkUnicodeRange:(Lorg/jruby/Ruby;ILorg/jruby/util/ByteList;Lorg/jruby/util/RegexpSupport$ErrorMode;)V
1: iload 2
sipush 128
if_icmpge 4
2: aload 1
ifnull 12
aload 0
aload 1
ldc "\\x%02X"
iload 2
invokestatic org.jruby.util.Sprintf.sprintf:(Lorg/jruby/Ruby;Lorg/jruby/util/ByteList;Ljava/lang/CharSequence;I)Z
pop
3: goto 12
4: StackMap locals:
StackMap stack:
aload 1
ifnull 7
5: aload 1
aload 1
invokevirtual org.jruby.util.ByteList.getRealSize:()I
bipush 6
iadd
invokevirtual org.jruby.util.ByteList.ensure:(I)V
6: aload 1
aload 1
invokevirtual org.jruby.util.ByteList.getRealSize:()I
aload 0
aload 1
invokevirtual org.jruby.util.ByteList.getUnsafeBytes:()[B
aload 1
invokevirtual org.jruby.util.ByteList.getBegin:()I
aload 1
invokevirtual org.jruby.util.ByteList.getRealSize:()I
iadd
iload 2
invokestatic org.jruby.util.Pack.utf8Decode:(Lorg/jruby/Ruby;[BII)I
iadd
invokevirtual org.jruby.util.ByteList.setRealSize:(I)V
7: StackMap locals:
StackMap stack:
aload 3
iconst_0
aaload
ifnonnull 10
8: aload 3
iconst_0
getstatic org.jcodings.specific.UTF8Encoding.INSTANCE:Lorg/jcodings/specific/UTF8Encoding;
aastore
9: goto 12
StackMap locals:
StackMap stack:
10: aload 3
iconst_0
aaload
invokevirtual org.jcodings.Encoding.isUTF8:()Z
ifne 12
11: aload 0
aload 4
ldc "UTF-8 character in non UTF-8 regexp"
aload 5
invokestatic org.jruby.util.RegexpSupport.raisePreprocessError:(Lorg/jruby/Ruby;Lorg/jruby/util/ByteList;Ljava/lang/String;Lorg/jruby/util/RegexpSupport$ErrorMode;)I
pop
12: StackMap locals:
StackMap stack:
return
end local 5 end local 4 end local 3 end local 2 end local 1 end local 0 LocalVariableTable:
Start End Slot Name Signature
0 13 0 runtime Lorg/jruby/Ruby;
0 13 1 to Lorg/jruby/util/ByteList;
0 13 2 code I
0 13 3 enc [Lorg/jcodings/Encoding;
0 13 4 str Lorg/jruby/util/ByteList;
0 13 5 mode Lorg/jruby/util/RegexpSupport$ErrorMode;
MethodParameters:
Name Flags
runtime
to
code
enc
str
mode
private static void checkUnicodeRange(org.jruby.Ruby, int, org.jruby.util.ByteList, org.jruby.util.RegexpSupport$ErrorMode);
descriptor: (Lorg/jruby/Ruby;ILorg/jruby/util/ByteList;Lorg/jruby/util/RegexpSupport$ErrorMode;)V
flags: (0x000a) ACC_PRIVATE, ACC_STATIC
Code:
stack=4, locals=4, args_size=4
start local 0 start local 1 start local 2 start local 3 0: ldc 55296
iload 1
if_icmpgt 1
iload 1
ldc 57343
if_icmple 2
StackMap locals:
StackMap stack:
1: ldc 1114111
iload 1
if_icmpge 3
2: StackMap locals:
StackMap stack:
aload 0
aload 2
ldc "invalid Unicode range"
aload 3
invokestatic org.jruby.util.RegexpSupport.raisePreprocessError:(Lorg/jruby/Ruby;Lorg/jruby/util/ByteList;Ljava/lang/String;Lorg/jruby/util/RegexpSupport$ErrorMode;)I
pop
3: StackMap locals:
StackMap stack:
return
end local 3 end local 2 end local 1 end local 0 LocalVariableTable:
Start End Slot Name Signature
0 4 0 runtime Lorg/jruby/Ruby;
0 4 1 code I
0 4 2 str Lorg/jruby/util/ByteList;
0 4 3 mode Lorg/jruby/util/RegexpSupport$ErrorMode;
MethodParameters:
Name Flags
runtime
code
str
mode
static int[] $SWITCH_TABLE$org$jruby$util$RegexpSupport$ErrorMode();
descriptor: ()[I
flags: (0x1008) ACC_STATIC, ACC_SYNTHETIC
Code:
stack=3, locals=1, args_size=0
0: getstatic org.jruby.util.RegexpSupport.$SWITCH_TABLE$org$jruby$util$RegexpSupport$ErrorMode:[I
dup
ifnull 1
areturn
StackMap locals:
StackMap stack: int[]
1: pop
invokestatic org.jruby.util.RegexpSupport$ErrorMode.values:()[Lorg/jruby/util/RegexpSupport$ErrorMode;
arraylength
newarray 10
astore 0
2: aload 0
getstatic org.jruby.util.RegexpSupport$ErrorMode.DESC:Lorg/jruby/util/RegexpSupport$ErrorMode;
invokevirtual org.jruby.util.RegexpSupport$ErrorMode.ordinal:()I
iconst_3
iastore
3: goto 5
StackMap locals: int[]
StackMap stack: java.lang.NoSuchFieldError
4: pop
StackMap locals:
StackMap stack:
5: aload 0
getstatic org.jruby.util.RegexpSupport$ErrorMode.PREPROCESS:Lorg/jruby/util/RegexpSupport$ErrorMode;
invokevirtual org.jruby.util.RegexpSupport$ErrorMode.ordinal:()I
iconst_2
iastore
6: goto 8
StackMap locals:
StackMap stack: java.lang.NoSuchFieldError
7: pop
StackMap locals:
StackMap stack:
8: aload 0
getstatic org.jruby.util.RegexpSupport$ErrorMode.RAISE:Lorg/jruby/util/RegexpSupport$ErrorMode;
invokevirtual org.jruby.util.RegexpSupport$ErrorMode.ordinal:()I
iconst_1
iastore
9: goto 11
StackMap locals:
StackMap stack: java.lang.NoSuchFieldError
10: pop
StackMap locals:
StackMap stack:
11: aload 0
dup
putstatic org.jruby.util.RegexpSupport.$SWITCH_TABLE$org$jruby$util$RegexpSupport$ErrorMode:[I
areturn
LocalVariableTable:
Start End Slot Name Signature
Exception table:
from to target type
2 3 4 Class java.lang.NoSuchFieldError
5 6 7 Class java.lang.NoSuchFieldError
8 9 10 Class java.lang.NoSuchFieldError
}
SourceFile: "RegexpSupport.java"
NestMembers:
org.jruby.util.RegexpSupport$ErrorMode
InnerClasses:
public final ErrorMode = org.jruby.util.RegexpSupport$ErrorMode of org.jruby.util.RegexpSupport