157 assert(k != NULL, "invariant"); |
157 assert(k != NULL, "invariant"); |
158 // Mask off and store the event flags. |
158 // Mask off and store the event flags. |
159 // This mechanism will retain the event specific flags |
159 // This mechanism will retain the event specific flags |
160 // in the archive, allowing for event flag restoration |
160 // in the archive, allowing for event flag restoration |
161 // when renewing the traceid on klass revival. |
161 // when renewing the traceid on klass revival. |
162 k->set_trace_id(EVENT_FLAGS_MASK(k)); |
162 k->set_trace_id(EVENT_KLASS_MASK(k)); |
163 } |
163 } |
164 |
164 |
165 // used by CDS / APPCDS as part of "restore_unshareable_info" |
165 // used by CDS / APPCDS as part of "restore_unshareable_info" |
166 void JfrTraceId::restore(const Klass* k) { |
166 void JfrTraceId::restore(const Klass* k) { |
167 assert(k != NULL, "invariant"); |
167 assert(k != NULL, "invariant"); |
179 const oop my_oop = JNIHandles::resolve(jc); |
179 const oop my_oop = JNIHandles::resolve(jc); |
180 assert(my_oop != NULL, "invariant"); |
180 assert(my_oop != NULL, "invariant"); |
181 return get(java_lang_Class::as_Klass(my_oop)); |
181 return get(java_lang_Class::as_Klass(my_oop)); |
182 } |
182 } |
183 |
183 |
184 traceid JfrTraceId::use(jclass jc, bool leakp /* false */) { |
184 traceid JfrTraceId::use(jclass jc) { |
185 assert(jc != NULL, "invariant"); |
185 assert(jc != NULL, "invariant"); |
186 assert(((JavaThread*)Thread::current())->thread_state() == _thread_in_vm, "invariant"); |
186 assert(((JavaThread*)Thread::current())->thread_state() == _thread_in_vm, "invariant"); |
187 const oop my_oop = JNIHandles::resolve(jc); |
187 const oop my_oop = JNIHandles::resolve(jc); |
188 assert(my_oop != NULL, "invariant"); |
188 assert(my_oop != NULL, "invariant"); |
189 return use(java_lang_Class::as_Klass(my_oop), leakp); |
189 return use(java_lang_Class::as_Klass(my_oop)); |
190 } |
190 } |
191 |
191 |
192 bool JfrTraceId::in_visible_set(const jclass jc) { |
192 bool JfrTraceId::in_visible_set(const jclass jc) { |
193 assert(jc != NULL, "invariant"); |
193 assert(jc != NULL, "invariant"); |
194 assert(((JavaThread*)Thread::current())->thread_state() == _thread_in_vm, "invariant"); |
194 assert(((JavaThread*)Thread::current())->thread_state() == _thread_in_vm, "invariant"); |