src/hotspot/share/jfr/recorder/checkpoint/types/traceid/jfrTraceId.inline.hpp
branchJEP-349-branch
changeset 57873 68134337dbf8
parent 57870 00860d9caf4d
child 57874 cd496c5a3823
--- a/src/hotspot/share/jfr/recorder/checkpoint/types/traceid/jfrTraceId.inline.hpp	Sun Aug 25 13:27:54 2019 +0200
+++ b/src/hotspot/share/jfr/recorder/checkpoint/types/traceid/jfrTraceId.inline.hpp	Sun Aug 25 15:13:16 2019 +0200
@@ -28,8 +28,9 @@
 #include "classfile/classLoaderData.hpp"
 #include "classfile/moduleEntry.hpp"
 #include "classfile/packageEntry.hpp"
+#include "jfr/recorder/checkpoint/types/traceid/jfrTraceId.hpp"
+#include "jfr/recorder/checkpoint/types/traceid/jfrTraceIdEpoch.hpp"
 #include "jfr/recorder/checkpoint/types/traceid/jfrTraceIdMacros.hpp"
-#include "jfr/recorder/checkpoint/types/traceid/jfrTraceId.hpp"
 #include "oops/arrayKlass.hpp"
 #include "oops/klass.hpp"
 #include "oops/instanceKlass.hpp"
@@ -57,7 +58,11 @@
 
 inline traceid JfrTraceId::use(const Klass* klass) {
   assert(klass != NULL, "invariant");
-  return set_used_and_get(klass);
+  const traceid id = set_used_and_get(klass);
+  if (IS_NOT_SERIALIZED(klass)) {
+    JfrTraceIdEpoch::set_klass_tagged_in_epoch();
+  }
+  return id;
 }
 
 inline traceid JfrTraceId::use(const Method* method) {
@@ -71,6 +76,9 @@
   SET_METHOD_FLAG_USED_THIS_EPOCH(method);
   SET_METHOD_AND_CLASS_USED_THIS_EPOCH(klass);
   assert(METHOD_AND_CLASS_USED_THIS_EPOCH(klass), "invariant");
+  if (IS_NOT_SERIALIZED(klass)) {
+    JfrTraceIdEpoch::set_klass_tagged_in_epoch();
+  }
   return (METHOD_ID(klass, method));
 }