--- old/src/hotspot/share/gc/serial/markSweep.cpp 2018-03-25 12:59:26.031849022 +0200 +++ new/src/hotspot/share/gc/serial/markSweep.cpp 2018-03-25 12:59:25.865851269 +0200 @@ -1,5 +1,5 @@ /* - * Copyright (c) 1997, 2017, Oracle and/or its affiliates. All rights reserved. + * Copyright (c) 1997, 2018, Oracle and/or its affiliates. All rights reserved. * DO NOT ALTER OR REMOVE COPYRIGHT NOTICES OR THIS FILE HEADER. * * This code is free software; you can redistribute it and/or modify it @@ -64,8 +64,8 @@ inline void MarkSweep::mark_object(oop obj) { // some marks may contain information we need to preserve so we store them away // and overwrite the mark. We'll restore it at the end of markSweep. - markOop mark = obj->mark(); - obj->set_mark(markOopDesc::prototype()->set_marked()); + markOop mark = obj->mark_raw(); + obj->set_mark_raw(markOopDesc::prototype()->set_marked()); if (mark->must_be_preserved(obj)) { preserve_mark(obj, mark); @@ -76,7 +76,7 @@ T heap_oop = oopDesc::load_heap_oop(p); if (!oopDesc::is_null(heap_oop)) { oop obj = oopDesc::decode_heap_oop_not_null(heap_oop); - if (!obj->mark()->is_marked()) { + if (!obj->mark_raw()->is_marked()) { mark_object(obj); _marking_stack.push(obj); } @@ -172,7 +172,7 @@ T heap_oop = oopDesc::load_heap_oop(p); if (!oopDesc::is_null(heap_oop)) { oop obj = oopDesc::decode_heap_oop_not_null(heap_oop); - if (!obj->mark()->is_marked()) { + if (!obj->mark_raw()->is_marked()) { mark_object(obj); follow_object(obj); } @@ -188,7 +188,7 @@ } void PreservedMark::restore() { - _obj->set_mark(_mark); + _obj->set_mark_raw(_mark); } // We preserve the mark which should be replaced at the end and the location @@ -250,7 +250,7 @@ while (!_preserved_oop_stack.is_empty()) { oop obj = _preserved_oop_stack.pop(); markOop mark = _preserved_mark_stack.pop(); - obj->set_mark(mark); + obj->set_mark_raw(mark); } }