< prev index next >

src/share/vm/oops/cpCache.cpp

Print this page
rev 13365 : [mq]: review_update_1


 591     assert(entry_at(offset) == e, "sanity");
 592   }
 593 
 594   for (int ref = 0; ref < invokedynamic_references_map.length(); ref++) {
 595     const int cpci = invokedynamic_references_map.at(ref);
 596     if (cpci >= 0) {
 597 #ifdef ASSERT
 598       // invokedynamic and invokehandle have more entries; check if they
 599       // all point to the same constant pool cache entry.
 600       for (int entry = 1; entry < ConstantPoolCacheEntry::_indy_resolved_references_entries; entry++) {
 601         const int cpci_next = invokedynamic_references_map.at(ref + entry);
 602         assert(cpci == cpci_next, "%d == %d", cpci, cpci_next);
 603       }
 604 #endif
 605       entry_at(cpci)->initialize_resolved_reference_index(ref);
 606       ref += ConstantPoolCacheEntry::_indy_resolved_references_entries - 1;  // skip extra entries
 607     }
 608   }
 609 }
 610 












 611 #if INCLUDE_JVMTI
 612 // RedefineClasses() API support:
 613 // If any entry of this ConstantPoolCache points to any of
 614 // old_methods, replace it with the corresponding new_method.
 615 void ConstantPoolCache::adjust_method_entries(InstanceKlass* holder, bool * trace_name_printed) {
 616   for (int i = 0; i < length(); i++) {
 617     ConstantPoolCacheEntry* entry = entry_at(i);
 618     Method* old_method = entry->get_interesting_method_entry(holder);
 619     if (old_method == NULL || !old_method->is_old()) {
 620       continue; // skip uninteresting entries
 621     }
 622     if (old_method->is_deleted()) {
 623       // clean up entries with deleted methods
 624       entry->initialize_entry(entry->constant_pool_index());
 625       continue;
 626     }
 627     Method* new_method = holder->method_with_idnum(old_method->orig_method_idnum());
 628 
 629     assert(new_method != NULL, "method_with_idnum() should not be NULL");
 630     assert(old_method != new_method, "sanity check");




 591     assert(entry_at(offset) == e, "sanity");
 592   }
 593 
 594   for (int ref = 0; ref < invokedynamic_references_map.length(); ref++) {
 595     const int cpci = invokedynamic_references_map.at(ref);
 596     if (cpci >= 0) {
 597 #ifdef ASSERT
 598       // invokedynamic and invokehandle have more entries; check if they
 599       // all point to the same constant pool cache entry.
 600       for (int entry = 1; entry < ConstantPoolCacheEntry::_indy_resolved_references_entries; entry++) {
 601         const int cpci_next = invokedynamic_references_map.at(ref + entry);
 602         assert(cpci == cpci_next, "%d == %d", cpci, cpci_next);
 603       }
 604 #endif
 605       entry_at(cpci)->initialize_resolved_reference_index(ref);
 606       ref += ConstantPoolCacheEntry::_indy_resolved_references_entries - 1;  // skip extra entries
 607     }
 608   }
 609 }
 610 
 611 #if INCLUDE_CDS_JAVA_HEAP
 612 oop ConstantPoolCache::archived_references() {
 613   assert(UseSharedSpaces, "UseSharedSpaces expected.");
 614   return oopDesc::decode_heap_oop(_archived_references);
 615 }
 616 
 617 void ConstantPoolCache::set_archived_references(oop o) {
 618   assert(DumpSharedSpaces, "called only during runtime");
 619   _archived_references = oopDesc::encode_heap_oop(o);
 620 }
 621 #endif
 622 
 623 #if INCLUDE_JVMTI
 624 // RedefineClasses() API support:
 625 // If any entry of this ConstantPoolCache points to any of
 626 // old_methods, replace it with the corresponding new_method.
 627 void ConstantPoolCache::adjust_method_entries(InstanceKlass* holder, bool * trace_name_printed) {
 628   for (int i = 0; i < length(); i++) {
 629     ConstantPoolCacheEntry* entry = entry_at(i);
 630     Method* old_method = entry->get_interesting_method_entry(holder);
 631     if (old_method == NULL || !old_method->is_old()) {
 632       continue; // skip uninteresting entries
 633     }
 634     if (old_method->is_deleted()) {
 635       // clean up entries with deleted methods
 636       entry->initialize_entry(entry->constant_pool_index());
 637       continue;
 638     }
 639     Method* new_method = holder->method_with_idnum(old_method->orig_method_idnum());
 640 
 641     assert(new_method != NULL, "method_with_idnum() should not be NULL");
 642     assert(old_method != new_method, "sanity check");


< prev index next >