< prev index next >

src/share/vm/classfile/stringTable.cpp

Print this page
rev 14282 : Factor out keep-alive barrier from usual pre-barrier implementations.

@@ -41,11 +41,10 @@
 #include "services/diagnosticCommand.hpp"
 #include "utilities/hashtable.inline.hpp"
 #include "utilities/macros.hpp"
 #if INCLUDE_ALL_GCS
 #include "gc/g1/g1CollectedHeap.hpp"
-#include "gc/g1/g1SATBCardTableModRefBS.hpp"
 #include "gc/g1/g1StringDedup.hpp"
 #endif
 
 // the number of buckets a thread claims
 const int ClaimChunkSize = 32;

@@ -196,12 +195,12 @@
 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 (((UseShenandoahGC && ShenandoahSATBBarrier) || UseG1GC) && string != NULL) {
-    G1SATBCardTableModRefBS::enqueue(string);
+  if (string != NULL) {
+    oopDesc::bs()->keep_alive_barrier(string);
   }
 #endif
 }
 
 oop StringTable::lookup(jchar* name, int len) {
< prev index next >