diff -r 7a2a740815b7 -r caf115bb98ad src/hotspot/share/classfile/systemDictionary.cpp --- a/src/hotspot/share/classfile/systemDictionary.cpp Tue May 15 11:28:29 2018 -0700 +++ b/src/hotspot/share/classfile/systemDictionary.cpp Tue May 15 20:24:34 2018 +0200 @@ -47,6 +47,7 @@ #include "gc/shared/oopStorage.inline.hpp" #include "interpreter/bytecodeStream.hpp" #include "interpreter/interpreter.hpp" +#include "jfr/jfrEvents.hpp" #include "logging/log.hpp" #include "logging/logStream.hpp" #include "memory/filemap.hpp" @@ -81,7 +82,6 @@ #include "services/classLoadingService.hpp" #include "services/diagnosticCommand.hpp" #include "services/threadService.hpp" -#include "trace/tracing.hpp" #include "utilities/macros.hpp" #if INCLUDE_CDS #include "classfile/systemDictionaryShared.hpp" @@ -623,32 +623,16 @@ return NULL; } -static void post_class_load_event(EventClassLoad* event, - const InstanceKlass* k, - const ClassLoaderData* init_cld) { -#if INCLUDE_TRACE +static void post_class_load_event(EventClassLoad* event, const InstanceKlass* k, const ClassLoaderData* init_cld) { assert(event != NULL, "invariant"); assert(k != NULL, "invariant"); - if (event->should_commit()) { - event->set_loadedClass(k); - event->set_definingClassLoader(k->class_loader_data()); - event->set_initiatingClassLoader(init_cld); - event->commit(); - } -#endif // INCLUDE_TRACE + assert(event->should_commit(), "invariant"); + event->set_loadedClass(k); + event->set_definingClassLoader(k->class_loader_data()); + event->set_initiatingClassLoader(init_cld); + event->commit(); } -static void class_define_event(InstanceKlass* k, - const ClassLoaderData* def_cld) { -#if INCLUDE_TRACE - EventClassDefine event; - if (event.should_commit()) { - event.set_definedClass(k); - event.set_definingClassLoader(def_cld); - event.commit(); - } -#endif // INCLUDE_TRACE -} // Be careful when modifying this code: once you have run // placeholders()->find_and_add(PlaceholderTable::LOAD_INSTANCE), @@ -881,9 +865,9 @@ if (HAS_PENDING_EXCEPTION || k == NULL) { return NULL; } - - post_class_load_event(&class_load_start_event, k, loader_data); - + if (class_load_start_event.should_commit()) { + post_class_load_event(&class_load_start_event, k, loader_data); + } #ifdef ASSERT { ClassLoaderData* loader_data = k->class_loader_data(); @@ -1045,8 +1029,9 @@ assert(THREAD->is_Java_thread(), "thread->is_Java_thread()"); JvmtiExport::post_class_load((JavaThread *) THREAD, k); } - - post_class_load_event(&class_load_start_event, k, loader_data); + if (class_load_start_event.should_commit()) { + post_class_load_event(&class_load_start_event, k, loader_data); + } } assert(host_klass != NULL || NULL == cp_patches, "cp_patches only found with host_klass"); @@ -1558,6 +1543,15 @@ } } +static void post_class_define_event(InstanceKlass* k, const ClassLoaderData* def_cld) { + EventClassDefine event; + if (event.should_commit()) { + event.set_definedClass(k); + event.set_definingClassLoader(def_cld); + event.commit(); + } +} + void SystemDictionary::define_instance_class(InstanceKlass* k, TRAPS) { HandleMark hm(THREAD); @@ -1626,7 +1620,7 @@ JvmtiExport::post_class_load((JavaThread *) THREAD, k); } - class_define_event(k, loader_data); + post_class_define_event(k, loader_data); } // Support parallel classloading