public class org.jruby.ext.cgi.escape.CGIEscape implements org.jruby.runtime.load.Library
minor version: 0
major version: 59
flags: flags: (0x0021) ACC_PUBLIC, ACC_SUPER
this_class: org.jruby.ext.cgi.escape.CGIEscape
super_class: java.lang.Object
{
public static final java.lang.String ACCEPT_CHARSET;
descriptor: Ljava/lang/String;
flags: (0x0019) ACC_PUBLIC, ACC_STATIC, ACC_FINAL
ConstantValue: "@@accept_charset"
public static final byte[] NO39;
descriptor: [B
flags: (0x0019) ACC_PUBLIC, ACC_STATIC, ACC_FINAL
public static final byte[] AMP;
descriptor: [B
flags: (0x0019) ACC_PUBLIC, ACC_STATIC, ACC_FINAL
public static final byte[] QUOT;
descriptor: [B
flags: (0x0019) ACC_PUBLIC, ACC_STATIC, ACC_FINAL
public static final byte[] LT;
descriptor: [B
flags: (0x0019) ACC_PUBLIC, ACC_STATIC, ACC_FINAL
public static final byte[] GT;
descriptor: [B
flags: (0x0019) ACC_PUBLIC, ACC_STATIC, ACC_FINAL
public static final int UNICODE_MAX;
descriptor: I
flags: (0x0019) ACC_PUBLIC, ACC_STATIC, ACC_FINAL
ConstantValue: 1114111
public static final byte[] TSEMI;
descriptor: [B
flags: (0x0019) ACC_PUBLIC, ACC_STATIC, ACC_FINAL
public static final byte[] UOTSEMI;
descriptor: [B
flags: (0x0019) ACC_PUBLIC, ACC_STATIC, ACC_FINAL
public static final byte[] MPSEMI;
descriptor: [B
flags: (0x0019) ACC_PUBLIC, ACC_STATIC, ACC_FINAL
public static final byte[] POSSEMI;
descriptor: [B
flags: (0x0019) ACC_PUBLIC, ACC_STATIC, ACC_FINAL
static final byte[] upper_hexdigits;
descriptor: [B
flags: (0x0018) ACC_STATIC, ACC_FINAL
private static final int[] ruby_digit36_to_number_table;
descriptor: [I
flags: (0x001a) ACC_PRIVATE, ACC_STATIC, ACC_FINAL
static void <clinit>();
descriptor: ()V
flags: (0x0008) ACC_STATIC
Code:
stack=4, locals=0, args_size=0
0: ldc "'"
getstatic org.jruby.RubyEncoding.UTF8:Ljava/nio/charset/Charset;
invokevirtual java.lang.String.getBytes:(Ljava/nio/charset/Charset;)[B
putstatic org.jruby.ext.cgi.escape.CGIEscape.NO39:[B
1: ldc "&"
getstatic org.jruby.RubyEncoding.UTF8:Ljava/nio/charset/Charset;
invokevirtual java.lang.String.getBytes:(Ljava/nio/charset/Charset;)[B
putstatic org.jruby.ext.cgi.escape.CGIEscape.AMP:[B
2: ldc """
getstatic org.jruby.RubyEncoding.UTF8:Ljava/nio/charset/Charset;
invokevirtual java.lang.String.getBytes:(Ljava/nio/charset/Charset;)[B
putstatic org.jruby.ext.cgi.escape.CGIEscape.QUOT:[B
3: ldc "<"
getstatic org.jruby.RubyEncoding.UTF8:Ljava/nio/charset/Charset;
invokevirtual java.lang.String.getBytes:(Ljava/nio/charset/Charset;)[B
putstatic org.jruby.ext.cgi.escape.CGIEscape.LT:[B
4: ldc ">"
getstatic org.jruby.RubyEncoding.UTF8:Ljava/nio/charset/Charset;
invokevirtual java.lang.String.getBytes:(Ljava/nio/charset/Charset;)[B
putstatic org.jruby.ext.cgi.escape.CGIEscape.GT:[B
5: ldc "t;"
getstatic org.jruby.RubyEncoding.UTF8:Ljava/nio/charset/Charset;
invokevirtual java.lang.String.getBytes:(Ljava/nio/charset/Charset;)[B
putstatic org.jruby.ext.cgi.escape.CGIEscape.TSEMI:[B
6: ldc "uot;"
getstatic org.jruby.RubyEncoding.UTF8:Ljava/nio/charset/Charset;
invokevirtual java.lang.String.getBytes:(Ljava/nio/charset/Charset;)[B
putstatic org.jruby.ext.cgi.escape.CGIEscape.UOTSEMI:[B
7: ldc "mp;"
getstatic org.jruby.RubyEncoding.UTF8:Ljava/nio/charset/Charset;
invokevirtual java.lang.String.getBytes:(Ljava/nio/charset/Charset;)[B
putstatic org.jruby.ext.cgi.escape.CGIEscape.MPSEMI:[B
8: ldc "pos;"
getstatic org.jruby.RubyEncoding.UTF8:Ljava/nio/charset/Charset;
invokevirtual java.lang.String.getBytes:(Ljava/nio/charset/Charset;)[B
putstatic org.jruby.ext.cgi.escape.CGIEscape.POSSEMI:[B
9: ldc "0123456789ABCDEF"
getstatic org.jruby.RubyEncoding.UTF8:Ljava/nio/charset/Charset;
invokevirtual java.lang.String.getBytes:(Ljava/nio/charset/Charset;)[B
putstatic org.jruby.ext.cgi.escape.CGIEscape.upper_hexdigits:[B
10: sipush 256
newarray 10
dup
iconst_0
11: iconst_m1
iastore
dup
iconst_1
iconst_m1
iastore
dup
iconst_2
iconst_m1
iastore
dup
iconst_3
iconst_m1
iastore
dup
iconst_4
iconst_m1
iastore
dup
iconst_5
iconst_m1
iastore
dup
bipush 6
iconst_m1
iastore
dup
bipush 7
iconst_m1
iastore
dup
bipush 8
iconst_m1
iastore
dup
bipush 9
iconst_m1
iastore
dup
bipush 10
iconst_m1
iastore
dup
bipush 11
iconst_m1
iastore
dup
bipush 12
iconst_m1
iastore
dup
bipush 13
iconst_m1
iastore
dup
bipush 14
iconst_m1
iastore
dup
bipush 15
iconst_m1
iastore
dup
bipush 16
12: iconst_m1
iastore
dup
bipush 17
iconst_m1
iastore
dup
bipush 18
iconst_m1
iastore
dup
bipush 19
iconst_m1
iastore
dup
bipush 20
iconst_m1
iastore
dup
bipush 21
iconst_m1
iastore
dup
bipush 22
iconst_m1
iastore
dup
bipush 23
iconst_m1
iastore
dup
bipush 24
iconst_m1
iastore
dup
bipush 25
iconst_m1
iastore
dup
bipush 26
iconst_m1
iastore
dup
bipush 27
iconst_m1
iastore
dup
bipush 28
iconst_m1
iastore
dup
bipush 29
iconst_m1
iastore
dup
bipush 30
iconst_m1
iastore
dup
bipush 31
iconst_m1
iastore
dup
bipush 32
13: iconst_m1
iastore
dup
bipush 33
iconst_m1
iastore
dup
bipush 34
iconst_m1
iastore
dup
bipush 35
iconst_m1
iastore
dup
bipush 36
iconst_m1
iastore
dup
bipush 37
iconst_m1
iastore
dup
bipush 38
iconst_m1
iastore
dup
bipush 39
iconst_m1
iastore
dup
bipush 40
iconst_m1
iastore
dup
bipush 41
iconst_m1
iastore
dup
bipush 42
iconst_m1
iastore
dup
bipush 43
iconst_m1
iastore
dup
bipush 44
iconst_m1
iastore
dup
bipush 45
iconst_m1
iastore
dup
bipush 46
iconst_m1
iastore
dup
bipush 47
iconst_m1
iastore
dup
bipush 49
14: iconst_1
iastore
dup
bipush 50
iconst_2
iastore
dup
bipush 51
iconst_3
iastore
dup
bipush 52
iconst_4
iastore
dup
bipush 53
iconst_5
iastore
dup
bipush 54
bipush 6
iastore
dup
bipush 55
bipush 7
iastore
dup
bipush 56
bipush 8
iastore
dup
bipush 57
bipush 9
iastore
dup
bipush 58
iconst_m1
iastore
dup
bipush 59
iconst_m1
iastore
dup
bipush 60
iconst_m1
iastore
dup
bipush 61
iconst_m1
iastore
dup
bipush 62
iconst_m1
iastore
dup
bipush 63
iconst_m1
iastore
dup
bipush 64
15: iconst_m1
iastore
dup
bipush 65
bipush 10
iastore
dup
bipush 66
bipush 11
iastore
dup
bipush 67
bipush 12
iastore
dup
bipush 68
bipush 13
iastore
dup
bipush 69
bipush 14
iastore
dup
bipush 70
bipush 15
iastore
dup
bipush 71
bipush 16
iastore
dup
bipush 72
bipush 17
iastore
dup
bipush 73
bipush 18
iastore
dup
bipush 74
bipush 19
iastore
dup
bipush 75
bipush 20
iastore
dup
bipush 76
bipush 21
iastore
dup
bipush 77
bipush 22
iastore
dup
bipush 78
bipush 23
iastore
dup
bipush 79
bipush 24
iastore
dup
bipush 80
16: bipush 25
iastore
dup
bipush 81
bipush 26
iastore
dup
bipush 82
bipush 27
iastore
dup
bipush 83
bipush 28
iastore
dup
bipush 84
bipush 29
iastore
dup
bipush 85
bipush 30
iastore
dup
bipush 86
bipush 31
iastore
dup
bipush 87
bipush 32
iastore
dup
bipush 88
bipush 33
iastore
dup
bipush 89
bipush 34
iastore
dup
bipush 90
bipush 35
iastore
dup
bipush 91
iconst_m1
iastore
dup
bipush 92
iconst_m1
iastore
dup
bipush 93
iconst_m1
iastore
dup
bipush 94
iconst_m1
iastore
dup
bipush 95
iconst_m1
iastore
dup
bipush 96
17: iconst_m1
iastore
dup
bipush 97
bipush 10
iastore
dup
bipush 98
bipush 11
iastore
dup
bipush 99
bipush 12
iastore
dup
bipush 100
bipush 13
iastore
dup
bipush 101
bipush 14
iastore
dup
bipush 102
bipush 15
iastore
dup
bipush 103
bipush 16
iastore
dup
bipush 104
bipush 17
iastore
dup
bipush 105
bipush 18
iastore
dup
bipush 106
bipush 19
iastore
dup
bipush 107
bipush 20
iastore
dup
bipush 108
bipush 21
iastore
dup
bipush 109
bipush 22
iastore
dup
bipush 110
bipush 23
iastore
dup
bipush 111
bipush 24
iastore
dup
bipush 112
18: bipush 25
iastore
dup
bipush 113
bipush 26
iastore
dup
bipush 114
bipush 27
iastore
dup
bipush 115
bipush 28
iastore
dup
bipush 116
bipush 29
iastore
dup
bipush 117
bipush 30
iastore
dup
bipush 118
bipush 31
iastore
dup
bipush 119
bipush 32
iastore
dup
bipush 120
bipush 33
iastore
dup
bipush 121
bipush 34
iastore
dup
bipush 122
bipush 35
iastore
dup
bipush 123
iconst_m1
iastore
dup
bipush 124
iconst_m1
iastore
dup
bipush 125
iconst_m1
iastore
dup
bipush 126
iconst_m1
iastore
dup
bipush 127
iconst_m1
iastore
dup
sipush 128
19: iconst_m1
iastore
dup
sipush 129
iconst_m1
iastore
dup
sipush 130
iconst_m1
iastore
dup
sipush 131
iconst_m1
iastore
dup
sipush 132
iconst_m1
iastore
dup
sipush 133
iconst_m1
iastore
dup
sipush 134
iconst_m1
iastore
dup
sipush 135
iconst_m1
iastore
dup
sipush 136
iconst_m1
iastore
dup
sipush 137
iconst_m1
iastore
dup
sipush 138
iconst_m1
iastore
dup
sipush 139
iconst_m1
iastore
dup
sipush 140
iconst_m1
iastore
dup
sipush 141
iconst_m1
iastore
dup
sipush 142
iconst_m1
iastore
dup
sipush 143
iconst_m1
iastore
dup
sipush 144
20: iconst_m1
iastore
dup
sipush 145
iconst_m1
iastore
dup
sipush 146
iconst_m1
iastore
dup
sipush 147
iconst_m1
iastore
dup
sipush 148
iconst_m1
iastore
dup
sipush 149
iconst_m1
iastore
dup
sipush 150
iconst_m1
iastore
dup
sipush 151
iconst_m1
iastore
dup
sipush 152
iconst_m1
iastore
dup
sipush 153
iconst_m1
iastore
dup
sipush 154
iconst_m1
iastore
dup
sipush 155
iconst_m1
iastore
dup
sipush 156
iconst_m1
iastore
dup
sipush 157
iconst_m1
iastore
dup
sipush 158
iconst_m1
iastore
dup
sipush 159
iconst_m1
iastore
dup
sipush 160
21: iconst_m1
iastore
dup
sipush 161
iconst_m1
iastore
dup
sipush 162
iconst_m1
iastore
dup
sipush 163
iconst_m1
iastore
dup
sipush 164
iconst_m1
iastore
dup
sipush 165
iconst_m1
iastore
dup
sipush 166
iconst_m1
iastore
dup
sipush 167
iconst_m1
iastore
dup
sipush 168
iconst_m1
iastore
dup
sipush 169
iconst_m1
iastore
dup
sipush 170
iconst_m1
iastore
dup
sipush 171
iconst_m1
iastore
dup
sipush 172
iconst_m1
iastore
dup
sipush 173
iconst_m1
iastore
dup
sipush 174
iconst_m1
iastore
dup
sipush 175
iconst_m1
iastore
dup
sipush 176
22: iconst_m1
iastore
dup
sipush 177
iconst_m1
iastore
dup
sipush 178
iconst_m1
iastore
dup
sipush 179
iconst_m1
iastore
dup
sipush 180
iconst_m1
iastore
dup
sipush 181
iconst_m1
iastore
dup
sipush 182
iconst_m1
iastore
dup
sipush 183
iconst_m1
iastore
dup
sipush 184
iconst_m1
iastore
dup
sipush 185
iconst_m1
iastore
dup
sipush 186
iconst_m1
iastore
dup
sipush 187
iconst_m1
iastore
dup
sipush 188
iconst_m1
iastore
dup
sipush 189
iconst_m1
iastore
dup
sipush 190
iconst_m1
iastore
dup
sipush 191
iconst_m1
iastore
dup
sipush 192
23: iconst_m1
iastore
dup
sipush 193
iconst_m1
iastore
dup
sipush 194
iconst_m1
iastore
dup
sipush 195
iconst_m1
iastore
dup
sipush 196
iconst_m1
iastore
dup
sipush 197
iconst_m1
iastore
dup
sipush 198
iconst_m1
iastore
dup
sipush 199
iconst_m1
iastore
dup
sipush 200
iconst_m1
iastore
dup
sipush 201
iconst_m1
iastore
dup
sipush 202
iconst_m1
iastore
dup
sipush 203
iconst_m1
iastore
dup
sipush 204
iconst_m1
iastore
dup
sipush 205
iconst_m1
iastore
dup
sipush 206
iconst_m1
iastore
dup
sipush 207
iconst_m1
iastore
dup
sipush 208
24: iconst_m1
iastore
dup
sipush 209
iconst_m1
iastore
dup
sipush 210
iconst_m1
iastore
dup
sipush 211
iconst_m1
iastore
dup
sipush 212
iconst_m1
iastore
dup
sipush 213
iconst_m1
iastore
dup
sipush 214
iconst_m1
iastore
dup
sipush 215
iconst_m1
iastore
dup
sipush 216
iconst_m1
iastore
dup
sipush 217
iconst_m1
iastore
dup
sipush 218
iconst_m1
iastore
dup
sipush 219
iconst_m1
iastore
dup
sipush 220
iconst_m1
iastore
dup
sipush 221
iconst_m1
iastore
dup
sipush 222
iconst_m1
iastore
dup
sipush 223
iconst_m1
iastore
dup
sipush 224
25: iconst_m1
iastore
dup
sipush 225
iconst_m1
iastore
dup
sipush 226
iconst_m1
iastore
dup
sipush 227
iconst_m1
iastore
dup
sipush 228
iconst_m1
iastore
dup
sipush 229
iconst_m1
iastore
dup
sipush 230
iconst_m1
iastore
dup
sipush 231
iconst_m1
iastore
dup
sipush 232
iconst_m1
iastore
dup
sipush 233
iconst_m1
iastore
dup
sipush 234
iconst_m1
iastore
dup
sipush 235
iconst_m1
iastore
dup
sipush 236
iconst_m1
iastore
dup
sipush 237
iconst_m1
iastore
dup
sipush 238
iconst_m1
iastore
dup
sipush 239
iconst_m1
iastore
dup
sipush 240
26: iconst_m1
iastore
dup
sipush 241
iconst_m1
iastore
dup
sipush 242
iconst_m1
iastore
dup
sipush 243
iconst_m1
iastore
dup
sipush 244
iconst_m1
iastore
dup
sipush 245
iconst_m1
iastore
dup
sipush 246
iconst_m1
iastore
dup
sipush 247
iconst_m1
iastore
dup
sipush 248
iconst_m1
iastore
dup
sipush 249
iconst_m1
iastore
dup
sipush 250
iconst_m1
iastore
dup
sipush 251
iconst_m1
iastore
dup
sipush 252
iconst_m1
iastore
dup
sipush 253
iconst_m1
iastore
dup
sipush 254
iconst_m1
iastore
dup
sipush 255
iconst_m1
iastore
27: putstatic org.jruby.ext.cgi.escape.CGIEscape.ruby_digit36_to_number_table:[I
28: return
LocalVariableTable:
Start End Slot Name Signature
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/ext/cgi/escape/CGIEscape;
static void html_escaped_cat(org.jruby.RubyString, byte);
descriptor: (Lorg/jruby/RubyString;B)V
flags: (0x0008) ACC_STATIC
Code:
stack=2, locals=2, args_size=2
start local 0 start local 1 0: iload 1
lookupswitch { // 5
34: 5
38: 3
39: 1
60: 7
62: 9
default: 10
}
1: StackMap locals:
StackMap stack:
aload 0
getstatic org.jruby.ext.cgi.escape.CGIEscape.NO39:[B
invokevirtual org.jruby.RubyString.cat:([B)Lorg/jruby/RubyString;
pop
2: goto 10
3: StackMap locals:
StackMap stack:
aload 0
getstatic org.jruby.ext.cgi.escape.CGIEscape.AMP:[B
invokevirtual org.jruby.RubyString.cat:([B)Lorg/jruby/RubyString;
pop
4: goto 10
5: StackMap locals:
StackMap stack:
aload 0
getstatic org.jruby.ext.cgi.escape.CGIEscape.QUOT:[B
invokevirtual org.jruby.RubyString.cat:([B)Lorg/jruby/RubyString;
pop
6: goto 10
7: StackMap locals:
StackMap stack:
aload 0
getstatic org.jruby.ext.cgi.escape.CGIEscape.LT:[B
invokevirtual org.jruby.RubyString.cat:([B)Lorg/jruby/RubyString;
pop
8: goto 10
9: StackMap locals:
StackMap stack:
aload 0
getstatic org.jruby.ext.cgi.escape.CGIEscape.GT:[B
invokevirtual org.jruby.RubyString.cat:([B)Lorg/jruby/RubyString;
pop
10: StackMap locals:
StackMap stack:
return
end local 1 end local 0 LocalVariableTable:
Start End Slot Name Signature
0 11 0 str Lorg/jruby/RubyString;
0 11 1 c B
MethodParameters:
Name Flags
str
c
static void preserve_original_state(org.jruby.RubyString, org.jruby.RubyString);
descriptor: (Lorg/jruby/RubyString;Lorg/jruby/RubyString;)V
flags: (0x0008) ACC_STATIC
Code:
stack=2, locals=2, args_size=2
start local 0 start local 1 0: aload 1
aload 0
invokevirtual org.jruby.RubyString.getEncoding:()Lorg/jcodings/Encoding;
invokevirtual org.jruby.RubyString.setEncoding:(Lorg/jcodings/Encoding;)V
1: aload 1
aload 0
invokevirtual org.jruby.RubyString.infectBy:(Lorg/jruby/runtime/builtin/IRubyObject;)Lorg/jruby/runtime/builtin/IRubyObject;
pop
2: return
end local 1 end local 0 LocalVariableTable:
Start End Slot Name Signature
0 3 0 orig Lorg/jruby/RubyString;
0 3 1 dest Lorg/jruby/RubyString;
MethodParameters:
Name Flags
orig
dest
static org.jruby.runtime.builtin.IRubyObject optimized_escape_html(org.jruby.Ruby, org.jruby.RubyString);
descriptor: (Lorg/jruby/Ruby;Lorg/jruby/RubyString;)Lorg/jruby/runtime/builtin/IRubyObject;
flags: (0x0008) ACC_STATIC
Code:
stack=5, locals=9, args_size=2
start local 0 start local 1 0: iconst_0
istore 4
start local 4 1: aconst_null
astore 5
start local 5 2: aload 1
invokevirtual org.jruby.RubyString.size:()I
istore 3
start local 3 3: aload 1
invokevirtual org.jruby.RubyString.getByteList:()Lorg/jruby/util/ByteList;
astore 7
start local 7 4: aload 7
invokevirtual org.jruby.util.ByteList.unsafeBytes:()[B
astore 6
start local 6 5: aload 7
invokevirtual org.jruby.util.ByteList.begin:()I
istore 8
start local 8 6: iconst_0
istore 2
start local 2 7: goto 15
8: StackMap locals: org.jruby.Ruby org.jruby.RubyString int int int org.jruby.RubyString byte[] org.jruby.util.ByteList int
StackMap stack:
aload 6
iload 8
iload 2
iadd
baload
lookupswitch { // 5
34: 9
38: 9
39: 9
60: 9
62: 9
default: 14
}
9: StackMap locals:
StackMap stack:
aload 5
ifnonnull 11
10: aload 0
iload 3
invokestatic org.jruby.RubyString.newStringLight:(Lorg/jruby/Ruby;I)Lorg/jruby/RubyString;
astore 5
11: StackMap locals:
StackMap stack:
aload 5
aload 6
iload 8
iload 4
iadd
iload 2
iload 4
isub
invokevirtual org.jruby.RubyString.cat:([BII)Lorg/jruby/RubyString;
pop
12: iload 2
iconst_1
iadd
istore 4
13: aload 5
aload 6
iload 8
iload 2
iadd
baload
invokestatic org.jruby.ext.cgi.escape.CGIEscape.html_escaped_cat:(Lorg/jruby/RubyString;B)V
14: StackMap locals:
StackMap stack:
iinc 2 1
StackMap locals:
StackMap stack:
15: iload 2
iload 3
if_icmplt 8
16: aload 5
ifnull 20
17: aload 5
aload 6
iload 8
iload 4
iadd
iload 3
iload 4
isub
invokevirtual org.jruby.RubyString.cat:([BII)Lorg/jruby/RubyString;
pop
18: aload 1
aload 5
invokestatic org.jruby.ext.cgi.escape.CGIEscape.preserve_original_state:(Lorg/jruby/RubyString;Lorg/jruby/RubyString;)V
19: aload 5
areturn
20: StackMap locals:
StackMap stack:
aload 1
aload 0
invokevirtual org.jruby.RubyString.strDup:(Lorg/jruby/Ruby;)Lorg/jruby/RubyString;
areturn
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 21 0 runtime Lorg/jruby/Ruby;
0 21 1 str Lorg/jruby/RubyString;
7 21 2 i I
3 21 3 len I
1 21 4 beg I
2 21 5 dest Lorg/jruby/RubyString;
5 21 6 cstrBytes [B
4 21 7 byteList Lorg/jruby/util/ByteList;
6 21 8 cstr I
MethodParameters:
Name Flags
runtime
str
static boolean MATCH(byte[], int, int, byte[], int);
descriptor: ([BII[BI)Z
flags: (0x0008) ACC_STATIC
Code:
stack=5, locals=5, args_size=5
start local 0 start local 1 start local 2 start local 3 start local 4 0: iload 1
iload 2
isub
aload 0
arraylength
if_icmplt 2
aload 3
iload 4
iload 2
iadd
aload 0
iconst_0
aload 0
arraylength
invokestatic org.jruby.util.ByteList.memcmp:([BI[BII)I
ifne 2
1: iconst_1
ireturn
2: StackMap locals:
StackMap stack:
iconst_0
ireturn
end local 4 end local 3 end local 2 end local 1 end local 0 LocalVariableTable:
Start End Slot Name Signature
0 3 0 s [B
0 3 1 len I
0 3 2 i I
0 3 3 cstrBytes [B
0 3 4 cstr I
MethodParameters:
Name Flags
s
len
i
cstrBytes
cstr
static org.jruby.runtime.builtin.IRubyObject optimized_unescape_html(org.jruby.Ruby, org.jruby.RubyString);
descriptor: (Lorg/jruby/Ruby;Lorg/jruby/RubyString;)Lorg/jruby/runtime/builtin/IRubyObject;
flags: (0x0008) ACC_STATIC
Code:
stack=7, locals=18, args_size=2
start local 0 start local 1 0: aload 1
invokevirtual org.jruby.RubyString.getEncoding:()Lorg/jcodings/Encoding;
astore 2
start local 2 1: aload 2
instanceof org.jcodings.specific.UTF8Encoding
ifeq 2
ldc 1114111
goto 4
2: StackMap locals: org.jcodings.Encoding
StackMap stack:
aload 2
instanceof org.jcodings.specific.ISO8859_1Encoding
ifeq 3
sipush 256
goto 4
3: StackMap locals:
StackMap stack:
sipush 128
4: StackMap locals:
StackMap stack: int
istore 3
start local 3 5: iconst_0
istore 6
start local 6 6: iconst_0
istore 7
start local 7 7: iconst_0
istore 9
start local 9 8: bipush 6
newarray 8
astore 12
start local 12 9: aconst_null
astore 13
start local 13 10: aload 1
invokevirtual org.jruby.RubyString.size:()I
istore 5
start local 5 11: aload 1
invokevirtual org.jruby.RubyString.getByteList:()Lorg/jruby/util/ByteList;
astore 14
start local 14 12: aload 14
invokevirtual org.jruby.util.ByteList.getUnsafeBytes:()[B
astore 10
start local 10 13: aload 14
invokevirtual org.jruby.util.ByteList.begin:()I
istore 11
start local 11 14: iconst_0
istore 4
start local 4 15: goto 87
16: StackMap locals: org.jruby.Ruby org.jruby.RubyString org.jcodings.Encoding int int int int int top int byte[] int byte[] org.jruby.RubyString org.jruby.util.ByteList
StackMap stack:
aload 10
iload 11
iload 4
iadd
baload
istore 16
start local 16 17: iload 16
bipush 38
if_icmpeq 18
goto 86
18: StackMap locals: org.jruby.Ruby org.jruby.RubyString org.jcodings.Encoding int int int int int top int byte[] int byte[] org.jruby.RubyString org.jruby.util.ByteList top int
StackMap stack:
iload 4
iload 6
isub
istore 8
start local 8 19: iinc 4 1
iload 4
iload 5
if_icmplt 20
goto 88
20: StackMap locals: org.jruby.Ruby org.jruby.RubyString org.jcodings.Encoding int int int int int int int byte[] int byte[] org.jruby.RubyString org.jruby.util.ByteList top int
StackMap stack:
aload 10
iload 11
iload 4
iadd
baload
sipush 255
iand
istore 16
21: iload 16
lookupswitch { // 5
35: 46
97: 22
103: 36
108: 41
113: 31
default: 79
}
22: StackMap locals:
StackMap stack:
iinc 4 1
23: getstatic org.jruby.ext.cgi.escape.CGIEscape.POSSEMI:[B
iload 5
iload 4
aload 10
iload 11
invokestatic org.jruby.ext.cgi.escape.CGIEscape.MATCH:([BII[BI)Z
ifeq 27
24: iload 4
getstatic org.jruby.ext.cgi.escape.CGIEscape.POSSEMI:[B
arraylength
iconst_1
isub
iadd
istore 4
25: bipush 39
istore 16
26: goto 81
StackMap locals:
StackMap stack:
27: getstatic org.jruby.ext.cgi.escape.CGIEscape.MPSEMI:[B
iload 5
iload 4
aload 10
iload 11
invokestatic org.jruby.ext.cgi.escape.CGIEscape.MATCH:([BII[BI)Z
ifeq 86
28: iload 4
getstatic org.jruby.ext.cgi.escape.CGIEscape.MPSEMI:[B
arraylength
iconst_1
isub
iadd
istore 4
29: bipush 38
istore 16
30: goto 81
31: StackMap locals:
StackMap stack:
iinc 4 1
32: getstatic org.jruby.ext.cgi.escape.CGIEscape.UOTSEMI:[B
iload 5
iload 4
aload 10
iload 11
invokestatic org.jruby.ext.cgi.escape.CGIEscape.MATCH:([BII[BI)Z
ifeq 86
33: iload 4
getstatic org.jruby.ext.cgi.escape.CGIEscape.UOTSEMI:[B
arraylength
iconst_1
isub
iadd
istore 4
34: bipush 34
istore 16
35: goto 81
36: StackMap locals:
StackMap stack:
iinc 4 1
37: getstatic org.jruby.ext.cgi.escape.CGIEscape.TSEMI:[B
iload 5
iload 4
aload 10
iload 11
invokestatic org.jruby.ext.cgi.escape.CGIEscape.MATCH:([BII[BI)Z
ifeq 86
38: iload 4
getstatic org.jruby.ext.cgi.escape.CGIEscape.TSEMI:[B
arraylength
iconst_1
isub
iadd
istore 4
39: bipush 62
istore 16
40: goto 81
41: StackMap locals:
StackMap stack:
iinc 4 1
42: getstatic org.jruby.ext.cgi.escape.CGIEscape.TSEMI:[B
iload 5
iload 4
aload 10
iload 11
invokestatic org.jruby.ext.cgi.escape.CGIEscape.MATCH:([BII[BI)Z
ifeq 86
43: iload 4
getstatic org.jruby.ext.cgi.escape.CGIEscape.TSEMI:[B
arraylength
iconst_1
isub
iadd
istore 4
44: bipush 60
istore 16
45: goto 81
46: StackMap locals:
StackMap stack:
iload 5
iinc 4 1
iload 4
isub
iconst_2
if_icmplt 56
aload 10
iload 11
iload 4
iadd
baload
invokestatic java.lang.Character.isDigit:(I)Z
ifeq 56
47: iconst_2
newarray 10
dup
iconst_0
iload 7
iastore
dup
iconst_1
iload 9
ifeq 48
iconst_1
goto 49
StackMap locals: org.jruby.Ruby org.jruby.RubyString org.jcodings.Encoding int int int int int int int byte[] int byte[] org.jruby.RubyString org.jruby.util.ByteList top int
StackMap stack: int[] int[] int
48: iconst_0
StackMap locals: org.jruby.Ruby org.jruby.RubyString org.jcodings.Encoding int int int int int int int byte[] int byte[] org.jruby.RubyString org.jruby.util.ByteList top int
StackMap stack: int[] int[] int int
49: iastore
astore 17
start local 17 50: aload 10
iload 11
iload 4
iadd
iload 5
iload 4
isub
bipush 10
aload 17
invokestatic org.jruby.ext.cgi.escape.CGIEscape.ruby_scan_digits:([BIII[I)I
istore 15
start local 15 51: aload 17
iconst_0
iaload
istore 7
52: aload 17
iconst_1
iaload
iconst_1
if_icmpne 53
iconst_1
goto 54
StackMap locals: org.jruby.Ruby org.jruby.RubyString org.jcodings.Encoding int int int int int int int byte[] int byte[] org.jruby.RubyString org.jruby.util.ByteList int int int[]
StackMap stack:
53: iconst_0
StackMap locals:
StackMap stack: int
54: istore 9
end local 17 55: goto 66
end local 15 StackMap locals: org.jruby.Ruby org.jruby.RubyString org.jcodings.Encoding int int int int int int int byte[] int byte[] org.jruby.RubyString org.jruby.util.ByteList top int
StackMap stack:
56: iload 4
iload 5
if_icmpge 86
aload 10
iload 11
iload 4
iadd
baload
bipush 120
if_icmpeq 57
aload 10
iload 11
iload 4
iadd
baload
bipush 88
if_icmpne 86
StackMap locals:
StackMap stack:
57: iload 5
iinc 4 1
iload 4
isub
iconst_2
if_icmplt 86
aload 10
iload 11
iload 4
iadd
invokestatic org.jruby.ext.cgi.escape.CGIEscape.ISXDIGIT:([BI)Z
ifeq 86
58: iconst_2
newarray 10
dup
iconst_0
iload 7
iastore
dup
iconst_1
iload 9
ifeq 59
iconst_1
goto 60
StackMap locals: org.jruby.Ruby org.jruby.RubyString org.jcodings.Encoding int int int int int int int byte[] int byte[] org.jruby.RubyString org.jruby.util.ByteList top int
StackMap stack: int[] int[] int
59: iconst_0
StackMap locals: org.jruby.Ruby org.jruby.RubyString org.jcodings.Encoding int int int int int int int byte[] int byte[] org.jruby.RubyString org.jruby.util.ByteList top int
StackMap stack: int[] int[] int int
60: iastore
astore 17
start local 17 61: aload 10
iload 11
iload 4
iadd
iload 5
iload 4
isub
bipush 16
aload 17
invokestatic org.jruby.ext.cgi.escape.CGIEscape.ruby_scan_digits:([BIII[I)I
istore 15
start local 15 62: aload 17
iconst_0
iaload
istore 7
63: aload 17
iconst_1
iaload
iconst_1
if_icmpne 64
iconst_1
goto 65
StackMap locals: org.jruby.Ruby org.jruby.RubyString org.jcodings.Encoding int int int int int int int byte[] int byte[] org.jruby.RubyString org.jruby.util.ByteList int int int[]
StackMap stack:
64: iconst_0
StackMap locals:
StackMap stack: int
65: istore 9
end local 17 66: StackMap locals:
StackMap stack:
iload 4
67: iload 7
iadd
istore 4
68: iload 9
ifne 86
iload 15
iload 3
if_icmpge 86
iload 4
iload 5
if_icmpge 86
aload 10
iload 11
iload 4
iadd
baload
bipush 59
if_icmpeq 69
goto 86
69: StackMap locals:
StackMap stack:
aload 13
ifnonnull 71
70: aload 0
iload 5
invokestatic org.jruby.RubyString.newStringLight:(Lorg/jruby/Ruby;I)Lorg/jruby/RubyString;
astore 13
71: StackMap locals:
StackMap stack:
aload 13
aload 10
iload 11
iload 6
iadd
iload 8
invokevirtual org.jruby.RubyString.cat:([BII)Lorg/jruby/RubyString;
pop
72: iload 3
sipush 256
if_icmple 75
73: aload 13
aload 12
iconst_0
aload 2
iload 15
aload 12
iconst_0
invokevirtual org.jcodings.Encoding.codeToMbc:(I[BI)I
invokevirtual org.jruby.RubyString.cat:([BII)Lorg/jruby/RubyString;
pop
74: goto 77
75: StackMap locals:
StackMap stack:
iload 15
istore 16
76: aload 13
iload 16
invokevirtual org.jruby.RubyString.cat:(I)Lorg/jruby/RubyString;
pop
77: StackMap locals:
StackMap stack:
iload 4
iconst_1
iadd
istore 6
78: goto 86
end local 15 79: StackMap locals: org.jruby.Ruby org.jruby.RubyString org.jcodings.Encoding int int int int int int int byte[] int byte[] org.jruby.RubyString org.jruby.util.ByteList top int
StackMap stack:
iinc 4 -1
80: goto 86
81: StackMap locals:
StackMap stack:
aload 13
ifnonnull 83
82: aload 0
iload 5
invokestatic org.jruby.RubyString.newStringLight:(Lorg/jruby/Ruby;I)Lorg/jruby/RubyString;
astore 13
83: StackMap locals:
StackMap stack:
aload 13
aload 10
iload 11
iload 6
iadd
iload 8
invokevirtual org.jruby.RubyString.cat:([BII)Lorg/jruby/RubyString;
pop
84: aload 13
iload 16
invokevirtual org.jruby.RubyString.cat:(I)Lorg/jruby/RubyString;
pop
85: iload 4
iconst_1
iadd
istore 6
end local 16 end local 8 86: StackMap locals: org.jruby.Ruby org.jruby.RubyString org.jcodings.Encoding int int int int int top int byte[] int byte[] org.jruby.RubyString org.jruby.util.ByteList
StackMap stack:
iinc 4 1
StackMap locals:
StackMap stack:
87: iload 4
iload 5
if_icmplt 16
88: StackMap locals:
StackMap stack:
aload 13
ifnull 92
89: aload 13
aload 10
iload 11
iload 6
iadd
iload 5
iload 6
isub
invokevirtual org.jruby.RubyString.cat:([BII)Lorg/jruby/RubyString;
pop
90: aload 1
aload 13
invokestatic org.jruby.ext.cgi.escape.CGIEscape.preserve_original_state:(Lorg/jruby/RubyString;Lorg/jruby/RubyString;)V
91: aload 13
areturn
92: StackMap locals:
StackMap stack:
aload 1
aload 0
invokevirtual org.jruby.RubyString.strDup:(Lorg/jruby/Ruby;)Lorg/jruby/RubyString;
areturn
end local 14 end local 13 end local 12 end local 11 end local 10 end local 9 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 93 0 runtime Lorg/jruby/Ruby;
0 93 1 str Lorg/jruby/RubyString;
1 93 2 enc Lorg/jcodings/Encoding;
5 93 3 charlimit I
15 93 4 i I
11 93 5 len I
6 93 6 beg I
7 93 7 clen I
19 86 8 plen I
8 93 9 overflow Z
13 93 10 cstrBytes [B
14 93 11 cstr I
9 93 12 buf [B
10 93 13 dest Lorg/jruby/RubyString;
12 93 14 byteList Lorg/jruby/util/ByteList;
51 56 15 cc I
62 79 15 cc I
17 86 16 c I
50 55 17 clenOverflow [I
61 66 17 clenOverflow [I
MethodParameters:
Name Flags
runtime
str
static boolean ISXDIGIT(byte[], int);
descriptor: ([BI)Z
flags: (0x0008) ACC_STATIC
Code:
stack=2, locals=3, args_size=2
start local 0 start local 1 0: aload 0
iload 1
baload
istore 2
start local 2 1: iload 2
bipush 48
if_icmplt 2
iload 2
bipush 57
if_icmple 5
StackMap locals: int
StackMap stack:
2: iload 2
bipush 97
if_icmplt 3
iload 2
bipush 102
if_icmple 5
StackMap locals:
StackMap stack:
3: iload 2
bipush 65
if_icmplt 4
iload 2
bipush 70
if_icmple 5
StackMap locals:
StackMap stack:
4: iconst_0
ireturn
StackMap locals:
StackMap stack:
5: iconst_1
ireturn
end local 2 end local 1 end local 0 LocalVariableTable:
Start End Slot Name Signature
0 6 0 cstrBytes [B
0 6 1 i I
1 6 2 cstrByte B
MethodParameters:
Name Flags
cstrBytes
i
static boolean url_unreserved_char(int);
descriptor: (I)Z
flags: (0x0008) ACC_STATIC
Code:
stack=1, locals=1, args_size=1
start local 0 0: iload 0
tableswitch { // 45 - 126
45: 1
46: 1
47: 2
48: 1
49: 1
50: 1
51: 1
52: 1
53: 1
54: 1
55: 1
56: 1
57: 1
58: 2
59: 2
60: 2
61: 2
62: 2
63: 2
64: 2
65: 1
66: 1
67: 1
68: 1
69: 1
70: 1
71: 1
72: 1
73: 1
74: 1
75: 1
76: 1
77: 1
78: 1
79: 1
80: 1
81: 1
82: 1
83: 1
84: 1
85: 1
86: 1
87: 1
88: 1
89: 1
90: 1
91: 2
92: 2
93: 2
94: 2
95: 1
96: 2
97: 1
98: 1
99: 1
100: 1
101: 1
102: 1
103: 1
104: 1
105: 1
106: 1
107: 1
108: 1
109: 1
110: 1
111: 1
112: 1
113: 1
114: 1
115: 1
116: 1
117: 1
118: 1
119: 1
120: 1
121: 1
122: 1
123: 2
124: 2
125: 2
126: 1
default: 2
}
1: StackMap locals:
StackMap stack:
iconst_1
ireturn
2: StackMap locals:
StackMap stack:
iconst_0
ireturn
end local 0 LocalVariableTable:
Start End Slot Name Signature
0 3 0 c I
MethodParameters:
Name Flags
c
static org.jruby.runtime.builtin.IRubyObject optimized_escape(org.jruby.Ruby, org.jruby.RubyString);
descriptor: (Lorg/jruby/Ruby;Lorg/jruby/RubyString;)Lorg/jruby/runtime/builtin/IRubyObject;
flags: (0x0008) ACC_STATIC
Code:
stack=5, locals=11, args_size=2
start local 0 start local 1 0: iconst_0
istore 4
start local 4 1: aconst_null
astore 5
start local 5 2: iconst_3
newarray 8
dup
iconst_0
bipush 37
bastore
astore 8
start local 8 3: aload 1
invokevirtual org.jruby.RubyString.size:()I
istore 3
start local 3 4: aload 1
invokevirtual org.jruby.RubyString.getByteList:()Lorg/jruby/util/ByteList;
astore 9
start local 9 5: aload 9
invokevirtual org.jruby.util.ByteList.unsafeBytes:()[B
astore 6
start local 6 6: aload 9
invokevirtual org.jruby.util.ByteList.begin:()I
istore 7
start local 7 7: iconst_0
istore 2
start local 2 8: goto 22
9: StackMap locals: org.jruby.Ruby org.jruby.RubyString int int int org.jruby.RubyString byte[] int byte[] org.jruby.util.ByteList
StackMap stack:
aload 6
iload 7
iload 2
iadd
baload
sipush 255
iand
istore 10
start local 10 10: iload 10
invokestatic org.jruby.ext.cgi.escape.CGIEscape.url_unreserved_char:(I)Z
ifne 21
11: aload 5
ifnonnull 13
12: aload 0
iload 3
invokestatic org.jruby.RubyString.newStringLight:(Lorg/jruby/Ruby;I)Lorg/jruby/RubyString;
astore 5
13: StackMap locals: int
StackMap stack:
aload 5
aload 6
iload 7
iload 4
iadd
iload 2
iload 4
isub
invokevirtual org.jruby.RubyString.cat:([BII)Lorg/jruby/RubyString;
pop
14: iload 2
iconst_1
iadd
istore 4
15: iload 10
bipush 32
if_icmpne 18
16: aload 5
bipush 43
invokevirtual org.jruby.RubyString.cat:(I)Lorg/jruby/RubyString;
pop
17: goto 21
18: StackMap locals:
StackMap stack:
aload 8
iconst_1
getstatic org.jruby.ext.cgi.escape.CGIEscape.upper_hexdigits:[B
iload 10
iconst_4
ishr
bipush 15
iand
baload
bastore
19: aload 8
iconst_2
getstatic org.jruby.ext.cgi.escape.CGIEscape.upper_hexdigits:[B
iload 10
bipush 15
iand
baload
bastore
20: aload 5
aload 8
iconst_0
iconst_3
invokevirtual org.jruby.RubyString.cat:([BII)Lorg/jruby/RubyString;
pop
end local 10 21: StackMap locals:
StackMap stack:
iinc 2 1
StackMap locals:
StackMap stack:
22: iload 2
iload 3
if_icmplt 9
23: aload 5
ifnull 27
24: aload 5
aload 6
iload 7
iload 4
iadd
iload 3
iload 4
isub
invokevirtual org.jruby.RubyString.cat:([BII)Lorg/jruby/RubyString;
pop
25: aload 1
aload 5
invokestatic org.jruby.ext.cgi.escape.CGIEscape.preserve_original_state:(Lorg/jruby/RubyString;Lorg/jruby/RubyString;)V
26: aload 5
areturn
27: StackMap locals:
StackMap stack:
aload 1
aload 0
invokevirtual org.jruby.RubyString.strDup:(Lorg/jruby/Ruby;)Lorg/jruby/RubyString;
areturn
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 28 0 runtime Lorg/jruby/Ruby;
0 28 1 str Lorg/jruby/RubyString;
8 28 2 i I
4 28 3 len I
1 28 4 beg I
2 28 5 dest Lorg/jruby/RubyString;
6 28 6 cstrBytes [B
7 28 7 cstr I
3 28 8 buf [B
5 28 9 byteList Lorg/jruby/util/ByteList;
10 21 10 c I
MethodParameters:
Name Flags
runtime
str
static org.jruby.runtime.builtin.IRubyObject optimized_unescape(org.jruby.runtime.ThreadContext, org.jruby.RubyString, org.jruby.runtime.builtin.IRubyObject);
descriptor: (Lorg/jruby/runtime/ThreadContext;Lorg/jruby/RubyString;Lorg/jruby/runtime/builtin/IRubyObject;)Lorg/jruby/runtime/builtin/IRubyObject;
flags: (0x0008) ACC_STATIC
Code:
stack=5, locals=17, args_size=3
start local 0 start local 1 start local 2 0: iconst_0
istore 5
start local 5 1: aconst_null
astore 6
start local 6 2: aload 0
aload 2
invokestatic org.jruby.util.io.EncodingUtils.rbToEncoding:(Lorg/jruby/runtime/ThreadContext;Lorg/jruby/runtime/builtin/IRubyObject;)Lorg/jcodings/Encoding;
astore 11
start local 11 3: aload 1
invokevirtual org.jruby.RubyString.size:()I
istore 4
start local 4 4: aload 1
invokevirtual org.jruby.RubyString.getByteList:()Lorg/jruby/util/ByteList;
astore 12
start local 12 5: aload 12
invokevirtual org.jruby.util.ByteList.unsafeBytes:()[B
astore 7
start local 7 6: aload 12
invokevirtual org.jruby.util.ByteList.begin:()I
istore 8
start local 8 7: iconst_0
istore 13
start local 13 8: aload 0
getfield org.jruby.runtime.ThreadContext.runtime:Lorg/jruby/Ruby;
astore 14
start local 14 9: iconst_0
istore 3
start local 3 10: goto 31
11: StackMap locals: org.jruby.runtime.ThreadContext org.jruby.RubyString org.jruby.runtime.builtin.IRubyObject int int int org.jruby.RubyString byte[] int top top org.jcodings.Encoding org.jruby.util.ByteList int org.jruby.Ruby
StackMap stack:
aload 7
iload 8
iload 3
iadd
baload
sipush 255
iand
istore 15
start local 15 12: iconst_0
istore 16
start local 16 13: iload 15
bipush 37
if_icmpne 22
14: iload 3
iconst_3
iadd
iload 4
if_icmple 15
goto 32
15: StackMap locals: int int
StackMap stack:
aload 7
iload 8
iload 3
iadd
iconst_1
iadd
invokestatic org.jruby.ext.cgi.escape.CGIEscape.ISXDIGIT:([BI)Z
ifne 16
goto 30
16: StackMap locals:
StackMap stack:
aload 7
iload 8
iload 3
iadd
iconst_2
iadd
invokestatic org.jruby.ext.cgi.escape.CGIEscape.ISXDIGIT:([BI)Z
ifne 17
goto 30
17: StackMap locals:
StackMap stack:
aload 7
iload 8
iload 3
iadd
iconst_1
iadd
baload
invokestatic org.jruby.ext.cgi.escape.CGIEscape.char_to_number:(I)I
iconst_4
ishl
18: aload 7
iload 8
iload 3
iadd
iconst_2
iadd
baload
invokestatic org.jruby.ext.cgi.escape.CGIEscape.char_to_number:(I)I
19: ior
istore 13
20: iconst_2
istore 16
21: goto 24
StackMap locals:
StackMap stack:
22: iload 15
bipush 43
if_icmpne 30
23: bipush 32
istore 13
24: StackMap locals:
StackMap stack:
aload 6
ifnonnull 26
25: aload 14
iload 4
invokestatic org.jruby.RubyString.newStringLight:(Lorg/jruby/Ruby;I)Lorg/jruby/RubyString;
astore 6
26: StackMap locals:
StackMap stack:
aload 6
aload 7
iload 8
iload 5
iadd
iload 3
iload 5
isub
invokevirtual org.jruby.RubyString.cat:([BII)Lorg/jruby/RubyString;
pop
27: iload 3
iload 16
iadd
istore 3
28: iload 3
iconst_1
iadd
istore 5
29: aload 6
iload 13
invokevirtual org.jruby.RubyString.cat:(I)Lorg/jruby/RubyString;
pop
end local 16 end local 15 30: StackMap locals:
StackMap stack:
iinc 3 1
StackMap locals:
StackMap stack:
31: iload 3
iload 4
if_icmplt 11
32: StackMap locals:
StackMap stack:
aload 6
ifnull 37
33: aload 6
aload 7
iload 8
iload 5
iadd
iload 4
iload 5
isub
invokevirtual org.jruby.RubyString.cat:([BII)Lorg/jruby/RubyString;
pop
34: aload 1
aload 6
invokestatic org.jruby.ext.cgi.escape.CGIEscape.preserve_original_state:(Lorg/jruby/RubyString;Lorg/jruby/RubyString;)V
35: iconst_0
istore 9
start local 9 36: goto 39
end local 9 37: StackMap locals:
StackMap stack:
aload 1
aload 14
invokevirtual org.jruby.RubyString.strDup:(Lorg/jruby/Ruby;)Lorg/jruby/RubyString;
astore 6
38: aload 1
invokevirtual org.jruby.RubyString.getCodeRange:()I
istore 9
start local 9 39: StackMap locals: org.jruby.runtime.ThreadContext org.jruby.RubyString org.jruby.runtime.builtin.IRubyObject int int int org.jruby.RubyString byte[] int int top org.jcodings.Encoding org.jruby.util.ByteList int org.jruby.Ruby
StackMap stack:
aload 1
invokevirtual org.jruby.RubyString.getEncoding:()Lorg/jcodings/Encoding;
astore 10
start local 10 40: aload 10
aload 11
if_acmpeq 46
41: aload 6
aload 11
invokevirtual org.jruby.RubyString.setEncoding:(Lorg/jcodings/Encoding;)V
42: aload 6
invokevirtual org.jruby.RubyString.getCodeRange:()I
invokestatic org.jruby.util.StringSupport.encCoderangeClean:(I)I
ifne 46
43: aload 6
aload 10
invokevirtual org.jruby.RubyString.setEncoding:(Lorg/jcodings/Encoding;)V
44: iload 9
ifeq 46
45: aload 6
iload 9
invokevirtual org.jruby.RubyString.setCodeRange:(I)V
46: StackMap locals: org.jruby.runtime.ThreadContext org.jruby.RubyString org.jruby.runtime.builtin.IRubyObject int int int org.jruby.RubyString byte[] int int org.jcodings.Encoding org.jcodings.Encoding org.jruby.util.ByteList int org.jruby.Ruby
StackMap stack:
aload 6
areturn
end local 14 end local 13 end local 12 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 47 0 context Lorg/jruby/runtime/ThreadContext;
0 47 1 str Lorg/jruby/RubyString;
0 47 2 encoding Lorg/jruby/runtime/builtin/IRubyObject;
10 47 3 i I
4 47 4 len I
1 47 5 beg I
2 47 6 dest Lorg/jruby/RubyString;
6 47 7 cstrBytes [B
7 47 8 cstr I
36 37 9 cr I
39 47 9 cr I
40 47 10 origenc Lorg/jcodings/Encoding;
3 47 11 encidx Lorg/jcodings/Encoding;
5 47 12 byteList Lorg/jruby/util/ByteList;
8 47 13 buf I
9 47 14 runtime Lorg/jruby/Ruby;
12 30 15 c I
13 30 16 clen I
MethodParameters:
Name Flags
context
str
encoding
public static org.jruby.runtime.builtin.IRubyObject cgiesc_escape_html(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: (0x0009) ACC_PUBLIC, ACC_STATIC
Code:
stack=4, locals=4, args_size=3
start local 0 start local 1 start local 2 0: aload 2
invokeinterface org.jruby.runtime.builtin.IRubyObject.convertToString:()Lorg/jruby/RubyString;
astore 3
start local 3 1: aload 3
invokevirtual org.jruby.RubyString.getEncoding:()Lorg/jcodings/Encoding;
invokevirtual org.jcodings.Encoding.isAsciiCompatible:()Z
ifeq 3
2: aload 0
getfield org.jruby.runtime.ThreadContext.runtime:Lorg/jruby/Ruby;
aload 3
invokestatic org.jruby.ext.cgi.escape.CGIEscape.optimized_escape_html:(Lorg/jruby/Ruby;Lorg/jruby/RubyString;)Lorg/jruby/runtime/builtin/IRubyObject;
areturn
3: StackMap locals: org.jruby.RubyString
StackMap stack:
aload 0
aload 1
aload 2
getstatic org.jruby.runtime.Block.NULL_BLOCK:Lorg/jruby/runtime/Block;
invokestatic org.jruby.runtime.Helpers.invokeSuper:(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 end local 2 end local 1 end local 0 LocalVariableTable:
Start End Slot Name Signature
0 4 0 context Lorg/jruby/runtime/ThreadContext;
0 4 1 self Lorg/jruby/runtime/builtin/IRubyObject;
0 4 2 _str Lorg/jruby/runtime/builtin/IRubyObject;
1 4 3 str Lorg/jruby/RubyString;
RuntimeVisibleAnnotations:
org.jruby.anno.JRubyMethod(name = {"escapeHTML"}, module = true, frame = true)
MethodParameters:
Name Flags
context
self
_str
public static org.jruby.runtime.builtin.IRubyObject cgiesc_unescape_html(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: (0x0009) ACC_PUBLIC, ACC_STATIC
Code:
stack=4, locals=4, args_size=3
start local 0 start local 1 start local 2 0: aload 2
invokeinterface org.jruby.runtime.builtin.IRubyObject.convertToString:()Lorg/jruby/RubyString;
astore 3
start local 3 1: aload 3
invokevirtual org.jruby.RubyString.getEncoding:()Lorg/jcodings/Encoding;
invokevirtual org.jcodings.Encoding.isAsciiCompatible:()Z
ifeq 3
2: aload 0
getfield org.jruby.runtime.ThreadContext.runtime:Lorg/jruby/Ruby;
aload 3
invokestatic org.jruby.ext.cgi.escape.CGIEscape.optimized_unescape_html:(Lorg/jruby/Ruby;Lorg/jruby/RubyString;)Lorg/jruby/runtime/builtin/IRubyObject;
areturn
3: StackMap locals: org.jruby.RubyString
StackMap stack:
aload 0
aload 1
aload 2
getstatic org.jruby.runtime.Block.NULL_BLOCK:Lorg/jruby/runtime/Block;
invokestatic org.jruby.runtime.Helpers.invokeSuper:(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 end local 2 end local 1 end local 0 LocalVariableTable:
Start End Slot Name Signature
0 4 0 context Lorg/jruby/runtime/ThreadContext;
0 4 1 self Lorg/jruby/runtime/builtin/IRubyObject;
0 4 2 _str Lorg/jruby/runtime/builtin/IRubyObject;
1 4 3 str Lorg/jruby/RubyString;
RuntimeVisibleAnnotations:
org.jruby.anno.JRubyMethod(name = {"unescapeHTML"}, module = true, frame = true)
MethodParameters:
Name Flags
context
self
_str
public static org.jruby.runtime.builtin.IRubyObject cgiesc_escape(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: (0x0009) ACC_PUBLIC, ACC_STATIC
Code:
stack=4, locals=4, args_size=3
start local 0 start local 1 start local 2 0: aload 2
invokeinterface org.jruby.runtime.builtin.IRubyObject.convertToString:()Lorg/jruby/RubyString;
astore 3
start local 3 1: aload 3
invokevirtual org.jruby.RubyString.getEncoding:()Lorg/jcodings/Encoding;
invokevirtual org.jcodings.Encoding.isAsciiCompatible:()Z
ifeq 3
2: aload 0
getfield org.jruby.runtime.ThreadContext.runtime:Lorg/jruby/Ruby;
aload 3
invokestatic org.jruby.ext.cgi.escape.CGIEscape.optimized_escape:(Lorg/jruby/Ruby;Lorg/jruby/RubyString;)Lorg/jruby/runtime/builtin/IRubyObject;
areturn
3: StackMap locals: org.jruby.RubyString
StackMap stack:
aload 0
aload 1
aload 2
getstatic org.jruby.runtime.Block.NULL_BLOCK:Lorg/jruby/runtime/Block;
invokestatic org.jruby.runtime.Helpers.invokeSuper:(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 end local 2 end local 1 end local 0 LocalVariableTable:
Start End Slot Name Signature
0 4 0 context Lorg/jruby/runtime/ThreadContext;
0 4 1 self Lorg/jruby/runtime/builtin/IRubyObject;
0 4 2 _str Lorg/jruby/runtime/builtin/IRubyObject;
1 4 3 str Lorg/jruby/RubyString;
RuntimeVisibleAnnotations:
org.jruby.anno.JRubyMethod(name = {"escape"}, module = true, frame = true)
MethodParameters:
Name Flags
context
self
_str
static org.jruby.runtime.builtin.IRubyObject accept_charset(org.jruby.runtime.builtin.IRubyObject[], int, int, org.jruby.runtime.builtin.IRubyObject);
descriptor: ([Lorg/jruby/runtime/builtin/IRubyObject;IILorg/jruby/runtime/builtin/IRubyObject;)Lorg/jruby/runtime/builtin/IRubyObject;
flags: (0x0008) ACC_STATIC
Code:
stack=2, locals=4, args_size=4
start local 0 start local 1 start local 2 start local 3 0: iload 1
ifle 2
1: aload 0
iload 2
aaload
areturn
2: StackMap locals:
StackMap stack:
aload 3
invokeinterface org.jruby.runtime.builtin.IRubyObject.getMetaClass:()Lorg/jruby/RubyClass;
ldc "@@accept_charset"
invokevirtual org.jruby.RubyClass.getClassVar:(Ljava/lang/String;)Lorg/jruby/runtime/builtin/IRubyObject;
areturn
end local 3 end local 2 end local 1 end local 0 LocalVariableTable:
Start End Slot Name Signature
0 3 0 args [Lorg/jruby/runtime/builtin/IRubyObject;
0 3 1 argc I
0 3 2 argv I
0 3 3 self Lorg/jruby/runtime/builtin/IRubyObject;
MethodParameters:
Name Flags
args
argc
argv
self
public static org.jruby.runtime.builtin.IRubyObject cgiesc_unescape(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: (0x0009) ACC_PUBLIC, ACC_STATIC
Code:
stack=4, locals=6, args_size=3
start local 0 start local 1 start local 2 0: aload 2
iconst_0
aaload
astore 3
start local 3 1: aload 3
invokeinterface org.jruby.runtime.builtin.IRubyObject.convertToString:()Lorg/jruby/RubyString;
astore 4
start local 4 2: aload 4
invokevirtual org.jruby.RubyString.getEncoding:()Lorg/jcodings/Encoding;
invokevirtual org.jcodings.Encoding.isAsciiCompatible:()Z
ifeq 5
3: aload 2
aload 2
arraylength
iconst_1
isub
iconst_1
aload 1
invokestatic org.jruby.ext.cgi.escape.CGIEscape.accept_charset:([Lorg/jruby/runtime/builtin/IRubyObject;IILorg/jruby/runtime/builtin/IRubyObject;)Lorg/jruby/runtime/builtin/IRubyObject;
astore 5
start local 5 4: aload 0
aload 4
aload 5
invokestatic org.jruby.ext.cgi.escape.CGIEscape.optimized_unescape:(Lorg/jruby/runtime/ThreadContext;Lorg/jruby/RubyString;Lorg/jruby/runtime/builtin/IRubyObject;)Lorg/jruby/runtime/builtin/IRubyObject;
areturn
end local 5 5: StackMap locals: org.jruby.runtime.builtin.IRubyObject org.jruby.RubyString
StackMap stack:
aload 0
aload 1
aload 2
getstatic org.jruby.runtime.Block.NULL_BLOCK:Lorg/jruby/runtime/Block;
invokestatic org.jruby.runtime.Helpers.invokeSuper:(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 end local 3 end local 2 end local 1 end local 0 LocalVariableTable:
Start End Slot Name Signature
0 6 0 context Lorg/jruby/runtime/ThreadContext;
0 6 1 self Lorg/jruby/runtime/builtin/IRubyObject;
0 6 2 argv [Lorg/jruby/runtime/builtin/IRubyObject;
1 6 3 _str Lorg/jruby/runtime/builtin/IRubyObject;
2 6 4 str Lorg/jruby/RubyString;
4 5 5 enc Lorg/jruby/runtime/builtin/IRubyObject;
RuntimeVisibleAnnotations:
org.jruby.anno.JRubyMethod(name = {"unescape"}, required = 1, optional = 1, module = true, frame = true)
MethodParameters:
Name Flags
context
self
argv
public void load(org.jruby.Ruby, boolean);
descriptor: (Lorg/jruby/Ruby;Z)V
flags: (0x0001) ACC_PUBLIC
Code:
stack=4, locals=5, args_size=3
start local 0 start local 1 start local 2 0: aload 1
ldc "CGI"
aload 1
invokevirtual org.jruby.Ruby.getObject:()Lorg/jruby/RubyClass;
aload 1
invokevirtual org.jruby.Ruby.getObject:()Lorg/jruby/RubyClass;
invokevirtual org.jruby.RubyClass.getAllocator:()Lorg/jruby/runtime/ObjectAllocator;
invokevirtual org.jruby.Ruby.defineClass:(Ljava/lang/String;Lorg/jruby/RubyClass;Lorg/jruby/runtime/ObjectAllocator;)Lorg/jruby/RubyClass;
astore 3
start local 3 1: aload 3
ldc "Escape"
invokevirtual org.jruby.RubyClass.defineModuleUnder:(Ljava/lang/String;)Lorg/jruby/RubyModule;
astore 4
start local 4 2: aload 4
ldc Lorg/jruby/ext/cgi/escape/CGIEscape;
invokevirtual org.jruby.RubyModule.defineAnnotatedMethods:(Ljava/lang/Class;)V
3: return
end local 4 end local 3 end local 2 end local 1 end local 0 LocalVariableTable:
Start End Slot Name Signature
0 4 0 this Lorg/jruby/ext/cgi/escape/CGIEscape;
0 4 1 runtime Lorg/jruby/Ruby;
0 4 2 wrap Z
1 4 3 rb_cCGI Lorg/jruby/RubyClass;
2 4 4 rb_mEscape Lorg/jruby/RubyModule;
MethodParameters:
Name Flags
runtime
wrap
static int ruby_scan_digits(byte[], int, int, int, int[]);
descriptor: ([BIII[I)I
flags: (0x0008) ACC_STATIC
Code:
stack=4, locals=10, args_size=5
start local 0 start local 1 start local 2 start local 3 start local 4 0: iload 1
istore 5
start local 5 1: iconst_0
istore 6
start local 6 2: ldc 2147483647
iload 3
idiv
istore 8
start local 8 3: aload 4
iconst_1
iconst_0
iastore
4: iload 2
ifne 7
5: aload 4
iconst_0
iconst_0
iastore
6: iconst_0
ireturn
7: StackMap locals: byte[] int int int int[] int int top int
StackMap stack:
getstatic org.jruby.ext.cgi.escape.CGIEscape.ruby_digit36_to_number_table:[I
aload 0
iload 1
iinc 1 1
baload
iaload
istore 9
start local 9 8: iload 9
iconst_m1
if_icmpeq 9
iload 3
iload 9
if_icmpgt 11
9: StackMap locals: int
StackMap stack:
iinc 1 -1
10: goto 19
11: StackMap locals:
StackMap stack:
iload 8
iload 6
if_icmpge 13
12: aload 4
iconst_1
iconst_1
iastore
13: StackMap locals:
StackMap stack:
iload 6
iload 3
imul
istore 6
14: iload 6
istore 7
start local 7 15: iload 6
iload 9
iadd
istore 6
16: iload 6
iload 7
if_icmpge 18
17: aload 4
iconst_1
iconst_1
iastore
end local 9 18: StackMap locals: byte[] int int int int[] int int int int
StackMap stack:
iload 2
iflt 7
iinc 2 -1
iload 2
ifne 7
end local 7 19: StackMap locals: byte[] int int int int[] int int top int
StackMap stack:
aload 4
iconst_0
iload 1
iload 5
isub
iastore
20: iload 6
ireturn
end local 8 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 21 0 strBytes [B
0 21 1 str I
0 21 2 len I
0 21 3 base I
0 21 4 retlenOverflow [I
1 21 5 start I
2 21 6 ret I
15 19 7 x I
3 21 8 mul_overflow I
8 18 9 d I
MethodParameters:
Name Flags
strBytes
str
len
base
retlenOverflow
static int char_to_number(int);
descriptor: (I)I
flags: (0x0008) ACC_STATIC
Code:
stack=2, locals=1, args_size=1
start local 0 0: getstatic org.jruby.ext.cgi.escape.CGIEscape.ruby_digit36_to_number_table:[I
iload 0
iaload
ireturn
end local 0 LocalVariableTable:
Start End Slot Name Signature
0 1 0 c I
MethodParameters:
Name Flags
c
}
SourceFile: "CGIEscape.java"