代码拉取完成,页面将自动刷新
同步操作将从 src-openEuler/openjdk-1.8.0 强制同步,此操作会覆盖自 Fork 仓库以来所做的任何修改,且无法恢复!!!
确定后同步将在后台操作,完成时将刷新页面,请耐心等待。
From 8f0acd949be2c01c445e402ae81421d4554f7d2b Mon Sep 17 00:00:00 2001
Date: Fri, 13 Dec 2019 12:02:23 +0000
Subject: [PATCH] PS GC: adding acquire_size method for
PSParallelCompact::mark_obj.
Summary: GC: adding acquire_size method for PSParallelCompact::mark_obj.
LLT: NA
Bug url:
---
.../share/vm/gc_implementation/parallelScavenge/psParallelCompact.hpp | 2 +-
hotspot/src/share/vm/oops/oop.hpp | 1 +
hotspot/src/share/vm/oops/oop.inline.hpp | 4 ++++
3 files changed, 6 insertions(+), 1 deletion(-)
diff --git a/hotspot/src/share/vm/gc_implementation/parallelScavenge/psParallelCompact.hpp b/hotspot/src/share/vm/gc_implementation/parallelScavenge/psParallelCompact.hpp
index 881f380cea..f971383a09 100644
--- a/hotspot/src/share/vm/gc_implementation/parallelScavenge/psParallelCompact.hpp
+++ b/hotspot/src/share/vm/gc_implementation/parallelScavenge/psParallelCompact.hpp
@@ -1326,7 +1326,7 @@ class PSParallelCompact : AllStatic {
};
inline bool PSParallelCompact::mark_obj(oop obj) {
- const int obj_size = obj->size();
+ const int obj_size = obj->acquire_size();
if (mark_bitmap()->mark_obj(obj, obj_size)) {
_summary_data.add_obj(obj, obj_size);
return true;
diff --git a/hotspot/src/share/vm/oops/oop.hpp b/hotspot/src/share/vm/oops/oop.hpp
index 142ab2769c..42ad9307f7 100644
--- a/hotspot/src/share/vm/oops/oop.hpp
+++ b/hotspot/src/share/vm/oops/oop.hpp
@@ -123,6 +123,7 @@ class oopDesc {
// Returns the actual oop size of the object
int size();
+ int acquire_size();
// Sometimes (for complicated concurrency-related reasons), it is useful
// to be able to figure out the size of an object knowing its klass.
diff --git a/hotspot/src/share/vm/oops/oop.inline.hpp b/hotspot/src/share/vm/oops/oop.inline.hpp
index b519d86118..803080c9e7 100644
--- a/hotspot/src/share/vm/oops/oop.inline.hpp
+++ b/hotspot/src/share/vm/oops/oop.inline.hpp
@@ -839,6 +839,10 @@ inline int oopDesc::size() {
return size_given_klass(klass());
}
+inline int oopDesc::acquire_size() {
+ return size_given_klass(klass_or_null_acquire());
+}
+
inline void update_barrier_set(void* p, oop v, bool release = false) {
assert(oopDesc::bs() != NULL, "Uninitialized bs in oop!");
oopDesc::bs()->write_ref_field(p, v, release);
--
2.12.3
此处可能存在不合适展示的内容,页面不予展示。您可通过相关编辑功能自查并修改。
如您确认内容无涉及 不当用语 / 纯广告导流 / 暴力 / 低俗色情 / 侵权 / 盗版 / 虚假 / 无价值内容或违法国家有关法律法规的内容,可点击提交进行申诉,我们将尽快为您处理。