< prev index next >

src/java.base/share/classes/jdk/internal/classfile/impl/verifier/ParserVerifier.java

Print this page

260             }
261             case DeprecatedAttribute _ ->
262                 0;
263             case EnclosingMethodAttribute ema -> {
264                 ema.enclosingClass();
265                 ema.enclosingMethod();
266                 yield 4;
267             }
268             case ExceptionsAttribute ea ->
269                 2 + 2 * ea.exceptions().size();
270             case InnerClassesAttribute ica -> {
271                 for (var ici : ica.classes()) {
272                     if (ici.outerClass().isPresent() && ici.outerClass().get().equals(ici.innerClass())) {
273                         errors.add(new VerifyError("Class is both outer and inner class in %s".formatted(toString(ae))));
274                     }
275                 }
276                 yield 2 + 8 * ica.classes().size();
277             }
278             case LineNumberTableAttribute lta ->
279                 2 + 4 * lta.lineNumbers().size();


280             case LocalVariableTableAttribute lvta ->
281                 2 + 10 * lvta.localVariables().size();
282             case LocalVariableTypeTableAttribute lvta ->
283                 2 + 10 * lvta.localVariableTypes().size();
284             case MethodParametersAttribute mpa ->
285                 1 + 4 * mpa.parameters().size();
286             case ModuleAttribute ma ->
287                 16 + subSize(ma.exports(), ModuleExportInfo::exportsTo, 6, 2)
288                    + subSize(ma.opens(), ModuleOpenInfo::opensTo, 6, 2)
289                    + subSize(ma.provides(), ModuleProvideInfo::providesWith, 4, 2)
290                    + 6 * ma.requires().size()
291                    + 2 * ma.uses().size();
292             case ModuleHashesAttribute mha ->
293                 2 + moduleHashesSize(mha.hashes());
294             case ModuleMainClassAttribute mmca -> {
295                 mmca.mainClass();
296                 yield 2;
297             }
298             case ModulePackagesAttribute mpa ->
299                 2 + 2 * mpa.packages().size();

260             }
261             case DeprecatedAttribute _ ->
262                 0;
263             case EnclosingMethodAttribute ema -> {
264                 ema.enclosingClass();
265                 ema.enclosingMethod();
266                 yield 4;
267             }
268             case ExceptionsAttribute ea ->
269                 2 + 2 * ea.exceptions().size();
270             case InnerClassesAttribute ica -> {
271                 for (var ici : ica.classes()) {
272                     if (ici.outerClass().isPresent() && ici.outerClass().get().equals(ici.innerClass())) {
273                         errors.add(new VerifyError("Class is both outer and inner class in %s".formatted(toString(ae))));
274                     }
275                 }
276                 yield 2 + 8 * ica.classes().size();
277             }
278             case LineNumberTableAttribute lta ->
279                 2 + 4 * lta.lineNumbers().size();
280             case LoadableDescriptorsAttribute lda ->
281                 2 + 2 * lda.loadableDescriptors().size();
282             case LocalVariableTableAttribute lvta ->
283                 2 + 10 * lvta.localVariables().size();
284             case LocalVariableTypeTableAttribute lvta ->
285                 2 + 10 * lvta.localVariableTypes().size();
286             case MethodParametersAttribute mpa ->
287                 1 + 4 * mpa.parameters().size();
288             case ModuleAttribute ma ->
289                 16 + subSize(ma.exports(), ModuleExportInfo::exportsTo, 6, 2)
290                    + subSize(ma.opens(), ModuleOpenInfo::opensTo, 6, 2)
291                    + subSize(ma.provides(), ModuleProvideInfo::providesWith, 4, 2)
292                    + 6 * ma.requires().size()
293                    + 2 * ma.uses().size();
294             case ModuleHashesAttribute mha ->
295                 2 + moduleHashesSize(mha.hashes());
296             case ModuleMainClassAttribute mmca -> {
297                 mmca.mainClass();
298                 yield 2;
299             }
300             case ModulePackagesAttribute mpa ->
301                 2 + 2 * mpa.packages().size();
< prev index next >