32 * Verify the bytecodes for a class. If 'throw_exception' is true |
32 * Verify the bytecodes for a class. If 'throw_exception' is true |
33 * then the appropriate VerifyError or ClassFormatError will be thrown. |
33 * then the appropriate VerifyError or ClassFormatError will be thrown. |
34 * Otherwise, no exception is thrown and the return indicates the |
34 * Otherwise, no exception is thrown and the return indicates the |
35 * error. |
35 * error. |
36 */ |
36 */ |
37 static bool verify(instanceKlassHandle klass, Mode mode, TRAPS); |
37 static bool verify(instanceKlassHandle klass, Mode mode, bool should_verify_class, TRAPS); |
38 |
38 |
39 // Return false if the class is loaded by the bootstrap loader. |
39 // Return false if the class is loaded by the bootstrap loader, |
40 static bool should_verify_for(oop class_loader); |
40 // or if defineClass was called requesting skipping verification |
|
41 // -Xverify:all/none override this value |
|
42 static bool should_verify_for(oop class_loader, bool should_verify_class); |
41 |
43 |
42 // Relax certain verifier checks to enable some broken 1.1 apps to run on 1.2. |
44 // Relax certain verifier checks to enable some broken 1.1 apps to run on 1.2. |
43 static bool relax_verify_for(oop class_loader); |
45 static bool relax_verify_for(oop class_loader); |
44 |
46 |
45 private: |
47 private: |
46 static bool is_eligible_for_verification(instanceKlassHandle klass); |
48 static bool is_eligible_for_verification(instanceKlassHandle klass, bool should_verify_class); |
47 static symbolHandle inference_verify( |
49 static symbolHandle inference_verify( |
48 instanceKlassHandle klass, char* msg, size_t msg_len, TRAPS); |
50 instanceKlassHandle klass, char* msg, size_t msg_len, TRAPS); |
49 }; |
51 }; |
50 |
52 |
51 class RawBytecodeStream; |
53 class RawBytecodeStream; |