hotspot/src/share/vm/prims/jvmtiRedefineClasses.cpp
changeset 42650 1f304d0c888b
parent 40635 22fa174b2af8
child 46329 53ccc37bda19
equal deleted inserted replaced
42649:28238583a459 42650:1f304d0c888b
    21  * questions.
    21  * questions.
    22  *
    22  *
    23  */
    23  */
    24 
    24 
    25 #include "precompiled.hpp"
    25 #include "precompiled.hpp"
       
    26 #include "aot/aotLoader.hpp"
    26 #include "classfile/classFileStream.hpp"
    27 #include "classfile/classFileStream.hpp"
    27 #include "classfile/metadataOnStackMark.hpp"
    28 #include "classfile/metadataOnStackMark.hpp"
    28 #include "classfile/systemDictionary.hpp"
    29 #include "classfile/systemDictionary.hpp"
    29 #include "classfile/verifier.hpp"
    30 #include "classfile/verifier.hpp"
    30 #include "code/codeCache.hpp"
    31 #include "code/codeCache.hpp"
  4009   the_class->set_enclosing_method_indices(
  4010   the_class->set_enclosing_method_indices(
  4010     scratch_class->enclosing_method_class_index(),
  4011     scratch_class->enclosing_method_class_index(),
  4011     scratch_class->enclosing_method_method_index());
  4012     scratch_class->enclosing_method_method_index());
  4012   scratch_class->set_enclosing_method_indices(old_class_idx, old_method_idx);
  4013   scratch_class->set_enclosing_method_indices(old_class_idx, old_method_idx);
  4013 
  4014 
       
  4015   // Replace fingerprint data
       
  4016   the_class->set_has_passed_fingerprint_check(scratch_class->has_passed_fingerprint_check());
       
  4017   the_class->store_fingerprint(scratch_class->get_stored_fingerprint());
       
  4018 
  4014   the_class->set_has_been_redefined();
  4019   the_class->set_has_been_redefined();
       
  4020 
       
  4021   if (!the_class->should_be_initialized()) {
       
  4022     // Class was already initialized, so AOT has only seen the original version.
       
  4023     // We need to let AOT look at it again.
       
  4024     AOTLoader::load_for_klass(the_class, THREAD);
       
  4025   }
  4015 
  4026 
  4016   // keep track of previous versions of this class
  4027   // keep track of previous versions of this class
  4017   the_class->add_previous_version(scratch_class, emcp_method_count);
  4028   the_class->add_previous_version(scratch_class, emcp_method_count);
  4018 
  4029 
  4019   _timer_rsc_phase1.stop();
  4030   _timer_rsc_phase1.stop();