73 assert(method != NULL, "invariant");
74 SET_METHOD_FLAG_USED_THIS_EPOCH(method);
75
76 SET_METHOD_AND_CLASS_USED_THIS_EPOCH(klass);
77 assert(METHOD_AND_CLASS_USED_THIS_EPOCH(klass), "invariant");
78 return (METHOD_ID(klass, method));
79 }
80
81 inline traceid JfrTraceId::use(const ModuleEntry* module) {
82 assert(module != NULL, "invariant");
83 return set_used_and_get(module);
84 }
85
86 inline traceid JfrTraceId::use(const PackageEntry* package) {
87 assert(package != NULL, "invariant");
88 return set_used_and_get(package);
89 }
90
91 inline traceid JfrTraceId::use(const ClassLoaderData* cld) {
92 assert(cld != NULL, "invariant");
93 return cld->is_unsafe_anonymous() ? 0 : set_used_and_get(cld);
94 }
95
96 inline void JfrTraceId::set_leakp(const Method* method) {
97 assert(method != NULL, "invariant");
98 const Klass* const klass = method->method_holder();
99 assert(klass != NULL, "invariant");
100 assert(METHOD_AND_CLASS_USED_THIS_EPOCH(klass), "invariant");
101 assert(METHOD_FLAG_USED_THIS_EPOCH(method), "invariant");
102 SET_LEAKP(klass);
103 SET_METHOD_LEAKP(method);
104 }
105
106 inline bool JfrTraceId::in_visible_set(const Klass* klass) {
107 assert(klass != NULL, "invariant");
108 assert(((JavaThread*)Thread::current())->thread_state() == _thread_in_vm, "invariant");
109 return (IS_JDK_JFR_EVENT_SUBKLASS(klass) && !klass->is_abstract()) || IS_EVENT_HOST_KLASS(klass);
110 }
111
112 inline bool JfrTraceId::is_jdk_jfr_event(const Klass* k) {
113 assert(k != NULL, "invariant");
|
73 assert(method != NULL, "invariant");
74 SET_METHOD_FLAG_USED_THIS_EPOCH(method);
75
76 SET_METHOD_AND_CLASS_USED_THIS_EPOCH(klass);
77 assert(METHOD_AND_CLASS_USED_THIS_EPOCH(klass), "invariant");
78 return (METHOD_ID(klass, method));
79 }
80
81 inline traceid JfrTraceId::use(const ModuleEntry* module) {
82 assert(module != NULL, "invariant");
83 return set_used_and_get(module);
84 }
85
86 inline traceid JfrTraceId::use(const PackageEntry* package) {
87 assert(package != NULL, "invariant");
88 return set_used_and_get(package);
89 }
90
91 inline traceid JfrTraceId::use(const ClassLoaderData* cld) {
92 assert(cld != NULL, "invariant");
93 return cld->is_shortlived() ? 0 : set_used_and_get(cld);
94 }
95
96 inline void JfrTraceId::set_leakp(const Method* method) {
97 assert(method != NULL, "invariant");
98 const Klass* const klass = method->method_holder();
99 assert(klass != NULL, "invariant");
100 assert(METHOD_AND_CLASS_USED_THIS_EPOCH(klass), "invariant");
101 assert(METHOD_FLAG_USED_THIS_EPOCH(method), "invariant");
102 SET_LEAKP(klass);
103 SET_METHOD_LEAKP(method);
104 }
105
106 inline bool JfrTraceId::in_visible_set(const Klass* klass) {
107 assert(klass != NULL, "invariant");
108 assert(((JavaThread*)Thread::current())->thread_state() == _thread_in_vm, "invariant");
109 return (IS_JDK_JFR_EVENT_SUBKLASS(klass) && !klass->is_abstract()) || IS_EVENT_HOST_KLASS(klass);
110 }
111
112 inline bool JfrTraceId::is_jdk_jfr_event(const Klass* k) {
113 assert(k != NULL, "invariant");
|