hotspot/src/share/vm/memory/referenceProcessor.hpp
changeset 10526 3e92f211533f
parent 10524 6594ca81279a
child 10670 4ea0e7d2ffbc
--- a/hotspot/src/share/vm/memory/referenceProcessor.hpp	Wed Sep 07 15:00:13 2011 -0700
+++ b/hotspot/src/share/vm/memory/referenceProcessor.hpp	Wed Sep 07 13:55:42 2011 -0700
@@ -52,6 +52,8 @@
 
 class ReferenceProcessor : public CHeapObj {
  protected:
+  // Compatibility with pre-4965777 JDK's
+  static bool _pending_list_uses_discovered_field;
   MemRegion   _span; // (right-open) interval of heap
                      // subject to wkref discovery
   bool        _discovering_refs;      // true when discovery enabled
@@ -111,7 +113,6 @@
     return _current_soft_ref_policy;
   }
 
- public:
   // Process references with a certain reachability level.
   void process_discovered_reflist(DiscoveredList               refs_lists[],
                                   ReferencePolicy*             policy,
@@ -297,6 +298,13 @@
   bool discovery_is_atomic() const { return _discovery_is_atomic; }
   void set_atomic_discovery(bool atomic) { _discovery_is_atomic = atomic; }
 
+  // whether the JDK in which we are embedded is a pre-4965777 JDK,
+  // and thus whether or not it uses the discovered field to chain
+  // the entries in the pending list.
+  static bool pending_list_uses_discovered_field() {
+    return _pending_list_uses_discovered_field;
+  }
+
   // whether discovery is done by multiple threads same-old-timeously
   bool discovery_is_mt() const { return _discovery_is_mt; }
   void set_mt_discovery(bool mt) { _discovery_is_mt = mt; }