< prev index next >

src/share/vm/classfile/classFileParser.cpp

Print this page




5621   // The create_mirror() call will also call compute_modifiers()
5622   java_lang_Class::create_mirror(ik,
5623                                  Handle(THREAD, _loader_data->class_loader()),
5624                                  module_handle,
5625                                  _protection_domain,
5626                                  CHECK);
5627 
5628   assert(_all_mirandas != NULL, "invariant");
5629 
5630   // Generate any default methods - default methods are public interface methods
5631   // that have a default implementation.  This is new with Java 8.
5632   if (_has_nonstatic_concrete_methods) {
5633     DefaultMethods::generate_default_methods(ik,
5634                                              _all_mirandas,
5635                                              CHECK);
5636   }
5637 
5638   if (is_value_type()) {
5639     ValueKlass* vk = ValueKlass::cast(ik);
5640     vk->set_if_bufferable();

5641   }
5642 
5643   // Valhalla shady value type conversion
5644   if (_parsed_annotations->is_derive_value_type()) {
5645     ik->create_derive_value_type(Handle(THREAD, _loader_data->class_loader()),
5646                                  _protection_domain, CHECK);
5647   }
5648 
5649   // Add read edges to the unnamed modules of the bootstrap and app class loaders.
5650   if (changed_by_loadhook && !module_handle.is_null() && module_entry->is_named() &&
5651       !module_entry->has_default_read_edges()) {
5652     if (!module_entry->set_has_default_read_edges()) {
5653       // We won a potential race
5654       JvmtiExport::add_default_read_edges(module_handle, THREAD);
5655     }
5656   }
5657 
5658   // Update the loader_data graph.
5659   record_defined_class_dependencies(ik, CHECK);
5660 




5621   // The create_mirror() call will also call compute_modifiers()
5622   java_lang_Class::create_mirror(ik,
5623                                  Handle(THREAD, _loader_data->class_loader()),
5624                                  module_handle,
5625                                  _protection_domain,
5626                                  CHECK);
5627 
5628   assert(_all_mirandas != NULL, "invariant");
5629 
5630   // Generate any default methods - default methods are public interface methods
5631   // that have a default implementation.  This is new with Java 8.
5632   if (_has_nonstatic_concrete_methods) {
5633     DefaultMethods::generate_default_methods(ik,
5634                                              _all_mirandas,
5635                                              CHECK);
5636   }
5637 
5638   if (is_value_type()) {
5639     ValueKlass* vk = ValueKlass::cast(ik);
5640     vk->set_if_bufferable();
5641     vk->initialize_calling_convention();
5642   }
5643 
5644   // Valhalla shady value type conversion
5645   if (_parsed_annotations->is_derive_value_type()) {
5646     ik->create_derive_value_type(Handle(THREAD, _loader_data->class_loader()),
5647                                  _protection_domain, CHECK);
5648   }
5649 
5650   // Add read edges to the unnamed modules of the bootstrap and app class loaders.
5651   if (changed_by_loadhook && !module_handle.is_null() && module_entry->is_named() &&
5652       !module_entry->has_default_read_edges()) {
5653     if (!module_entry->set_has_default_read_edges()) {
5654       // We won a potential race
5655       JvmtiExport::add_default_read_edges(module_handle, THREAD);
5656     }
5657   }
5658 
5659   // Update the loader_data graph.
5660   record_defined_class_dependencies(ik, CHECK);
5661 


< prev index next >