< prev index next >

src/hotspot/share/code/dependencyContext.cpp

Print this page




 201   int marked = 0;
 202   int removed = 0;
 203   while (b != NULL) {
 204     nmethod* nm = b->get_nmethod();
 205     if (b->count() > 0 && nm->is_alive() && !nm->is_marked_for_deoptimization()) {
 206       nm->mark_for_deoptimization();
 207       marked++;
 208     }
 209     nmethodBucket* next = b->next();
 210     removed++;
 211     delete b;
 212     b = next;
 213   }
 214   set_has_stale_entries(false);
 215   if (UsePerfData && removed > 0) {
 216     _perf_total_buckets_deallocated_count->inc(removed);
 217   }
 218   return marked;
 219 }
 220 
 221 void DependencyContext::wipe() {
 222   assert_locked_or_safepoint(CodeCache_lock);
 223   nmethodBucket* b = dependencies();
 224   set_dependencies(NULL);
 225   set_has_stale_entries(false);
 226   while (b != NULL) {
 227     nmethodBucket* next = b->next();
 228     delete b;
 229     b = next;
 230   }
 231 }
 232 
 233 #ifndef PRODUCT
 234 void DependencyContext::print_dependent_nmethods(bool verbose) {
 235   int idx = 0;
 236   for (nmethodBucket* b = dependencies(); b != NULL; b = b->next()) {
 237     nmethod* nm = b->get_nmethod();
 238     tty->print("[%d] count=%d { ", idx++, b->count());
 239     if (!verbose) {
 240       nm->print_on(tty, "nmethod");
 241       tty->print_cr(" } ");
 242     } else {
 243       nm->print();
 244       nm->print_dependencies();
 245       tty->print_cr("--- } ");
 246     }
 247   }
 248 }
 249 
 250 bool DependencyContext::is_dependent_nmethod(nmethod* nm) {
 251   for (nmethodBucket* b = dependencies(); b != NULL; b = b->next()) {
 252     if (nm == b->get_nmethod()) {




 201   int marked = 0;
 202   int removed = 0;
 203   while (b != NULL) {
 204     nmethod* nm = b->get_nmethod();
 205     if (b->count() > 0 && nm->is_alive() && !nm->is_marked_for_deoptimization()) {
 206       nm->mark_for_deoptimization();
 207       marked++;
 208     }
 209     nmethodBucket* next = b->next();
 210     removed++;
 211     delete b;
 212     b = next;
 213   }
 214   set_has_stale_entries(false);
 215   if (UsePerfData && removed > 0) {
 216     _perf_total_buckets_deallocated_count->inc(removed);
 217   }
 218   return marked;
 219 }
 220 












 221 #ifndef PRODUCT
 222 void DependencyContext::print_dependent_nmethods(bool verbose) {
 223   int idx = 0;
 224   for (nmethodBucket* b = dependencies(); b != NULL; b = b->next()) {
 225     nmethod* nm = b->get_nmethod();
 226     tty->print("[%d] count=%d { ", idx++, b->count());
 227     if (!verbose) {
 228       nm->print_on(tty, "nmethod");
 229       tty->print_cr(" } ");
 230     } else {
 231       nm->print();
 232       nm->print_dependencies();
 233       tty->print_cr("--- } ");
 234     }
 235   }
 236 }
 237 
 238 bool DependencyContext::is_dependent_nmethod(nmethod* nm) {
 239   for (nmethodBucket* b = dependencies(); b != NULL; b = b->next()) {
 240     if (nm == b->get_nmethod()) {


< prev index next >