comparison src/share/vm/gc_implementation/shared/markSweep.hpp @ 989:148e5441d916

6863023: need non-perm oops in code cache for JSR 292 Summary: Make a special root-list for those few nmethods which might contain non-perm oops. Reviewed-by: twisti, kvn, never, jmasa, ysr
author jrose
date Tue, 15 Sep 2009 21:53:47 -0700
parents d1605aabd0a1
children 54b3b351d6f9
comparison
equal deleted inserted replaced
987:00977607da34 989:148e5441d916
55 // 55 //
56 class FollowRootClosure: public OopsInGenClosure { 56 class FollowRootClosure: public OopsInGenClosure {
57 public: 57 public:
58 virtual void do_oop(oop* p); 58 virtual void do_oop(oop* p);
59 virtual void do_oop(narrowOop* p); 59 virtual void do_oop(narrowOop* p);
60 virtual const bool do_nmethods() const { return true; }
61 }; 60 };
62 61
63 class MarkAndPushClosure: public OopClosure { 62 class MarkAndPushClosure: public OopClosure {
64 public: 63 public:
65 virtual void do_oop(oop* p); 64 virtual void do_oop(oop* p);
66 virtual void do_oop(narrowOop* p); 65 virtual void do_oop(narrowOop* p);
67 virtual const bool do_nmethods() const { return true; }
68 }; 66 };
69 67
70 class FollowStackClosure: public VoidClosure { 68 class FollowStackClosure: public VoidClosure {
71 public: 69 public:
72 virtual void do_void(); 70 virtual void do_void();
161 static void trace(const char* msg) PRODUCT_RETURN; 159 static void trace(const char* msg) PRODUCT_RETURN;
162 160
163 public: 161 public:
164 // Public closures 162 // Public closures
165 static FollowRootClosure follow_root_closure; 163 static FollowRootClosure follow_root_closure;
164 static CodeBlobToOopClosure follow_code_root_closure; // => follow_root_closure
166 static MarkAndPushClosure mark_and_push_closure; 165 static MarkAndPushClosure mark_and_push_closure;
167 static FollowStackClosure follow_stack_closure; 166 static FollowStackClosure follow_stack_closure;
168 static AdjustPointerClosure adjust_root_pointer_closure; 167 static AdjustPointerClosure adjust_root_pointer_closure;
169 static AdjustPointerClosure adjust_pointer_closure; 168 static AdjustPointerClosure adjust_pointer_closure;
170 169