< prev index next >

src/hotspot/share/classfile/klassFactory.cpp

Print this page
rev 49812 : Thread Dump Extension (memory allocation)


 176 
 177 
 178 InstanceKlass* KlassFactory::create_from_stream(ClassFileStream* stream,
 179                                                 Symbol* name,
 180                                                 ClassLoaderData* loader_data,
 181                                                 Handle protection_domain,
 182                                                 const InstanceKlass* host_klass,
 183                                                 GrowableArray<Handle>* cp_patches,
 184                                                 TRAPS) {
 185   assert(stream != NULL, "invariant");
 186   assert(loader_data != NULL, "invariant");
 187   assert(THREAD->is_Java_thread(), "must be a JavaThread");
 188 
 189   ResourceMark rm;
 190   HandleMark hm;
 191 
 192   JvmtiCachedClassFileData* cached_class_file = NULL;
 193 
 194   ClassFileStream* old_stream = stream;
 195 



 196   // Skip this processing for VM anonymous classes
 197   if (host_klass == NULL) {
 198     stream = check_class_file_load_hook(stream,
 199                                         name,
 200                                         loader_data,
 201                                         protection_domain,
 202                                         &cached_class_file,
 203                                         CHECK_NULL);
 204   }
 205 
 206   ClassFileParser parser(stream,
 207                          name,
 208                          loader_data,
 209                          protection_domain,
 210                          host_klass,
 211                          cp_patches,
 212                          ClassFileParser::BROADCAST, // publicity level
 213                          CHECK_NULL);
 214 
 215   InstanceKlass* result = parser.create_instance_klass(old_stream != stream, CHECK_NULL);




 176 
 177 
 178 InstanceKlass* KlassFactory::create_from_stream(ClassFileStream* stream,
 179                                                 Symbol* name,
 180                                                 ClassLoaderData* loader_data,
 181                                                 Handle protection_domain,
 182                                                 const InstanceKlass* host_klass,
 183                                                 GrowableArray<Handle>* cp_patches,
 184                                                 TRAPS) {
 185   assert(stream != NULL, "invariant");
 186   assert(loader_data != NULL, "invariant");
 187   assert(THREAD->is_Java_thread(), "must be a JavaThread");
 188 
 189   ResourceMark rm;
 190   HandleMark hm;
 191 
 192   JvmtiCachedClassFileData* cached_class_file = NULL;
 193 
 194   ClassFileStream* old_stream = stream;
 195 
 196   // increment counter
 197   THREAD->statistic_info().incr_define_class_count();
 198 
 199   // Skip this processing for VM anonymous classes
 200   if (host_klass == NULL) {
 201     stream = check_class_file_load_hook(stream,
 202                                         name,
 203                                         loader_data,
 204                                         protection_domain,
 205                                         &cached_class_file,
 206                                         CHECK_NULL);
 207   }
 208 
 209   ClassFileParser parser(stream,
 210                          name,
 211                          loader_data,
 212                          protection_domain,
 213                          host_klass,
 214                          cp_patches,
 215                          ClassFileParser::BROADCAST, // publicity level
 216                          CHECK_NULL);
 217 
 218   InstanceKlass* result = parser.create_instance_klass(old_stream != stream, CHECK_NULL);


< prev index next >