< prev index next >

src/hotspot/share/prims/resolvedMethodTable.cpp

Print this page

        

@@ -141,12 +141,11 @@
 
   return _the_table->basic_add(method, resolved_method_name);
 }
 
 // Removing entries
-int ResolvedMethodTable::_oops_removed = 0;
-int ResolvedMethodTable::_oops_counted = 0;
+int ResolvedMethodTable::total_oops_removed = 0;
 
 // There are no dead entries at start
 bool ResolvedMethodTable::_dead_entries = false;
 
 void ResolvedMethodTable::trigger_cleanup() {

@@ -157,12 +156,12 @@
 
 // Serially invoke removed unused oops from the table.
 // This is done by the ServiceThread after being notified on class unloading
 void ResolvedMethodTable::unlink() {
   MutexLocker ml(ResolvedMethodTable_lock);
-  _oops_removed = 0;
-  _oops_counted = 0;
+  int _oops_removed = 0;
+  int _oops_counted = 0;
   for (int i = 0; i < _the_table->table_size(); ++i) {
     ResolvedMethodEntry** p = _the_table->bucket_addr(i);
     ResolvedMethodEntry* entry = _the_table->bucket(i);
     while (entry != NULL) {
       _oops_counted++;

@@ -183,10 +182,11 @@
       entry = (ResolvedMethodEntry*)HashtableEntry<ClassLoaderWeakHandle, mtClass>::make_ptr(*p);
     }
   }
   log_debug(membername, table) ("ResolvedMethod entries counted %d removed %d",
                                 _oops_counted, _oops_removed);
+  total_oops_removed += _oops_removed;
   _dead_entries = false;
 }
 
 #ifndef PRODUCT
 void ResolvedMethodTable::print() {
< prev index next >