1.1 --- a/src/share/vm/memory/referenceProcessor.hpp Fri Jan 10 09:54:25 2014 +0100 1.2 +++ b/src/share/vm/memory/referenceProcessor.hpp Thu Feb 06 14:12:43 2014 +0100 1.3 @@ -99,6 +99,7 @@ 1.4 oop _referent; 1.5 OopClosure* _keep_alive; 1.6 BoolObjectClosure* _is_alive; 1.7 + bool _discovered_list_needs_post_barrier; 1.8 1.9 DEBUG_ONLY( 1.10 oop _first_seen; // cyclic linked list check 1.11 @@ -112,7 +113,8 @@ 1.12 public: 1.13 inline DiscoveredListIterator(DiscoveredList& refs_list, 1.14 OopClosure* keep_alive, 1.15 - BoolObjectClosure* is_alive): 1.16 + BoolObjectClosure* is_alive, 1.17 + bool discovered_list_needs_post_barrier = false): 1.18 _refs_list(refs_list), 1.19 _prev_next(refs_list.adr_head()), 1.20 _prev(NULL), 1.21 @@ -126,7 +128,8 @@ 1.22 #endif 1.23 _next(NULL), 1.24 _keep_alive(keep_alive), 1.25 - _is_alive(is_alive) 1.26 + _is_alive(is_alive), 1.27 + _discovered_list_needs_post_barrier(discovered_list_needs_post_barrier) 1.28 { } 1.29 1.30 // End Of List. 1.31 @@ -228,12 +231,12 @@ 1.32 bool _discovery_is_mt; // true if reference discovery is MT. 1.33 1.34 // If true, setting "next" field of a discovered refs list requires 1.35 - // write barrier(s). (Must be true if used in a collector in which 1.36 + // write post barrier. (Must be true if used in a collector in which 1.37 // elements of a discovered list may be moved during discovery: for 1.38 // example, a collector like Garbage-First that moves objects during a 1.39 // long-term concurrent marking phase that does weak reference 1.40 // discovery.) 1.41 - bool _discovered_list_needs_barrier; 1.42 + bool _discovered_list_needs_post_barrier; 1.43 1.44 bool _enqueuing_is_done; // true if all weak references enqueued 1.45 bool _processing_is_mt; // true during phases when 1.46 @@ -380,8 +383,8 @@ 1.47 1.48 protected: 1.49 // Set the 'discovered' field of the given reference to 1.50 - // the given value - emitting barriers depending upon 1.51 - // the value of _discovered_list_needs_barrier. 1.52 + // the given value - emitting post barriers depending upon 1.53 + // the value of _discovered_list_needs_post_barrier. 1.54 void set_discovered(oop ref, oop value); 1.55 1.56 // "Preclean" the given discovered reference list 1.57 @@ -425,7 +428,7 @@ 1.58 bool mt_discovery = false, uint mt_discovery_degree = 1, 1.59 bool atomic_discovery = true, 1.60 BoolObjectClosure* is_alive_non_header = NULL, 1.61 - bool discovered_list_needs_barrier = false); 1.62 + bool discovered_list_needs_post_barrier = false); 1.63 1.64 // RefDiscoveryPolicy values 1.65 enum DiscoveryPolicy {