1.1 --- a/src/share/vm/memory/genCollectedHeap.hpp Tue Jul 01 09:03:55 2014 +0200 1.2 +++ b/src/share/vm/memory/genCollectedHeap.hpp Mon Jul 07 10:12:40 2014 +0200 1.3 @@ -78,9 +78,9 @@ 1.4 unsigned int _full_collections_completed; 1.5 1.6 // Data structure for claiming the (potentially) parallel tasks in 1.7 - // (gen-specific) strong roots processing. 1.8 - SubTasksDone* _gen_process_strong_tasks; 1.9 - SubTasksDone* gen_process_strong_tasks() { return _gen_process_strong_tasks; } 1.10 + // (gen-specific) roots processing. 1.11 + SubTasksDone* _gen_process_roots_tasks; 1.12 + SubTasksDone* gen_process_roots_tasks() { return _gen_process_roots_tasks; } 1.13 1.14 // In block contents verification, the number of header words to skip 1.15 NOT_PRODUCT(static size_t _skip_header_HeapWords;) 1.16 @@ -411,18 +411,30 @@ 1.17 // The "so" argument determines which of the roots 1.18 // the closure is applied to: 1.19 // "SO_None" does none; 1.20 - // "SO_AllClasses" applies the closure to all entries in the SystemDictionary; 1.21 - // "SO_SystemClasses" to all the "system" classes and loaders; 1.22 - // "SO_Strings" applies the closure to all entries in the StringTable. 1.23 - void gen_process_strong_roots(int level, 1.24 - bool younger_gens_as_roots, 1.25 - // The remaining arguments are in an order 1.26 - // consistent with SharedHeap::process_strong_roots: 1.27 - bool activate_scope, 1.28 - SharedHeap::ScanningOption so, 1.29 - OopsInGenClosure* not_older_gens, 1.30 - OopsInGenClosure* older_gens, 1.31 - KlassClosure* klass_closure); 1.32 + private: 1.33 + void gen_process_roots(int level, 1.34 + bool younger_gens_as_roots, 1.35 + bool activate_scope, 1.36 + SharedHeap::ScanningOption so, 1.37 + OopsInGenClosure* not_older_gens, 1.38 + OopsInGenClosure* weak_roots, 1.39 + OopsInGenClosure* older_gens, 1.40 + CLDClosure* cld_closure, 1.41 + CLDClosure* weak_cld_closure, 1.42 + CodeBlobClosure* code_closure); 1.43 + 1.44 + public: 1.45 + static const bool StrongAndWeakRoots = false; 1.46 + static const bool StrongRootsOnly = true; 1.47 + 1.48 + void gen_process_roots(int level, 1.49 + bool younger_gens_as_roots, 1.50 + bool activate_scope, 1.51 + SharedHeap::ScanningOption so, 1.52 + bool only_strong_roots, 1.53 + OopsInGenClosure* not_older_gens, 1.54 + OopsInGenClosure* older_gens, 1.55 + CLDClosure* cld_closure); 1.56 1.57 // Apply "root_closure" to all the weak roots of the system. 1.58 // These include JNI weak roots, string table,