< prev index next >

src/hotspot/share/prims/jvmtiRedefineClasses.cpp

Print this page

        

*** 1621,1630 **** --- 1621,1635 ---- // The merge can fail due to memory allocation failure or due // to robustness checks. return JVMTI_ERROR_INTERNAL; } + if (old_cp->has_dynamic_constant()) { + merge_cp->set_has_dynamic_constant(); + scratch_cp->set_has_dynamic_constant(); + } + log_info(redefine, class, constantpool)("merge_cp_len=%d, index_map_len=%d", merge_cp_length, _index_map_count); if (_index_map_count == 0) { // there is nothing to map between the new and merged constant pools
*** 3244,3253 **** --- 3249,3262 ---- // attach klass to new constant pool // reference to the cp holder is needed for copy_operands() smaller_cp->set_pool_holder(scratch_class); + if (scratch_cp->has_dynamic_constant()) { + smaller_cp->set_has_dynamic_constant(); + } + scratch_cp->copy_cp_to(1, scratch_cp_length - 1, smaller_cp, 1, THREAD); if (HAS_PENDING_EXCEPTION) { // Exception is handled in the caller loader_data->add_to_deallocate_list(smaller_cp()); return;
< prev index next >