comparison src/share/vm/memory/iterator.hpp @ 941:8b46c4d82093

4957990: Perm heap bloat in JVM Summary: Treat ProfileData in MDO's as a source of weak, not strong, roots. Fixes the bug for stop-world collection -- the case of concurrent collection will be fixed separately. Reviewed-by: jcoomes, jmasa, kvn, never
author ysr
date Wed, 02 Sep 2009 00:04:29 -0700
parents 05f89f00a864
children 89e0543e1737 54b3b351d6f9
comparison
equal deleted inserted replaced
940:8624da129f0b 941:8b46c4d82093
23 */ 23 */
24 24
25 // The following classes are C++ `closures` for iterating over objects, roots and spaces 25 // The following classes are C++ `closures` for iterating over objects, roots and spaces
26 26
27 class ReferenceProcessor; 27 class ReferenceProcessor;
28 class DataLayout;
28 29
29 // Closure provides abortability. 30 // Closure provides abortability.
30 31
31 class Closure : public StackObj { 32 class Closure : public StackObj {
32 protected: 33 protected:
59 assert(!must_remember_klasses(), "Should have overriden this method."); 60 assert(!must_remember_klasses(), "Should have overriden this method.");
60 return false; 61 return false;
61 } 62 }
62 63
63 virtual void remember_klass(Klass* k) { /* do nothing */ } 64 virtual void remember_klass(Klass* k) { /* do nothing */ }
65
66 // In support of post-processing of weak references in
67 // ProfileData (MethodDataOop) objects; see, for example,
68 // VirtualCallData::oop_iterate().
69 virtual const bool should_remember_mdo() const { return false; }
70 virtual void remember_mdo(DataLayout* v) { /* do nothing */ }
64 71
65 // If "true", invoke on nmethods (when scanning compiled frames). 72 // If "true", invoke on nmethods (when scanning compiled frames).
66 virtual const bool do_nmethods() const { return false; } 73 virtual const bool do_nmethods() const { return false; }
67 74
68 // The methods below control how object iterations invoking this closure 75 // The methods below control how object iterations invoking this closure