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);