8259870: zBarrier.inline.hpp should not include javaClasses.hpp
Reviewed-by: stefank, tschatzl
This commit is contained in:
parent
a1a851b6db
commit
14ce8f1a52
src/hotspot/share/gc/z
@ -1,5 +1,5 @@
|
||||
/*
|
||||
* Copyright (c) 2015, 2020, Oracle and/or its affiliates. All rights reserved.
|
||||
* Copyright (c) 2015, 2021, 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
|
||||
@ -22,6 +22,7 @@
|
||||
*/
|
||||
|
||||
#include "precompiled.hpp"
|
||||
#include "classfile/javaClasses.hpp"
|
||||
#include "gc/z/zBarrier.inline.hpp"
|
||||
#include "gc/z/zHeap.inline.hpp"
|
||||
#include "gc/z/zOop.inline.hpp"
|
||||
@ -239,6 +240,20 @@ oop ZBarrier::weak_load_barrier_on_phantom_oop_field_preloaded(volatile narrowOo
|
||||
return NULL;
|
||||
}
|
||||
|
||||
#ifdef ASSERT
|
||||
|
||||
// ON_WEAK barriers should only ever be applied to j.l.r.Reference.referents.
|
||||
void ZBarrier::verify_on_weak(volatile oop* referent_addr) {
|
||||
if (referent_addr != NULL) {
|
||||
uintptr_t base = (uintptr_t)referent_addr - java_lang_ref_Reference::referent_offset();
|
||||
oop obj = cast_to_oop(base);
|
||||
assert(oopDesc::is_oop(obj), "Verification failed for: ref " PTR_FORMAT " obj: " PTR_FORMAT, (uintptr_t)referent_addr, base);
|
||||
assert(java_lang_ref_Reference::is_referent_field(obj, java_lang_ref_Reference::referent_offset()), "Sanity");
|
||||
}
|
||||
}
|
||||
|
||||
#endif
|
||||
|
||||
void ZLoadBarrierOopClosure::do_oop(oop* p) {
|
||||
ZBarrier::load_barrier_on_oop_field(p);
|
||||
}
|
||||
|
@ -1,5 +1,5 @@
|
||||
/*
|
||||
* Copyright (c) 2015, 2020, Oracle and/or its affiliates. All rights reserved.
|
||||
* Copyright (c) 2015, 2021, 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
|
||||
@ -75,6 +75,8 @@ private:
|
||||
static uintptr_t mark_barrier_on_oop_slow_path(uintptr_t addr);
|
||||
static uintptr_t mark_barrier_on_finalizable_oop_slow_path(uintptr_t addr);
|
||||
|
||||
static void verify_on_weak(volatile oop* referent_addr) NOT_DEBUG_RETURN;
|
||||
|
||||
public:
|
||||
// Load barrier
|
||||
static oop load_barrier_on_oop(oop o);
|
||||
|
@ -1,5 +1,5 @@
|
||||
/*
|
||||
* Copyright (c) 2015, 2020, Oracle and/or its affiliates. All rights reserved.
|
||||
* Copyright (c) 2015, 2021, 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
|
||||
@ -24,7 +24,6 @@
|
||||
#ifndef SHARE_GC_Z_ZBARRIER_INLINE_HPP
|
||||
#define SHARE_GC_Z_ZBARRIER_INLINE_HPP
|
||||
|
||||
#include "classfile/javaClasses.hpp"
|
||||
#include "gc/z/zAddress.inline.hpp"
|
||||
#include "gc/z/zBarrier.hpp"
|
||||
#include "gc/z/zOop.inline.hpp"
|
||||
@ -242,18 +241,6 @@ inline void ZBarrier::load_barrier_on_oop_array(volatile oop* p, size_t length)
|
||||
}
|
||||
}
|
||||
|
||||
// ON_WEAK barriers should only ever be applied to j.l.r.Reference.referents.
|
||||
inline void verify_on_weak(volatile oop* referent_addr) {
|
||||
#ifdef ASSERT
|
||||
if (referent_addr != NULL) {
|
||||
uintptr_t base = (uintptr_t)referent_addr - java_lang_ref_Reference::referent_offset();
|
||||
oop obj = cast_to_oop(base);
|
||||
assert(oopDesc::is_oop(obj), "Verification failed for: ref " PTR_FORMAT " obj: " PTR_FORMAT, (uintptr_t)referent_addr, base);
|
||||
assert(java_lang_ref_Reference::is_referent_field(obj, java_lang_ref_Reference::referent_offset()), "Sanity");
|
||||
}
|
||||
#endif
|
||||
}
|
||||
|
||||
inline oop ZBarrier::load_barrier_on_weak_oop_field_preloaded(volatile oop* p, oop o) {
|
||||
verify_on_weak(p);
|
||||
|
||||
|
Loading…
x
Reference in New Issue
Block a user