< prev index next >

src/share/vm/classfile/systemDictionary.cpp

Print this page

        

@@ -36,12 +36,14 @@
 #endif
 #include "classfile/vmSymbols.hpp"
 #include "compiler/compileBroker.hpp"
 #include "interpreter/bytecodeStream.hpp"
 #include "interpreter/interpreter.hpp"
+#if INCLUDE_JFR
 #include "jfr/jfrEvents.hpp"
 #include "jfr/jni/jfrUpcalls.hpp"
+#endif
 #include "memory/filemap.hpp"
 #include "memory/gcLocker.hpp"
 #include "memory/oopFactory.hpp"
 #include "oops/instanceKlass.hpp"
 #include "oops/instanceRefKlass.hpp"

@@ -601,35 +603,37 @@
     }
   }
   return (nh);
 }
 
+#if INCLUDE_JFR
 // utility function for class load event
 static void post_class_load_event(EventClassLoad &event,
                                   instanceKlassHandle k,
                                   Handle initiating_loader) {
-#if INCLUDE_JFR
   if (event.should_commit()) {
     event.set_loadedClass(k());
     event.set_definingClassLoader(k->class_loader_data());
     oop class_loader = initiating_loader.is_null() ? (oop)NULL : initiating_loader();
     event.set_initiatingClassLoader(class_loader != NULL ?
                                     ClassLoaderData::class_loader_data_or_null(class_loader) :
                                     (ClassLoaderData*)NULL);
     event.commit();
   }
-#endif // INCLUDE_JFR
 }
+#endif // INCLUDE_JFR
 
 Klass* SystemDictionary::resolve_instance_class_or_null(Symbol* name,
                                                         Handle class_loader,
                                                         Handle protection_domain,
                                                         TRAPS) {
   assert(name != NULL && !FieldType::is_array(name) &&
          !FieldType::is_obj(name), "invalid class name");
 
+#if INCLUDE_JFR
   EventClassLoad class_load_start_event;
+#endif
 
   // UseNewReflection
   // Fix for 4474172; see evaluation for more details
   class_loader = Handle(THREAD, java_lang_ClassLoader::non_reflection_class_loader(class_loader()));
   ClassLoaderData *loader_data = register_loader(class_loader, CHECK_NULL);

@@ -876,11 +880,13 @@
 
   if (HAS_PENDING_EXCEPTION || k.is_null()) {
     return NULL;
   }
 
+#if INCLUDE_JFR
   post_class_load_event(class_load_start_event, k, class_loader);
+#endif
 
 #ifdef ASSERT
   {
     ClassLoaderData* loader_data = k->class_loader_data();
     MutexLocker mu(SystemDictionary_lock, THREAD);

@@ -1001,11 +1007,13 @@
                                       KlassHandle host_klass,
                                       GrowableArray<Handle>* cp_patches,
                                       TRAPS) {
   TempNewSymbol parsed_name = NULL;
 
+#if INCLUDE_JFR
   EventClassLoad class_load_start_event;
+#endif
 
   ClassLoaderData* loader_data;
   if (host_klass.not_null()) {
     // Create a new CLD for anonymous class, that uses the same class loader
     // as the host_klass

@@ -1062,11 +1070,13 @@
     if (JvmtiExport::should_post_class_load()) {
         assert(THREAD->is_Java_thread(), "thread->is_Java_thread()");
         JvmtiExport::post_class_load((JavaThread *) THREAD, k());
     }
 
+#if INCLUDE_JFR
     post_class_load_event(class_load_start_event, k, class_loader);
+#endif
   }
   assert(host_klass.not_null() || cp_patches == NULL,
          "cp_patches only found with host_klass");
 
   return k();

@@ -1432,18 +1442,20 @@
     // Class is not found or has the wrong name, return NULL
     return nh;
   }
 }
 
+#if INCLUDE_JFR
 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();
   }
 }
+#endif
 
 void SystemDictionary::define_instance_class(instanceKlassHandle k, TRAPS) {
 
   ClassLoaderData* loader_data = k->class_loader_data();
   Handle class_loader_h(THREAD, loader_data->class_loader());

@@ -1511,11 +1523,13 @@
       assert(THREAD->is_Java_thread(), "thread->is_Java_thread()");
       JvmtiExport::post_class_load((JavaThread *) THREAD, k());
 
   }
 
+#if INCLUDE_JFR
   post_class_define_event(k(), loader_data);
+#endif
 }
 
 // Support parallel classloading
 // All parallel class loaders, including bootstrap classloader
 // lock a placeholder entry for this class/class_loader pair
< prev index next >