hotspot/src/share/vm/classfile/stringTable.cpp
changeset 25491 70fb742e40aa
parent 25490 59f226da8d81
child 25492 d27050bdfb04
--- a/hotspot/src/share/vm/classfile/stringTable.cpp	Mon Jul 07 10:12:40 2014 +0200
+++ b/hotspot/src/share/vm/classfile/stringTable.cpp	Mon Jul 07 12:37:11 2014 +0200
@@ -37,7 +37,6 @@
 #include "runtime/mutexLocker.hpp"
 #include "utilities/hashtable.inline.hpp"
 #if INCLUDE_ALL_GCS
-#include "gc_implementation/g1/g1SATBCardTableModRefBS.hpp"
 #include "gc_implementation/g1/g1StringDedup.hpp"
 #endif
 
@@ -158,26 +157,11 @@
   return lookup(chars, length);
 }
 
-// Tell the GC that this string was looked up in the StringTable.
-static void ensure_string_alive(oop string) {
-  // A lookup in the StringTable could return an object that was previously
-  // considered dead. The SATB part of G1 needs to get notified about this
-  // potential resurrection, otherwise the marking might not find the object.
-#if INCLUDE_ALL_GCS
-  if (UseG1GC && string != NULL) {
-    G1SATBCardTableModRefBS::enqueue(string);
-  }
-#endif
-}
 
 oop StringTable::lookup(jchar* name, int len) {
   unsigned int hash = hash_string(name, len);
   int index = the_table()->hash_to_index(hash);
-  oop string = the_table()->lookup(index, name, len, hash);
-
-  ensure_string_alive(string);
-
-  return string;
+  return the_table()->lookup(index, name, len, hash);
 }
 
 
@@ -188,10 +172,7 @@
   oop found_string = the_table()->lookup(index, name, len, hashValue);
 
   // Found
-  if (found_string != NULL) {
-    ensure_string_alive(found_string);
-    return found_string;
-  }
+  if (found_string != NULL) return found_string;
 
   debug_only(StableMemoryChecker smc(name, len * sizeof(name[0])));
   assert(!Universe::heap()->is_in_reserved(name),
@@ -216,17 +197,11 @@
 
   // Grab the StringTable_lock before getting the_table() because it could
   // change at safepoint.
-  oop added_or_found;
-  {
-    MutexLocker ml(StringTable_lock, THREAD);
-    // Otherwise, add to symbol to table
-    added_or_found = the_table()->basic_add(index, string, name, len,
-                                  hashValue, CHECK_NULL);
-  }
+  MutexLocker ml(StringTable_lock, THREAD);
 
-  ensure_string_alive(added_or_found);
-
-  return added_or_found;
+  // Otherwise, add to symbol to table
+  return the_table()->basic_add(index, string, name, len,
+                                hashValue, CHECK_NULL);
 }
 
 oop StringTable::intern(Symbol* symbol, TRAPS) {