APIdia Launch Partner
Top Description Inners Fields Constructors Methods
jdk.internal.classfile.impl.verifier

public final Class VerifierImpl

extends Object
Class Inheritance
Imports
java.lang.classfile.ClassHierarchyResolver, .ClassModel, jdk.internal.classfile.components.ClassPrinter, java.util.ArrayList, .Collections, .List, java.util.function.Consumer, jdk.internal.classfile.impl.ClassHierarchyImpl, .RawBytecodeHelper, jdk.internal.classfile.impl.verifier.VerificationSignature.BasicType, .VerificationWrapper.ConstantPoolWrapper

VerifierImpl performs selected checks and verifications of the class file format according to 4.8 Format Checking, 4.9 Constraints on Java Virtual Machine code, 4.10 Verification of class Files and 6.5 Instructions

From verifier.cpp.

Nested and Inner Type Summary

Modifier and TypeClass and Description
pack-priv static class

Field Summary

Modifier and TypeField and Description
pack-priv final ClassHierarchyImpl
pack-priv final VerificationWrapper
private final Consumer<String>
pack-priv VerificationWrapper.MethodWrapper
pack-priv VerificationType
private int
pack-priv static final int
pack-priv String
pack-priv static final int
pack-priv static final String
pack-priv static final String
pack-priv static final String
pack-priv static final String
pack-priv static final String
pack-priv static final String
pack-priv static final int
pack-priv static final int
pack-priv static final int
pack-priv static final int
pack-priv static final int
pack-priv static final int
pack-priv static final int
pack-priv static final int
pack-priv static final int
pack-priv static final int
pack-priv static final int
pack-priv static final int
pack-priv static final int
pack-priv static final int
pack-priv static final int
pack-priv static final int
pack-priv static final int
pack-priv static final int
pack-priv static final int
pack-priv static final char
pack-priv static final char
pack-priv static final char
pack-priv static final char
pack-priv static final char
pack-priv static final char
pack-priv static final char
pack-priv static final char
pack-priv static final char
pack-priv static final char
pack-priv static final char
private static final int
pack-priv static final int
pack-priv static final int
pack-priv static final int
private static final int
pack-priv static final String
pack-priv static final int
private static final int

Constructor Summary

AccessConstructor and Description
pack-priv
VerifierImpl(VerificationWrapper klass, ClassHierarchyResolver classHierarchyResolver, Consumer<String> logger)

Method Summary

Modifier and TypeMethod and Description
pack-priv int
change_sig_to_verificationType(VerificationSignature sig_type, VerificationType[] inference_types, int inference_type_index)

pack-priv ClassHierarchyImpl
pack-priv void
pack-priv VerificationType
pack-priv VerificationType
pack-priv void
pack-priv VerificationWrapper
pack-priv VerificationType
private void
private byte[]
pack-priv VerificationType
get_newarray_type(int index, int bci)

pack-priv static List<VerifyError>
public static boolean
pack-priv static boolean
pack-priv static void
log_info(Consumer<String> logger, String messageFormat, Object... args)

pack-priv void
log_info(String messageFormat, Object... args)

private VerificationType
pack-priv void
public static List<VerifyError>
verify(ClassModel classModel, Consumer<String> logger)

public static List<VerifyError>
verify(ClassModel classModel, ClassHierarchyResolver classHierarchyResolver, Consumer<String> logger)

pack-priv void
verify_aload(int index, VerificationFrame current_frame)

pack-priv void
pack-priv void
verify_astore(int index, VerificationFrame current_frame)

pack-priv List<VerifyError>
pack-priv void
pack-priv void
pack-priv void
verify_cp_type(int bci, int index, VerificationWrapper.ConstantPoolWrapper cp, int types)

pack-priv void
verify_dload(int index, VerificationFrame current_frame)

pack-priv void
verify_dstore(int index, VerificationFrame current_frame)

pack-priv void
verify_exception_handler_table(int code_length, byte[] code_data, int[] minmax)

pack-priv void
verify_exception_handler_targets(int bci, boolean this_uninit, VerificationFrame current_frame, VerificationTable stackmap_table)

pack-priv void
pack-priv void
verify_fload(int index, VerificationFrame current_frame)

pack-priv void
verify_fstore(int index, VerificationFrame current_frame)

pack-priv void
verify_iinc(int index, VerificationFrame current_frame)

pack-priv void
verify_iload(int index, VerificationFrame current_frame)

pack-priv boolean
verify_invoke_init(RawBytecodeHelper bcs, int ref_class_index, VerificationType ref_class_type, VerificationFrame current_frame, int code_length, boolean in_try_block, boolean this_uninit, VerificationWrapper.ConstantPoolWrapper cp, VerificationTable stackmap_table)

pack-priv boolean
verify_invoke_instructions(RawBytecodeHelper bcs, int code_length, VerificationFrame current_frame, boolean in_try_block, boolean this_uninit, VerificationType return_type, VerificationWrapper.ConstantPoolWrapper cp, VerificationTable stackmap_table)

pack-priv void
verify_istore(int index, VerificationFrame current_frame)

pack-priv void
verify_ldc(int opcode, int index, VerificationFrame current_frame, VerificationWrapper.ConstantPoolWrapper cp, int bci)

pack-priv void
verify_lload(int index, VerificationFrame current_frame)

pack-priv void
verify_local_variable_table(int code_length, byte[] code_data)

pack-priv void
verify_lstore(int index, VerificationFrame current_frame)

pack-priv void
pack-priv void
pack-priv void
verify_return_value(VerificationType return_type, VerificationType type, int bci, VerificationFrame current_frame)

pack-priv int
verify_stackmap_table(int stackmap_index, int bci, VerificationFrame current_frame, VerificationTable stackmap_table, boolean no_control_flow)

pack-priv void
verify_switch(RawBytecodeHelper bcs, int code_length, byte[] code_data, VerificationFrame current_frame, VerificationTable stackmap_table)

pack-priv void
pack-priv void
Inherited from java.lang.Object:
cloneequalsfinalizegetClasshashCodenotifynotifyAlltoStringwaitwaitwait

Field Detail

_class_hierarchyback to summary
pack-priv final ClassHierarchyImpl _class_hierarchy
_klassback to summary
pack-priv final VerificationWrapper _klass
_loggerback to summary
private final Consumer<String> _logger
_methodback to summary
pack-priv VerificationWrapper.MethodWrapper _method
_this_typeback to summary
pack-priv VerificationType _this_type
bciback to summary
private int bci
BYTECODE_OFFSETback to summary
pack-priv static final int BYTECODE_OFFSET
errorContextback to summary
pack-priv String errorContext
INVOKEDYNAMIC_MAJOR_VERSIONback to summary
pack-priv static final int INVOKEDYNAMIC_MAJOR_VERSION
java_lang_Classback to summary
pack-priv static final String java_lang_Class
java_lang_invoke_MethodHandleback to summary
pack-priv static final String java_lang_invoke_MethodHandle
java_lang_invoke_MethodTypeback to summary
pack-priv static final String java_lang_invoke_MethodType
java_lang_Objectback to summary
pack-priv static final String java_lang_Object
java_lang_Stringback to summary
pack-priv static final String java_lang_String
java_lang_Throwableback to summary
pack-priv static final String java_lang_Throwable
JVM_CONSTANT_Classback to summary
pack-priv static final int JVM_CONSTANT_Class
JVM_CONSTANT_Doubleback to summary
pack-priv static final int JVM_CONSTANT_Double
JVM_CONSTANT_Dynamicback to summary
pack-priv static final int JVM_CONSTANT_Dynamic
JVM_CONSTANT_ExternalMaxback to summary
pack-priv static final int JVM_CONSTANT_ExternalMax
JVM_CONSTANT_Fieldrefback to summary
pack-priv static final int JVM_CONSTANT_Fieldref
JVM_CONSTANT_Floatback to summary
pack-priv static final int JVM_CONSTANT_Float
JVM_CONSTANT_Integerback to summary
pack-priv static final int JVM_CONSTANT_Integer
JVM_CONSTANT_InterfaceMethodrefback to summary
pack-priv static final int JVM_CONSTANT_InterfaceMethodref
JVM_CONSTANT_InvokeDynamicback to summary
pack-priv static final int JVM_CONSTANT_InvokeDynamic
JVM_CONSTANT_Longback to summary
pack-priv static final int JVM_CONSTANT_Long
JVM_CONSTANT_MethodHandleback to summary
pack-priv static final int JVM_CONSTANT_MethodHandle
JVM_CONSTANT_Methodrefback to summary
pack-priv static final int JVM_CONSTANT_Methodref
JVM_CONSTANT_MethodTypeback to summary
pack-priv static final int JVM_CONSTANT_MethodType
JVM_CONSTANT_Moduleback to summary
pack-priv static final int JVM_CONSTANT_Module
JVM_CONSTANT_NameAndTypeback to summary
pack-priv static final int JVM_CONSTANT_NameAndType
JVM_CONSTANT_Packageback to summary
pack-priv static final int JVM_CONSTANT_Package
JVM_CONSTANT_Stringback to summary
pack-priv static final int JVM_CONSTANT_String
JVM_CONSTANT_Unicodeback to summary
pack-priv static final int JVM_CONSTANT_Unicode
JVM_CONSTANT_Utf8back to summary
pack-priv static final int JVM_CONSTANT_Utf8
JVM_SIGNATURE_ARRAYback to summary
pack-priv static final char JVM_SIGNATURE_ARRAY
JVM_SIGNATURE_BOOLEANback to summary
pack-priv static final char JVM_SIGNATURE_BOOLEAN
JVM_SIGNATURE_BYTEback to summary
pack-priv static final char JVM_SIGNATURE_BYTE
JVM_SIGNATURE_CHARback to summary
pack-priv static final char JVM_SIGNATURE_CHAR
JVM_SIGNATURE_CLASSback to summary
pack-priv static final char JVM_SIGNATURE_CLASS
JVM_SIGNATURE_DOUBLEback to summary
pack-priv static final char JVM_SIGNATURE_DOUBLE
JVM_SIGNATURE_FLOATback to summary
pack-priv static final char JVM_SIGNATURE_FLOAT
JVM_SIGNATURE_INTback to summary
pack-priv static final char JVM_SIGNATURE_INT
JVM_SIGNATURE_LONGback to summary
pack-priv static final char JVM_SIGNATURE_LONG
JVM_SIGNATURE_SHORTback to summary
pack-priv static final char JVM_SIGNATURE_SHORT
JVM_SIGNATURE_SPECIALback to summary
pack-priv static final char JVM_SIGNATURE_SPECIAL
MAX_ARRAY_DIMENSIONSback to summary
private static final int MAX_ARRAY_DIMENSIONS
MAX_CODE_SIZEback to summary
pack-priv static final int MAX_CODE_SIZE
NEW_OFFSETback to summary
pack-priv static final int NEW_OFFSET
NOFAILOVER_MAJOR_VERSIONback to summary
pack-priv static final int NOFAILOVER_MAJOR_VERSION
NONZERO_PADDING_BYTES_IN_SWITCH_MAJOR_VERSIONback to summary
private static final int NONZERO_PADDING_BYTES_IN_SWITCH_MAJOR_VERSION
object_initializer_nameback to summary
pack-priv static final String object_initializer_name
STACKMAP_ATTRIBUTE_MAJOR_VERSIONback to summary
pack-priv static final int STACKMAP_ATTRIBUTE_MAJOR_VERSION
STATIC_METHOD_IN_INTERFACE_MAJOR_VERSIONback to summary
private static final int STATIC_METHOD_IN_INTERFACE_MAJOR_VERSION

Constructor Detail

VerifierImplback to summary
pack-priv VerifierImpl(VerificationWrapper klass, ClassHierarchyResolver classHierarchyResolver, Consumer<String> logger)

Method Detail

change_sig_to_verificationTypeback to summary
pack-priv int change_sig_to_verificationType(VerificationSignature sig_type, VerificationType[] inference_types, int inference_type_index)
class_hierarchyback to summary
pack-priv ClassHierarchyImpl class_hierarchy()
classErrorback to summary
pack-priv void classError(String msg)
cp_index_to_typeback to summary
pack-priv VerificationType cp_index_to_type(int index, VerificationWrapper.ConstantPoolWrapper cp)
cp_ref_index_to_typeback to summary
pack-priv VerificationType cp_ref_index_to_type(int index, VerificationWrapper.ConstantPoolWrapper cp)
create_method_sig_entryback to summary
pack-priv void create_method_sig_entry(VerifierImpl.sig_as_verification_types sig_verif_types, String method_sig)
current_classback to summary
pack-priv VerificationWrapper current_class()
current_typeback to summary
pack-priv VerificationType current_type()
dumpMethodback to summary
private void dumpMethod()
generate_code_databack to summary
private byte[] generate_code_data(RawBytecodeHelper.CodeRange code)
get_newarray_typeback to summary
pack-priv VerificationType get_newarray_type(int index, int bci)
inference_verifyback to summary
pack-priv static List<VerifyError> inference_verify(VerificationWrapper klass)
is_eligible_for_verificationback to summary
public static boolean is_eligible_for_verification(VerificationWrapper klass)
is_same_or_direct_interfaceback to summary
pack-priv static boolean is_same_or_direct_interface(VerificationWrapper klass, VerificationType klass_type, VerificationType ref_class_type)
log_infoback to summary
pack-priv static void log_info(Consumer<String> logger, String messageFormat, Object... args)
log_infoback to summary
pack-priv void log_info(String messageFormat, Object... args)
object_typeback to summary
private VerificationType object_type()
translate_signatureback to summary
pack-priv void translate_signature(String method_sig, VerifierImpl.sig_as_verification_types sig_verif_types)
verifyback to summary
public static List<VerifyError> verify(ClassModel classModel, Consumer<String> logger)
verifyback to summary
public static List<VerifyError> verify(ClassModel classModel, ClassHierarchyResolver classHierarchyResolver, Consumer<String> logger)
verify_aloadback to summary
pack-priv void verify_aload(int index, VerificationFrame current_frame)
verify_anewarrayback to summary
pack-priv void verify_anewarray(int bci, int index, VerificationWrapper.ConstantPoolWrapper cp, VerificationFrame current_frame)
verify_astoreback to summary
pack-priv void verify_astore(int index, VerificationFrame current_frame)
verify_classback to summary
pack-priv List<VerifyError> verify_class()
verify_cp_class_typeback to summary
pack-priv void verify_cp_class_type(int bci, int index, VerificationWrapper.ConstantPoolWrapper cp)
verify_cp_indexback to summary
pack-priv void verify_cp_index(int bci, VerificationWrapper.ConstantPoolWrapper cp, int index)
verify_cp_typeback to summary
pack-priv void verify_cp_type(int bci, int index, VerificationWrapper.ConstantPoolWrapper cp, int types)
verify_dloadback to summary
pack-priv void verify_dload(int index, VerificationFrame current_frame)
verify_dstoreback to summary
pack-priv void verify_dstore(int index, VerificationFrame current_frame)
verify_exception_handler_tableback to summary
pack-priv void verify_exception_handler_table(int code_length, byte[] code_data, int[] minmax)
verify_exception_handler_targetsback to summary
pack-priv void verify_exception_handler_targets(int bci, boolean this_uninit, VerificationFrame current_frame, VerificationTable stackmap_table)
verify_field_instructionsback to summary
pack-priv void verify_field_instructions(RawBytecodeHelper bcs, VerificationFrame current_frame, VerificationWrapper.ConstantPoolWrapper cp, boolean allow_arrays)
verify_floadback to summary
pack-priv void verify_fload(int index, VerificationFrame current_frame)
verify_fstoreback to summary
pack-priv void verify_fstore(int index, VerificationFrame current_frame)
verify_iincback to summary
pack-priv void verify_iinc(int index, VerificationFrame current_frame)
verify_iloadback to summary
pack-priv void verify_iload(int index, VerificationFrame current_frame)
verify_invoke_initback to summary
pack-priv boolean verify_invoke_init(RawBytecodeHelper bcs, int ref_class_index, VerificationType ref_class_type, VerificationFrame current_frame, int code_length, boolean in_try_block, boolean this_uninit, VerificationWrapper.ConstantPoolWrapper cp, VerificationTable stackmap_table)
verify_invoke_instructionsback to summary
pack-priv boolean verify_invoke_instructions(RawBytecodeHelper bcs, int code_length, VerificationFrame current_frame, boolean in_try_block, boolean this_uninit, VerificationType return_type, VerificationWrapper.ConstantPoolWrapper cp, VerificationTable stackmap_table)
verify_istoreback to summary
pack-priv void verify_istore(int index, VerificationFrame current_frame)
verify_ldcback to summary
pack-priv void verify_ldc(int opcode, int index, VerificationFrame current_frame, VerificationWrapper.ConstantPoolWrapper cp, int bci)
verify_lloadback to summary
pack-priv void verify_lload(int index, VerificationFrame current_frame)
verify_local_variable_tableback to summary
pack-priv void verify_local_variable_table(int code_length, byte[] code_data)
verify_lstoreback to summary
pack-priv void verify_lstore(int index, VerificationFrame current_frame)
verify_methodback to summary
pack-priv void verify_method(VerificationWrapper.MethodWrapper m, List<VerifyError> errorsCollector)
verify_methodback to summary
pack-priv void verify_method(VerificationWrapper.MethodWrapper m)
Annotations
@SuppressWarnings:fallthrough
verify_return_valueback to summary
pack-priv void verify_return_value(VerificationType return_type, VerificationType type, int bci, VerificationFrame current_frame)
verify_stackmap_tableback to summary
pack-priv int verify_stackmap_table(int stackmap_index, int bci, VerificationFrame current_frame, VerificationTable stackmap_table, boolean no_control_flow)
verify_switchback to summary
pack-priv void verify_switch(RawBytecodeHelper bcs, int code_length, byte[] code_data, VerificationFrame current_frame, VerificationTable stackmap_table)
verifyErrorback to summary
pack-priv void verifyError(String msg)
verifyErrorback to summary
pack-priv void verifyError(String msg, VerificationFrame from, VerificationFrame target)
jdk.internal.classfile.impl.verifier back to summary

pack-priv Class VerifierImpl.sig_as_verification_types

extends Object
Class Inheritance
  • java.lang.Object
  • jdk.internal.classfile.impl.verifier.VerifierImpl.sig_as_verification_types

Field Summary

Modifier and TypeField and Description
private int
private ArrayList<VerificationType>

Constructor Summary

AccessConstructor and Description
pack-priv

Method Summary

Modifier and TypeMethod and Description
pack-priv int
pack-priv void
set_num_args(int num_args)

pack-priv ArrayList<VerificationType>
Inherited from java.lang.Object:
cloneequalsfinalizegetClasshashCodenotifynotifyAlltoStringwaitwaitwait

Field Detail

_num_argsback to summary
private int _num_args
_sig_verif_typesback to summary
private ArrayList<VerificationType> _sig_verif_types

Constructor Detail

sig_as_verification_typesback to summary
pack-priv sig_as_verification_types(ArrayList<VerificationType> sig_verif_types)

Method Detail

num_argsback to summary
pack-priv int num_args()
set_num_argsback to summary
pack-priv void set_num_args(int num_args)
sig_verif_typesback to summary
pack-priv ArrayList<VerificationType> sig_verif_types()