< prev index next >

src/hotspot/share/gc/z/zNMethodTable.cpp

Print this page




  96     const ZNMethodTableEntry table_entry = table[index];
  97     assert(table_entry.registered() || table_entry.unregistered(), "Entry not found");
  98 
  99     if (table_entry.registered() && table_entry.method() == nm) {
 100       // Remove entry
 101       table[index] = ZNMethodTableEntry(true /* unregistered */);
 102       return;
 103     }
 104 
 105     index = next_index(index, size);
 106   }
 107 }
 108 
 109 void ZNMethodTable::rebuild(size_t new_size) {
 110   assert(CodeCache_lock->owned_by_self(), "Lock must be held");
 111 
 112   assert(is_power_of_2(new_size), "Invalid size");
 113 
 114   log_debug(gc, nmethod)("Rebuilding NMethod Table: "
 115                          SIZE_FORMAT "->" SIZE_FORMAT " entries, "
 116                          SIZE_FORMAT "(%.0lf%%->%.0lf%%) registered, "
 117                          SIZE_FORMAT "(%.0lf%%->%.0lf%%) unregistered",
 118                          _size, new_size,
 119                          _nregistered, percent_of(_nregistered, _size), percent_of(_nregistered, new_size),
 120                          _nunregistered, percent_of(_nunregistered, _size), 0.0);
 121 
 122   // Allocate new table
 123   ZNMethodTableEntry* const new_table = new ZNMethodTableEntry[new_size];
 124 
 125   // Transfer all registered entries
 126   for (size_t i = 0; i < _size; i++) {
 127     const ZNMethodTableEntry entry = _table[i];
 128     if (entry.registered()) {
 129       register_entry(new_table, new_size, entry.method());
 130     }
 131   }
 132 
 133   // Free old table
 134   _safe_delete(_table);
 135 
 136   // Install new table
 137   _table = new_table;




  96     const ZNMethodTableEntry table_entry = table[index];
  97     assert(table_entry.registered() || table_entry.unregistered(), "Entry not found");
  98 
  99     if (table_entry.registered() && table_entry.method() == nm) {
 100       // Remove entry
 101       table[index] = ZNMethodTableEntry(true /* unregistered */);
 102       return;
 103     }
 104 
 105     index = next_index(index, size);
 106   }
 107 }
 108 
 109 void ZNMethodTable::rebuild(size_t new_size) {
 110   assert(CodeCache_lock->owned_by_self(), "Lock must be held");
 111 
 112   assert(is_power_of_2(new_size), "Invalid size");
 113 
 114   log_debug(gc, nmethod)("Rebuilding NMethod Table: "
 115                          SIZE_FORMAT "->" SIZE_FORMAT " entries, "
 116                          SIZE_FORMAT "(%.0f%%->%.0f%%) registered, "
 117                          SIZE_FORMAT "(%.0f%%->%.0f%%) unregistered",
 118                          _size, new_size,
 119                          _nregistered, percent_of(_nregistered, _size), percent_of(_nregistered, new_size),
 120                          _nunregistered, percent_of(_nunregistered, _size), 0.0);
 121 
 122   // Allocate new table
 123   ZNMethodTableEntry* const new_table = new ZNMethodTableEntry[new_size];
 124 
 125   // Transfer all registered entries
 126   for (size_t i = 0; i < _size; i++) {
 127     const ZNMethodTableEntry entry = _table[i];
 128     if (entry.registered()) {
 129       register_entry(new_table, new_size, entry.method());
 130     }
 131   }
 132 
 133   // Free old table
 134   _safe_delete(_table);
 135 
 136   // Install new table
 137   _table = new_table;


< prev index next >