< prev index next >

src/hotspot/share/classfile/klassFactory.cpp

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


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



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




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


< prev index next >