equal
deleted
inserted
replaced
38 // some marks may contain information we need to preserve so we store them away |
38 // some marks may contain information we need to preserve so we store them away |
39 // and overwrite the mark. We'll restore it at the end of markSweep. |
39 // and overwrite the mark. We'll restore it at the end of markSweep. |
40 markWord mark = obj->mark_raw(); |
40 markWord mark = obj->mark_raw(); |
41 obj->set_mark_raw(markWord::prototype().set_marked()); |
41 obj->set_mark_raw(markWord::prototype().set_marked()); |
42 |
42 |
43 if (mark.must_be_preserved(obj)) { |
43 if (obj->mark_must_be_preserved(mark)) { |
44 preserve_mark(obj, mark); |
44 preserve_mark(obj, mark); |
45 } |
45 } |
46 } |
46 } |
47 |
47 |
48 template <class T> inline void MarkSweep::mark_and_push(T* p) { |
48 template <class T> inline void MarkSweep::mark_and_push(T* p) { |