--- a/src/hotspot/share/jfr/leakprofiler/chains/edgeStore.cpp Tue Oct 08 15:16:36 2019 +0200
+++ b/src/hotspot/share/jfr/leakprofiler/chains/edgeStore.cpp Wed Oct 09 23:21:07 2019 +0200
@@ -259,6 +259,7 @@
assert(leak_context_edge->parent() == NULL, "invariant");
if (1 == length) {
+ store_gc_root_id_in_leak_context_edge(leak_context_edge, leak_context_edge);
return;
}
--- a/src/hotspot/share/jfr/leakprofiler/checkpoint/objectSampleWriter.cpp Tue Oct 08 15:16:36 2019 +0200
+++ b/src/hotspot/share/jfr/leakprofiler/checkpoint/objectSampleWriter.cpp Wed Oct 09 23:21:07 2019 +0200
@@ -355,10 +355,6 @@
static traceid get_gc_root_description_info_id(const Edge& edge, traceid id) {
assert(edge.is_root(), "invariant");
- if (EdgeUtils::is_leak_edge(edge)) {
- return 0;
- }
-
if (root_infos == NULL) {
root_infos = new RootDescriptionInfo();
}
--- a/src/hotspot/share/jfr/recorder/checkpoint/types/traceid/jfrTraceIdBits.inline.hpp Tue Oct 08 15:16:36 2019 +0200
+++ b/src/hotspot/share/jfr/recorder/checkpoint/types/traceid/jfrTraceIdBits.inline.hpp Wed Oct 09 23:21:07 2019 +0200
@@ -42,8 +42,10 @@
assert(dest != NULL, "invariant");
if (bits != (*dest & bits)) {
*dest |= bits;
- OrderAccess::storestore();
+ OrderAccess::storeload();
+ return;
}
+ OrderAccess::loadload();
}
inline jbyte traceid_and(jbyte current, jbyte bits) {