diff src/share/vm/runtime/safepoint.cpp @ 6166:58ad5f22317e

Merge
author sla
date Mon, 18 Jun 2012 11:33:17 +0200
parents e9140bf80b4a
children d2a62e0f25eb
line wrap: on
line diff
--- a/src/share/vm/runtime/safepoint.cpp	Fri Jun 15 14:17:28 2012 -0700
+++ b/src/share/vm/runtime/safepoint.cpp	Mon Jun 18 11:33:17 2012 +0200
@@ -23,6 +23,7 @@
  */
 
 #include "precompiled.hpp"
+#include "classfile/symbolTable.hpp"
 #include "classfile/systemDictionary.hpp"
 #include "code/codeCache.hpp"
 #include "code/icBuffer.hpp"
@@ -526,8 +527,20 @@
     CompilationPolicy::policy()->do_safepoint_work();
   }
 
-  TraceTime t4("sweeping nmethods", TraceSafepointCleanupTime);
-  NMethodSweeper::scan_stacks();
+  {
+    TraceTime t4("sweeping nmethods", TraceSafepointCleanupTime);
+    NMethodSweeper::scan_stacks();
+  }
+
+  if (SymbolTable::needs_rehashing()) {
+    TraceTime t5("rehashing symbol table", TraceSafepointCleanupTime);
+    SymbolTable::rehash_table();
+  }
+
+  if (StringTable::needs_rehashing()) {
+    TraceTime t6("rehashing string table", TraceSafepointCleanupTime);
+    StringTable::rehash_table();
+  }
 
   // rotate log files?
   if (UseGCLogFileRotation) {