51 * a non-NULL ClassLoaderData* // the metaspace allocator 52 * (no pending exceptions) 53 * 54 * Returns: 55 * if the returned value is non-NULL, that value is an indirection (pointer/handle) 56 * to a Klass. The caller will not have a pending exception. 57 * 58 * On broken invariants and/or runtime errors the returned value will be 59 * NULL (or a NULL handle) and the caller *might* now have a pending exception. 60 * 61 */ 62 63 class KlassFactory : AllStatic { 64 65 // approved clients 66 friend class ClassLoader; 67 friend class ClassLoaderExt; 68 friend class SystemDictionary; 69 70 private: 71 static instanceKlassHandle create_from_stream(ClassFileStream* stream, 72 Symbol* name, 73 ClassLoaderData* loader_data, 74 Handle protection_domain, 75 const InstanceKlass* host_klass, 76 GrowableArray<Handle>* cp_patches, 77 TRAPS); 78 public: 79 static instanceKlassHandle check_shared_class_file_load_hook( 80 instanceKlassHandle ik, 81 Symbol* class_name, 82 Handle class_loader, 83 Handle protection_domain, TRAPS); 84 }; 85 86 #endif // SHARE_VM_CLASSFILE_KLASSFACTORY_HPP | 51 * a non-NULL ClassLoaderData* // the metaspace allocator 52 * (no pending exceptions) 53 * 54 * Returns: 55 * if the returned value is non-NULL, that value is an indirection (pointer/handle) 56 * to a Klass. The caller will not have a pending exception. 57 * 58 * On broken invariants and/or runtime errors the returned value will be 59 * NULL (or a NULL handle) and the caller *might* now have a pending exception. 60 * 61 */ 62 63 class KlassFactory : AllStatic { 64 65 // approved clients 66 friend class ClassLoader; 67 friend class ClassLoaderExt; 68 friend class SystemDictionary; 69 70 private: 71 static InstanceKlass* create_from_stream(ClassFileStream* stream, 72 Symbol* name, 73 ClassLoaderData* loader_data, 74 Handle protection_domain, 75 const InstanceKlass* host_klass, 76 GrowableArray<Handle>* cp_patches, 77 TRAPS); 78 public: 79 static InstanceKlass* check_shared_class_file_load_hook( 80 InstanceKlass* ik, 81 Symbol* class_name, 82 Handle class_loader, 83 Handle protection_domain, TRAPS); 84 }; 85 86 #endif // SHARE_VM_CLASSFILE_KLASSFACTORY_HPP |