src/hotspot/share/classfile/klassFactory.cpp
changeset 51444 3e5d28e6de32
parent 50785 d1b24f2ceca5
child 52692 bffef37beacb
equal deleted inserted replaced
51443:cdffba164671 51444:3e5d28e6de32
   181 
   181 
   182 InstanceKlass* KlassFactory::create_from_stream(ClassFileStream* stream,
   182 InstanceKlass* KlassFactory::create_from_stream(ClassFileStream* stream,
   183                                                 Symbol* name,
   183                                                 Symbol* name,
   184                                                 ClassLoaderData* loader_data,
   184                                                 ClassLoaderData* loader_data,
   185                                                 Handle protection_domain,
   185                                                 Handle protection_domain,
   186                                                 const InstanceKlass* host_klass,
   186                                                 const InstanceKlass* unsafe_anonymous_host,
   187                                                 GrowableArray<Handle>* cp_patches,
   187                                                 GrowableArray<Handle>* cp_patches,
   188                                                 TRAPS) {
   188                                                 TRAPS) {
   189   assert(stream != NULL, "invariant");
   189   assert(stream != NULL, "invariant");
   190   assert(loader_data != NULL, "invariant");
   190   assert(loader_data != NULL, "invariant");
   191   assert(THREAD->is_Java_thread(), "must be a JavaThread");
   191   assert(THREAD->is_Java_thread(), "must be a JavaThread");
   199 
   199 
   200   // increment counter
   200   // increment counter
   201   THREAD->statistical_info().incr_define_class_count();
   201   THREAD->statistical_info().incr_define_class_count();
   202 
   202 
   203   // Skip this processing for VM anonymous classes
   203   // Skip this processing for VM anonymous classes
   204   if (host_klass == NULL) {
   204   if (unsafe_anonymous_host == NULL) {
   205     stream = check_class_file_load_hook(stream,
   205     stream = check_class_file_load_hook(stream,
   206                                         name,
   206                                         name,
   207                                         loader_data,
   207                                         loader_data,
   208                                         protection_domain,
   208                                         protection_domain,
   209                                         &cached_class_file,
   209                                         &cached_class_file,
   212 
   212 
   213   ClassFileParser parser(stream,
   213   ClassFileParser parser(stream,
   214                          name,
   214                          name,
   215                          loader_data,
   215                          loader_data,
   216                          protection_domain,
   216                          protection_domain,
   217                          host_klass,
   217                          unsafe_anonymous_host,
   218                          cp_patches,
   218                          cp_patches,
   219                          ClassFileParser::BROADCAST, // publicity level
   219                          ClassFileParser::BROADCAST, // publicity level
   220                          CHECK_NULL);
   220                          CHECK_NULL);
   221 
   221 
   222   InstanceKlass* result = parser.create_instance_klass(old_stream != stream, CHECK_NULL);
   222   InstanceKlass* result = parser.create_instance_klass(old_stream != stream, CHECK_NULL);