--- a/src/hotspot/share/gc/parallel/psMarkSweepDecorator.cpp Mon Apr 09 08:19:26 2018 -0400
+++ b/src/hotspot/share/gc/parallel/psMarkSweepDecorator.cpp Thu Apr 05 10:54:53 2018 +0200
@@ -1,5 +1,5 @@
/*
- * Copyright (c) 2001, 2015, Oracle and/or its affiliates. All rights reserved.
+ * Copyright (c) 2001, 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
@@ -112,8 +112,8 @@
const intx interval = PrefetchScanIntervalInBytes;
while (q < t) {
- assert(oop(q)->mark()->is_marked() || oop(q)->mark()->is_unlocked() ||
- oop(q)->mark()->has_bias_pattern(),
+ assert(oop(q)->mark_raw()->is_marked() || oop(q)->mark_raw()->is_unlocked() ||
+ oop(q)->mark_raw()->has_bias_pattern(),
"these are the only valid states during a mark sweep");
if (oop(q)->is_gc_marked()) {
/* prefetch beyond q */
@@ -150,7 +150,7 @@
} else {
// if the object isn't moving we can just set the mark to the default
// mark and handle it specially later on.
- oop(q)->init_mark();
+ oop(q)->init_mark_raw();
assert(oop(q)->forwardee() == NULL, "should be forwarded to NULL");
}
@@ -210,7 +210,7 @@
} else {
// if the object isn't moving we can just set the mark to the default
// mark and handle it specially later on.
- oop(q)->init_mark();
+ oop(q)->init_mark_raw();
assert(oop(q)->forwardee() == NULL, "should be forwarded to NULL");
}
@@ -258,7 +258,7 @@
if (allowed_deadspace_words >= deadlength) {
allowed_deadspace_words -= deadlength;
CollectedHeap::fill_with_object(q, deadlength);
- oop(q)->set_mark(oop(q)->mark()->set_marked());
+ oop(q)->set_mark_raw(oop(q)->mark_raw()->set_marked());
assert((int) deadlength == oop(q)->size(), "bad filler object size");
// Recall that we required "q == compaction_top".
return true;
@@ -349,7 +349,7 @@
q = t;
} else {
// $$$ Funky
- q = (HeapWord*) oop(_first_dead)->mark()->decode_pointer();
+ q = (HeapWord*) oop(_first_dead)->mark_raw()->decode_pointer();
}
}
@@ -360,7 +360,7 @@
if (!oop(q)->is_gc_marked()) {
// mark is pointer to next marked oop
debug_only(prev_q = q);
- q = (HeapWord*) oop(q)->mark()->decode_pointer();
+ q = (HeapWord*) oop(q)->mark_raw()->decode_pointer();
assert(q > prev_q, "we should be moving forward through memory");
} else {
// prefetch beyond q
@@ -376,7 +376,7 @@
// copy object and reinit its mark
assert(q != compaction_top, "everything in this pass should be moving");
Copy::aligned_conjoint_words(q, compaction_top, size);
- oop(compaction_top)->init_mark();
+ oop(compaction_top)->init_mark_raw();
assert(oop(compaction_top)->klass() != NULL, "should have a class");
debug_only(prev_q = q);