114 static bool invoke_no_policy(); |
114 static bool invoke_no_policy(); |
115 |
115 |
116 // If an attempt to promote fails, this method is invoked |
116 // If an attempt to promote fails, this method is invoked |
117 static void oop_promotion_failed(oop obj, markOop obj_mark); |
117 static void oop_promotion_failed(oop obj, markOop obj_mark); |
118 |
118 |
119 static inline bool should_scavenge(oop p); |
119 template <class T> static inline bool should_scavenge(T* p); |
120 |
120 |
121 // These call should_scavenge() above and, if it returns true, also check that |
121 // These call should_scavenge() above and, if it returns true, also check that |
122 // the object was not newly copied into to_space. The version with the bool |
122 // the object was not newly copied into to_space. The version with the bool |
123 // argument is a convenience wrapper that fetches the to_space pointer from |
123 // argument is a convenience wrapper that fetches the to_space pointer from |
124 // the heap and calls the other version (if the arg is true). |
124 // the heap and calls the other version (if the arg is true). |
125 static inline bool should_scavenge(oop p, MutableSpace* to_space); |
125 template <class T> static inline bool should_scavenge(T* p, MutableSpace* to_space); |
126 static inline bool should_scavenge(oop p, bool check_to_space); |
126 template <class T> static inline bool should_scavenge(T* p, bool check_to_space); |
127 |
127 |
128 inline static void copy_and_push_safe_barrier(PSPromotionManager* pm, oop* p); |
128 template <class T> inline static void copy_and_push_safe_barrier(PSPromotionManager* pm, T* p); |
129 |
129 |
130 // Is an object in the young generation |
130 // Is an object in the young generation |
131 // This assumes that the HeapWord argument is in the heap, |
131 // This assumes that the HeapWord argument is in the heap, |
132 // so it only checks one side of the complete predicate. |
132 // so it only checks one side of the complete predicate. |
133 inline static bool is_obj_in_young(HeapWord* o) { |
133 inline static bool is_obj_in_young(HeapWord* o) { |