Rebasing the Inflater support on jzlib which, unlike GNU ClassPath, has correct implementation of Huffman code. Making the implementation more easily testable by turning Inflater and ZipInputStream into pure delegates. Current implementation is going to need proper long support.
2 * Copyright (c) 2002, 2005, Oracle and/or its affiliates. All rights reserved.
3 * DO NOT ALTER OR REMOVE COPYRIGHT NOTICES OR THIS FILE HEADER.
5 * This code is free software; you can redistribute it and/or modify it
6 * under the terms of the GNU General Public License version 2 only, as
7 * published by the Free Software Foundation. Oracle designates this
8 * particular file as subject to the "Classpath" exception as provided
9 * by Oracle in the LICENSE file that accompanied this code.
11 * This code is distributed in the hope that it will be useful, but WITHOUT
12 * ANY WARRANTY; without even the implied warranty of MERCHANTABILITY or
13 * FITNESS FOR A PARTICULAR PURPOSE. See the GNU General Public License
14 * version 2 for more details (a copy is included in the LICENSE file that
15 * accompanied this code).
17 * You should have received a copy of the GNU General Public License version
18 * 2 along with this work; if not, write to the Free Software Foundation,
19 * Inc., 51 Franklin St, Fifth Floor, Boston, MA 02110-1301 USA.
21 * Please contact Oracle, 500 Oracle Parkway, Redwood Shores, CA 94065 USA
22 * or visit www.oracle.com if you need additional information or have any
27 package org.apidesign.javap;
29 public interface RuntimeConstants {
31 /* Signature Characters */
32 public static final char SIGC_VOID = 'V';
33 public static final String SIG_VOID = "V";
34 public static final char SIGC_BOOLEAN = 'Z';
35 public static final String SIG_BOOLEAN = "Z";
36 public static final char SIGC_BYTE = 'B';
37 public static final String SIG_BYTE = "B";
38 public static final char SIGC_CHAR = 'C';
39 public static final String SIG_CHAR = "C";
40 public static final char SIGC_SHORT = 'S';
41 public static final String SIG_SHORT = "S";
42 public static final char SIGC_INT = 'I';
43 public static final String SIG_INT = "I";
44 public static final char SIGC_LONG = 'J';
45 public static final String SIG_LONG = "J";
46 public static final char SIGC_FLOAT = 'F';
47 public static final String SIG_FLOAT = "F";
48 public static final char SIGC_DOUBLE = 'D';
49 public static final String SIG_DOUBLE = "D";
50 public static final char SIGC_ARRAY = '[';
51 public static final String SIG_ARRAY = "[";
52 public static final char SIGC_CLASS = 'L';
53 public static final String SIG_CLASS = "L";
54 public static final char SIGC_METHOD = '(';
55 public static final String SIG_METHOD = "(";
56 public static final char SIGC_ENDCLASS = ';';
57 public static final String SIG_ENDCLASS = ";";
58 public static final char SIGC_ENDMETHOD = ')';
59 public static final String SIG_ENDMETHOD = ")";
60 public static final char SIGC_PACKAGE = '/';
61 public static final String SIG_PACKAGE = "/";
63 /* Class File Constants */
64 public static final int JAVA_MAGIC = 0xcafebabe;
65 public static final int JAVA_VERSION = 45;
66 public static final int JAVA_MINOR_VERSION = 3;
69 public static final int CONSTANT_UTF8 = 1;
70 public static final int CONSTANT_UNICODE = 2;
71 public static final int CONSTANT_INTEGER = 3;
72 public static final int CONSTANT_FLOAT = 4;
73 public static final int CONSTANT_LONG = 5;
74 public static final int CONSTANT_DOUBLE = 6;
75 public static final int CONSTANT_CLASS = 7;
76 public static final int CONSTANT_STRING = 8;
77 public static final int CONSTANT_FIELD = 9;
78 public static final int CONSTANT_METHOD = 10;
79 public static final int CONSTANT_INTERFACEMETHOD = 11;
80 public static final int CONSTANT_NAMEANDTYPE = 12;
83 public static final int ACC_PUBLIC = 0x00000001;
84 public static final int ACC_PRIVATE = 0x00000002;
85 public static final int ACC_PROTECTED = 0x00000004;
86 public static final int ACC_STATIC = 0x00000008;
87 public static final int ACC_FINAL = 0x00000010;
88 public static final int ACC_SYNCHRONIZED = 0x00000020;
89 public static final int ACC_SUPER = 0x00000020;
90 public static final int ACC_VOLATILE = 0x00000040;
91 public static final int ACC_TRANSIENT = 0x00000080;
92 public static final int ACC_NATIVE = 0x00000100;
93 public static final int ACC_INTERFACE = 0x00000200;
94 public static final int ACC_ABSTRACT = 0x00000400;
95 public static final int ACC_STRICT = 0x00000800;
96 public static final int ACC_EXPLICIT = 0x00001000;
97 public static final int ACC_SYNTHETIC = 0x00010000; // actually, this is an attribute
100 public static final int T_CLASS = 0x00000002;
101 public static final int T_BOOLEAN = 0x00000004;
102 public static final int T_CHAR = 0x00000005;
103 public static final int T_FLOAT = 0x00000006;
104 public static final int T_DOUBLE = 0x00000007;
105 public static final int T_BYTE = 0x00000008;
106 public static final int T_SHORT = 0x00000009;
107 public static final int T_INT = 0x0000000a;
108 public static final int T_LONG = 0x0000000b;
110 /* Type codes for StackMap attribute */
111 public static final int ITEM_Bogus =0; // an unknown or uninitialized value
112 public static final int ITEM_Integer =1; // a 32-bit integer
113 public static final int ITEM_Float =2; // not used
114 public static final int ITEM_Double =3; // not used
115 public static final int ITEM_Long =4; // a 64-bit integer
116 public static final int ITEM_Null =5; // the type of null
117 public static final int ITEM_InitObject =6; // "this" in constructor
118 public static final int ITEM_Object =7; // followed by 2-byte index of class name
119 public static final int ITEM_NewObject =8; // followed by 2-byte ref to "new"
121 /* Constants used in StackMapTable attribute */
122 public static final int SAME_FRAME_BOUND = 64;
123 public static final int SAME_LOCALS_1_STACK_ITEM_BOUND = 128;
124 public static final int SAME_LOCALS_1_STACK_ITEM_EXTENDED = 247;
125 public static final int SAME_FRAME_EXTENDED = 251;
126 public static final int FULL_FRAME = 255;
129 public static final int opc_dead = -2;
130 public static final int opc_label = -1;
131 public static final int opc_nop = 0;
132 public static final int opc_aconst_null = 1;
133 public static final int opc_iconst_m1 = 2;
134 public static final int opc_iconst_0 = 3;
135 public static final int opc_iconst_1 = 4;
136 public static final int opc_iconst_2 = 5;
137 public static final int opc_iconst_3 = 6;
138 public static final int opc_iconst_4 = 7;
139 public static final int opc_iconst_5 = 8;
140 public static final int opc_lconst_0 = 9;
141 public static final int opc_lconst_1 = 10;
142 public static final int opc_fconst_0 = 11;
143 public static final int opc_fconst_1 = 12;
144 public static final int opc_fconst_2 = 13;
145 public static final int opc_dconst_0 = 14;
146 public static final int opc_dconst_1 = 15;
147 public static final int opc_bipush = 16;
148 public static final int opc_sipush = 17;
149 public static final int opc_ldc = 18;
150 public static final int opc_ldc_w = 19;
151 public static final int opc_ldc2_w = 20;
152 public static final int opc_iload = 21;
153 public static final int opc_lload = 22;
154 public static final int opc_fload = 23;
155 public static final int opc_dload = 24;
156 public static final int opc_aload = 25;
157 public static final int opc_iload_0 = 26;
158 public static final int opc_iload_1 = 27;
159 public static final int opc_iload_2 = 28;
160 public static final int opc_iload_3 = 29;
161 public static final int opc_lload_0 = 30;
162 public static final int opc_lload_1 = 31;
163 public static final int opc_lload_2 = 32;
164 public static final int opc_lload_3 = 33;
165 public static final int opc_fload_0 = 34;
166 public static final int opc_fload_1 = 35;
167 public static final int opc_fload_2 = 36;
168 public static final int opc_fload_3 = 37;
169 public static final int opc_dload_0 = 38;
170 public static final int opc_dload_1 = 39;
171 public static final int opc_dload_2 = 40;
172 public static final int opc_dload_3 = 41;
173 public static final int opc_aload_0 = 42;
174 public static final int opc_aload_1 = 43;
175 public static final int opc_aload_2 = 44;
176 public static final int opc_aload_3 = 45;
177 public static final int opc_iaload = 46;
178 public static final int opc_laload = 47;
179 public static final int opc_faload = 48;
180 public static final int opc_daload = 49;
181 public static final int opc_aaload = 50;
182 public static final int opc_baload = 51;
183 public static final int opc_caload = 52;
184 public static final int opc_saload = 53;
185 public static final int opc_istore = 54;
186 public static final int opc_lstore = 55;
187 public static final int opc_fstore = 56;
188 public static final int opc_dstore = 57;
189 public static final int opc_astore = 58;
190 public static final int opc_istore_0 = 59;
191 public static final int opc_istore_1 = 60;
192 public static final int opc_istore_2 = 61;
193 public static final int opc_istore_3 = 62;
194 public static final int opc_lstore_0 = 63;
195 public static final int opc_lstore_1 = 64;
196 public static final int opc_lstore_2 = 65;
197 public static final int opc_lstore_3 = 66;
198 public static final int opc_fstore_0 = 67;
199 public static final int opc_fstore_1 = 68;
200 public static final int opc_fstore_2 = 69;
201 public static final int opc_fstore_3 = 70;
202 public static final int opc_dstore_0 = 71;
203 public static final int opc_dstore_1 = 72;
204 public static final int opc_dstore_2 = 73;
205 public static final int opc_dstore_3 = 74;
206 public static final int opc_astore_0 = 75;
207 public static final int opc_astore_1 = 76;
208 public static final int opc_astore_2 = 77;
209 public static final int opc_astore_3 = 78;
210 public static final int opc_iastore = 79;
211 public static final int opc_lastore = 80;
212 public static final int opc_fastore = 81;
213 public static final int opc_dastore = 82;
214 public static final int opc_aastore = 83;
215 public static final int opc_bastore = 84;
216 public static final int opc_castore = 85;
217 public static final int opc_sastore = 86;
218 public static final int opc_pop = 87;
219 public static final int opc_pop2 = 88;
220 public static final int opc_dup = 89;
221 public static final int opc_dup_x1 = 90;
222 public static final int opc_dup_x2 = 91;
223 public static final int opc_dup2 = 92;
224 public static final int opc_dup2_x1 = 93;
225 public static final int opc_dup2_x2 = 94;
226 public static final int opc_swap = 95;
227 public static final int opc_iadd = 96;
228 public static final int opc_ladd = 97;
229 public static final int opc_fadd = 98;
230 public static final int opc_dadd = 99;
231 public static final int opc_isub = 100;
232 public static final int opc_lsub = 101;
233 public static final int opc_fsub = 102;
234 public static final int opc_dsub = 103;
235 public static final int opc_imul = 104;
236 public static final int opc_lmul = 105;
237 public static final int opc_fmul = 106;
238 public static final int opc_dmul = 107;
239 public static final int opc_idiv = 108;
240 public static final int opc_ldiv = 109;
241 public static final int opc_fdiv = 110;
242 public static final int opc_ddiv = 111;
243 public static final int opc_irem = 112;
244 public static final int opc_lrem = 113;
245 public static final int opc_frem = 114;
246 public static final int opc_drem = 115;
247 public static final int opc_ineg = 116;
248 public static final int opc_lneg = 117;
249 public static final int opc_fneg = 118;
250 public static final int opc_dneg = 119;
251 public static final int opc_ishl = 120;
252 public static final int opc_lshl = 121;
253 public static final int opc_ishr = 122;
254 public static final int opc_lshr = 123;
255 public static final int opc_iushr = 124;
256 public static final int opc_lushr = 125;
257 public static final int opc_iand = 126;
258 public static final int opc_land = 127;
259 public static final int opc_ior = 128;
260 public static final int opc_lor = 129;
261 public static final int opc_ixor = 130;
262 public static final int opc_lxor = 131;
263 public static final int opc_iinc = 132;
264 public static final int opc_i2l = 133;
265 public static final int opc_i2f = 134;
266 public static final int opc_i2d = 135;
267 public static final int opc_l2i = 136;
268 public static final int opc_l2f = 137;
269 public static final int opc_l2d = 138;
270 public static final int opc_f2i = 139;
271 public static final int opc_f2l = 140;
272 public static final int opc_f2d = 141;
273 public static final int opc_d2i = 142;
274 public static final int opc_d2l = 143;
275 public static final int opc_d2f = 144;
276 public static final int opc_i2b = 145;
277 public static final int opc_int2byte = 145;
278 public static final int opc_i2c = 146;
279 public static final int opc_int2char = 146;
280 public static final int opc_i2s = 147;
281 public static final int opc_int2short = 147;
282 public static final int opc_lcmp = 148;
283 public static final int opc_fcmpl = 149;
284 public static final int opc_fcmpg = 150;
285 public static final int opc_dcmpl = 151;
286 public static final int opc_dcmpg = 152;
287 public static final int opc_ifeq = 153;
288 public static final int opc_ifne = 154;
289 public static final int opc_iflt = 155;
290 public static final int opc_ifge = 156;
291 public static final int opc_ifgt = 157;
292 public static final int opc_ifle = 158;
293 public static final int opc_if_icmpeq = 159;
294 public static final int opc_if_icmpne = 160;
295 public static final int opc_if_icmplt = 161;
296 public static final int opc_if_icmpge = 162;
297 public static final int opc_if_icmpgt = 163;
298 public static final int opc_if_icmple = 164;
299 public static final int opc_if_acmpeq = 165;
300 public static final int opc_if_acmpne = 166;
301 public static final int opc_goto = 167;
302 public static final int opc_jsr = 168;
303 public static final int opc_ret = 169;
304 public static final int opc_tableswitch = 170;
305 public static final int opc_lookupswitch = 171;
306 public static final int opc_ireturn = 172;
307 public static final int opc_lreturn = 173;
308 public static final int opc_freturn = 174;
309 public static final int opc_dreturn = 175;
310 public static final int opc_areturn = 176;
311 public static final int opc_return = 177;
312 public static final int opc_getstatic = 178;
313 public static final int opc_putstatic = 179;
314 public static final int opc_getfield = 180;
315 public static final int opc_putfield = 181;
316 public static final int opc_invokevirtual = 182;
317 public static final int opc_invokenonvirtual = 183;
318 public static final int opc_invokespecial = 183;
319 public static final int opc_invokestatic = 184;
320 public static final int opc_invokeinterface = 185;
321 // public static final int opc_xxxunusedxxx = 186;
322 public static final int opc_new = 187;
323 public static final int opc_newarray = 188;
324 public static final int opc_anewarray = 189;
325 public static final int opc_arraylength = 190;
326 public static final int opc_athrow = 191;
327 public static final int opc_checkcast = 192;
328 public static final int opc_instanceof = 193;
329 public static final int opc_monitorenter = 194;
330 public static final int opc_monitorexit = 195;
331 public static final int opc_wide = 196;
332 public static final int opc_multianewarray = 197;
333 public static final int opc_ifnull = 198;
334 public static final int opc_ifnonnull = 199;
335 public static final int opc_goto_w = 200;
336 public static final int opc_jsr_w = 201;
337 /* Pseudo-instructions */
338 public static final int opc_bytecode = 203;
339 public static final int opc_try = 204;
340 public static final int opc_endtry = 205;
341 public static final int opc_catch = 206;
342 public static final int opc_var = 207;
343 public static final int opc_endvar = 208;
344 public static final int opc_localsmap = 209;
345 public static final int opc_stackmap = 210;
346 /* PicoJava prefixes */
347 public static final int opc_nonpriv = 254;
348 public static final int opc_priv = 255;
350 /* Wide instructions */
351 public static final int opc_iload_w = (opc_wide<<8)|opc_iload;
352 public static final int opc_lload_w = (opc_wide<<8)|opc_lload;
353 public static final int opc_fload_w = (opc_wide<<8)|opc_fload;
354 public static final int opc_dload_w = (opc_wide<<8)|opc_dload;
355 public static final int opc_aload_w = (opc_wide<<8)|opc_aload;
356 public static final int opc_istore_w = (opc_wide<<8)|opc_istore;
357 public static final int opc_lstore_w = (opc_wide<<8)|opc_lstore;
358 public static final int opc_fstore_w = (opc_wide<<8)|opc_fstore;
359 public static final int opc_dstore_w = (opc_wide<<8)|opc_dstore;
360 public static final int opc_astore_w = (opc_wide<<8)|opc_astore;
361 public static final int opc_ret_w = (opc_wide<<8)|opc_ret;
362 public static final int opc_iinc_w = (opc_wide<<8)|opc_iinc;
365 public static final String opcNamesTab[] = {
549 "invokespecial", // was "invokenonvirtual",
552 "bytecode 186", //"xxxunusedxxx",
568 "bytecode 202", // "breakpoint",
580 public static final int opcLengthsTab[] = {
784 1, 0, 0, 0, 0, 0 // pseudo