src/share/vm/prims/jvmtiRedefineClasses.cpp

Print this page

        

*** 2824,2838 **** &trace_name_printed); } } // the previous versions' constant pool caches may need adjustment ! PreviousVersionWalker pvw(_thread, ik); ! for (PreviousVersionNode * pv_node = pvw.next_previous_version(); ! pv_node != NULL; pv_node = pvw.next_previous_version()) { ! other_cp = pv_node->prev_constant_pool(); ! cp_cache = other_cp->cache(); if (cp_cache != NULL) { cp_cache->adjust_method_entries(_matching_old_methods, _matching_new_methods, _matching_methods_length, &trace_name_printed); --- 2824,2837 ---- &trace_name_printed); } } // the previous versions' constant pool caches may need adjustment ! for (InstanceKlass* pv_node = ik->previous_versions(); ! pv_node != NULL; ! pv_node = pv_node->previous_versions()) { ! cp_cache = pv_node->constants()->cache(); if (cp_cache != NULL) { cp_cache->adjust_method_entries(_matching_old_methods, _matching_new_methods, _matching_methods_length, &trace_name_printed);
*** 3469,3478 **** --- 3468,3479 ---- the_class->set_enclosing_method_indices( scratch_class->enclosing_method_class_index(), scratch_class->enclosing_method_method_index()); scratch_class->set_enclosing_method_indices(old_class_idx, old_method_idx); + the_class->set_has_been_redefined(); + // keep track of previous versions of this class the_class->add_previous_version(scratch_class, &emcp_methods, emcp_method_count); RC_TIMER_STOP(_timer_rsc_phase1);