< prev index next >

src/hotspot/share/prims/jvmtiRedefineClasses.cpp

Print this page




 543       if (scratch_i != *merge_cp_length_p) {
 544         // The new entry in *merge_cp_p is at a different index than
 545         // the new entry in scratch_cp so we need to map the index values.
 546         map_index(scratch_cp, scratch_i, *merge_cp_length_p);
 547       }
 548       (*merge_cp_length_p)++;
 549     } break;
 550 
 551     // At this stage, Class or UnresolvedClass could be in scratch_cp, but not
 552     // ClassIndex
 553     case JVM_CONSTANT_ClassIndex: // fall through
 554 
 555     // Invalid is used as the tag for the second constant pool entry
 556     // occupied by JVM_CONSTANT_Double or JVM_CONSTANT_Long. It should
 557     // not be seen by itself.
 558     case JVM_CONSTANT_Invalid: // fall through
 559 
 560     // At this stage, String could be here, but not StringIndex
 561     case JVM_CONSTANT_StringIndex: // fall through
 562 
 563     // At this stage JVM_CONSTANT_UnresolvedClassInError should not be
 564     // here
 565     case JVM_CONSTANT_UnresolvedClassInError: // fall through
 566 
 567     default:
 568     {
 569       // leave a breadcrumb
 570       jbyte bad_value = scratch_cp->tag_at(scratch_i).value();
 571       ShouldNotReachHere();
 572     } break;
 573   } // end switch tag value
 574 } // end append_entry()
 575 
 576 
 577 int VM_RedefineClasses::find_or_append_indirect_entry(const constantPoolHandle& scratch_cp,
 578       int ref_i, constantPoolHandle *merge_cp_p, int *merge_cp_length_p, TRAPS) {
 579 
 580   int new_ref_i = ref_i;
 581   bool match = (ref_i < *merge_cp_length_p) &&
 582                scratch_cp->compare_entry_to(ref_i, *merge_cp_p, ref_i, THREAD);
 583 
 584   if (!match) {




 543       if (scratch_i != *merge_cp_length_p) {
 544         // The new entry in *merge_cp_p is at a different index than
 545         // the new entry in scratch_cp so we need to map the index values.
 546         map_index(scratch_cp, scratch_i, *merge_cp_length_p);
 547       }
 548       (*merge_cp_length_p)++;
 549     } break;
 550 
 551     // At this stage, Class or UnresolvedClass could be in scratch_cp, but not
 552     // ClassIndex
 553     case JVM_CONSTANT_ClassIndex: // fall through
 554 
 555     // Invalid is used as the tag for the second constant pool entry
 556     // occupied by JVM_CONSTANT_Double or JVM_CONSTANT_Long. It should
 557     // not be seen by itself.
 558     case JVM_CONSTANT_Invalid: // fall through
 559 
 560     // At this stage, String could be here, but not StringIndex
 561     case JVM_CONSTANT_StringIndex: // fall through
 562 
 563     // At this stage JVM_CONSTANT_UnresolvedClassInError should not be here

 564     case JVM_CONSTANT_UnresolvedClassInError: // fall through
 565 
 566     default:
 567     {
 568       // leave a breadcrumb
 569       jbyte bad_value = scratch_cp->tag_at(scratch_i).value();
 570       ShouldNotReachHere();
 571     } break;
 572   } // end switch tag value
 573 } // end append_entry()
 574 
 575 
 576 int VM_RedefineClasses::find_or_append_indirect_entry(const constantPoolHandle& scratch_cp,
 577       int ref_i, constantPoolHandle *merge_cp_p, int *merge_cp_length_p, TRAPS) {
 578 
 579   int new_ref_i = ref_i;
 580   bool match = (ref_i < *merge_cp_length_p) &&
 581                scratch_cp->compare_entry_to(ref_i, *merge_cp_p, ref_i, THREAD);
 582 
 583   if (!match) {


< prev index next >