author | hseigel |
Tue, 11 Sep 2018 09:53:41 -0400 | |
changeset 51697 | 49e1b21d9878 |
parent 51696 | f912267934e0 |
child 51698 | 74dde8b66b7f |
--- a/src/hotspot/share/classfile/verifier.cpp Tue Sep 11 17:48:24 2018 +0530 +++ b/src/hotspot/share/classfile/verifier.cpp Tue Sep 11 09:53:41 2018 -0400 @@ -130,7 +130,7 @@ st->print_cr("End class verification for: %s", klassName); } -bool Verifier::verify(InstanceKlass* klass, Verifier::Mode mode, bool should_verify_class, TRAPS) { +bool Verifier::verify(InstanceKlass* klass, bool should_verify_class, TRAPS) { HandleMark hm(THREAD); ResourceMark rm(THREAD);
--- a/src/hotspot/share/classfile/verifier.hpp Tue Sep 11 17:48:24 2018 +0530 +++ b/src/hotspot/share/classfile/verifier.hpp Tue Sep 11 09:53:41 2018 -0400 @@ -42,16 +42,11 @@ NO_RELAX_ACCESS_CTRL_CHECK_VERSION = 52, DYNAMICCONSTANT_MAJOR_VERSION = 55 }; - typedef enum { ThrowException, NoException } Mode; - /** - * Verify the bytecodes for a class. If 'throw_exception' is true - * then the appropriate VerifyError or ClassFormatError will be thrown. - * Otherwise, no exception is thrown and the return indicates the - * error. - */ + // Verify the bytecodes for a class. + static bool verify(InstanceKlass* klass, bool should_verify_class, TRAPS); + static void log_end_verification(outputStream* st, const char* klassName, Symbol* exception_name, TRAPS); - static bool verify(InstanceKlass* klass, Mode mode, bool should_verify_class, TRAPS); // Return false if the class is loaded by the bootstrap loader, // or if defineClass was called requesting skipping verification
--- a/src/hotspot/share/oops/instanceKlass.cpp Tue Sep 11 17:48:24 2018 +0530 +++ b/src/hotspot/share/oops/instanceKlass.cpp Tue Sep 11 09:53:41 2018 -0400 @@ -643,7 +643,7 @@ if (!is_not_initialized()) return; // note: not equivalent to is_initialized() ClassState old_state = init_state(); - link_class_impl(true, THREAD); + link_class_impl(THREAD); if (HAS_PENDING_EXCEPTION) { CLEAR_PENDING_EXCEPTION; // Abort if linking the class throws an exception. @@ -681,11 +681,9 @@ } -bool InstanceKlass::verify_code(bool throw_verifyerror, TRAPS) { +bool InstanceKlass::verify_code(TRAPS) { // 1) Verify the bytecodes - Verifier::Mode mode = - throw_verifyerror ? Verifier::ThrowException : Verifier::NoException; - return Verifier::verify(this, mode, should_verify_class(), THREAD); + return Verifier::verify(this, should_verify_class(), THREAD); } @@ -700,7 +698,7 @@ void InstanceKlass::link_class(TRAPS) { assert(is_loaded(), "must be loaded"); if (!is_linked()) { - link_class_impl(true, CHECK); + link_class_impl(CHECK); } } @@ -709,12 +707,12 @@ bool InstanceKlass::link_class_or_fail(TRAPS) { assert(is_loaded(), "must be loaded"); if (!is_linked()) { - link_class_impl(false, CHECK_false); + link_class_impl(CHECK_false); } return is_linked(); } -bool InstanceKlass::link_class_impl(bool throw_verifyerror, TRAPS) { +bool InstanceKlass::link_class_impl(TRAPS) { if (DumpSharedSpaces && is_in_error_state()) { // This is for CDS dumping phase only -- we use the in_error_state to indicate that // the class has failed verification. Throwing the NoClassDefFoundError here is just @@ -756,7 +754,7 @@ } InstanceKlass* ik_super = InstanceKlass::cast(super_klass); - ik_super->link_class_impl(throw_verifyerror, CHECK_false); + ik_super->link_class_impl(CHECK_false); } // link all interfaces implemented by this class before linking this class @@ -764,7 +762,7 @@ int num_interfaces = interfaces->length(); for (int index = 0; index < num_interfaces; index++) { InstanceKlass* interk = interfaces->at(index); - interk->link_class_impl(throw_verifyerror, CHECK_false); + interk->link_class_impl(CHECK_false); } // in case the class is linked in the process of linking its superclasses @@ -794,7 +792,7 @@ if (!is_linked()) { if (!is_rewritten()) { { - bool verify_ok = verify_code(throw_verifyerror, THREAD); + bool verify_ok = verify_code(THREAD); if (!verify_ok) { return false; }
--- a/src/hotspot/share/oops/instanceKlass.hpp Tue Sep 11 17:48:24 2018 +0530 +++ b/src/hotspot/share/oops/instanceKlass.hpp Tue Sep 11 09:53:41 2018 -0400 @@ -1285,8 +1285,8 @@ private: void fence_and_clear_init_lock(); - bool link_class_impl (bool throw_verifyerror, TRAPS); - bool verify_code (bool throw_verifyerror, TRAPS); + bool link_class_impl (TRAPS); + bool verify_code (TRAPS); void initialize_impl (TRAPS); void initialize_super_interfaces (TRAPS); void eager_initialize_impl ();
--- a/src/hotspot/share/prims/jvmtiRedefineClasses.cpp Tue Sep 11 17:48:24 2018 +0530 +++ b/src/hotspot/share/prims/jvmtiRedefineClasses.cpp Tue Sep 11 09:53:41 2018 -0400 @@ -1231,8 +1231,7 @@ // verifier. Please, refer to jvmtiThreadState.hpp for the detailed // description. RedefineVerifyMark rvm(the_class, scratch_class, state); - Verifier::verify( - scratch_class, Verifier::ThrowException, true, THREAD); + Verifier::verify(scratch_class, true, THREAD); } if (HAS_PENDING_EXCEPTION) { @@ -1263,7 +1262,7 @@ // verify what we have done during constant pool merging { RedefineVerifyMark rvm(the_class, scratch_class, state); - Verifier::verify(scratch_class, Verifier::ThrowException, true, THREAD); + Verifier::verify(scratch_class, true, THREAD); } if (HAS_PENDING_EXCEPTION) {