165
166 static void preserve_mark(oop p, markOop mark);
167 // Save the mark word so it can be restored later
168 static void adjust_marks(); // Adjust the pointers in the preserved marks table
169 static void restore_marks(); // Restore the marks that we saved in preserve_mark
170
171 template <class T> static inline void adjust_pointer(T* p);
172 };
173
174 class PreservedMark VALUE_OBJ_CLASS_SPEC {
175 private:
176 oop _obj;
177 markOop _mark;
178
179 public:
180 void init(oop obj, markOop mark) {
181 _obj = obj;
182 _mark = mark;
183 }
184
185 void adjust_pointer() {
186 MarkSweep::adjust_pointer(&_obj);
187 }
188
189 void restore() {
190 _obj->set_mark(_mark);
191 }
192 };
193
194 #endif // SHARE_VM_GC_IMPLEMENTATION_SHARED_MARKSWEEP_HPP
|
165
166 static void preserve_mark(oop p, markOop mark);
167 // Save the mark word so it can be restored later
168 static void adjust_marks(); // Adjust the pointers in the preserved marks table
169 static void restore_marks(); // Restore the marks that we saved in preserve_mark
170
171 template <class T> static inline void adjust_pointer(T* p);
172 };
173
174 class PreservedMark VALUE_OBJ_CLASS_SPEC {
175 private:
176 oop _obj;
177 markOop _mark;
178
179 public:
180 void init(oop obj, markOop mark) {
181 _obj = obj;
182 _mark = mark;
183 }
184
185 inline void adjust_pointer();
186
187 void restore() {
188 _obj->set_mark(_mark);
189 }
190 };
191
192 #endif // SHARE_VM_GC_IMPLEMENTATION_SHARED_MARKSWEEP_HPP
|