104 do_klass(Throwable_klass, java_lang_Throwable, Pre ) \ |
104 do_klass(Throwable_klass, java_lang_Throwable, Pre ) \ |
105 do_klass(Error_klass, java_lang_Error, Pre ) \ |
105 do_klass(Error_klass, java_lang_Error, Pre ) \ |
106 do_klass(ThreadDeath_klass, java_lang_ThreadDeath, Pre ) \ |
106 do_klass(ThreadDeath_klass, java_lang_ThreadDeath, Pre ) \ |
107 do_klass(Exception_klass, java_lang_Exception, Pre ) \ |
107 do_klass(Exception_klass, java_lang_Exception, Pre ) \ |
108 do_klass(RuntimeException_klass, java_lang_RuntimeException, Pre ) \ |
108 do_klass(RuntimeException_klass, java_lang_RuntimeException, Pre ) \ |
|
109 do_klass(SecurityManager_klass, java_lang_SecurityManager, Pre ) \ |
109 do_klass(ProtectionDomain_klass, java_security_ProtectionDomain, Pre ) \ |
110 do_klass(ProtectionDomain_klass, java_security_ProtectionDomain, Pre ) \ |
110 do_klass(AccessControlContext_klass, java_security_AccessControlContext, Pre ) \ |
111 do_klass(AccessControlContext_klass, java_security_AccessControlContext, Pre ) \ |
111 do_klass(ClassNotFoundException_klass, java_lang_ClassNotFoundException, Pre ) \ |
112 do_klass(ClassNotFoundException_klass, java_lang_ClassNotFoundException, Pre ) \ |
112 do_klass(NoClassDefFoundError_klass, java_lang_NoClassDefFoundError, Pre ) \ |
113 do_klass(NoClassDefFoundError_klass, java_lang_NoClassDefFoundError, Pre ) \ |
113 do_klass(LinkageError_klass, java_lang_LinkageError, Pre ) \ |
114 do_klass(LinkageError_klass, java_lang_LinkageError, Pre ) \ |
136 do_klass(reflect_Constructor_klass, java_lang_reflect_Constructor, Pre ) \ |
137 do_klass(reflect_Constructor_klass, java_lang_reflect_Constructor, Pre ) \ |
137 \ |
138 \ |
138 /* NOTE: needed too early in bootstrapping process to have checks based on JDK version */ \ |
139 /* NOTE: needed too early in bootstrapping process to have checks based on JDK version */ \ |
139 /* Universe::is_gte_jdk14x_version() is not set up by this point. */ \ |
140 /* Universe::is_gte_jdk14x_version() is not set up by this point. */ \ |
140 /* It's okay if this turns out to be NULL in non-1.4 JDKs. */ \ |
141 /* It's okay if this turns out to be NULL in non-1.4 JDKs. */ \ |
141 do_klass(lambda_MagicLambdaImpl_klass, java_lang_invoke_MagicLambdaImpl, Opt ) \ |
142 do_klass(lambda_MagicLambdaImpl_klass, java_lang_invoke_MagicLambdaImpl, Opt ) \ |
142 do_klass(reflect_MagicAccessorImpl_klass, sun_reflect_MagicAccessorImpl, Opt ) \ |
143 do_klass(reflect_MagicAccessorImpl_klass, sun_reflect_MagicAccessorImpl, Opt ) \ |
143 do_klass(reflect_MethodAccessorImpl_klass, sun_reflect_MethodAccessorImpl, Opt_Only_JDK14NewRef) \ |
144 do_klass(reflect_MethodAccessorImpl_klass, sun_reflect_MethodAccessorImpl, Opt_Only_JDK14NewRef) \ |
144 do_klass(reflect_ConstructorAccessorImpl_klass, sun_reflect_ConstructorAccessorImpl, Opt_Only_JDK14NewRef) \ |
145 do_klass(reflect_ConstructorAccessorImpl_klass, sun_reflect_ConstructorAccessorImpl, Opt_Only_JDK14NewRef) \ |
145 do_klass(reflect_DelegatingClassLoader_klass, sun_reflect_DelegatingClassLoader, Opt ) \ |
146 do_klass(reflect_DelegatingClassLoader_klass, sun_reflect_DelegatingClassLoader, Opt ) \ |
146 do_klass(reflect_ConstantPool_klass, sun_reflect_ConstantPool, Opt_Only_JDK15 ) \ |
147 do_klass(reflect_ConstantPool_klass, sun_reflect_ConstantPool, Opt_Only_JDK15 ) \ |
147 do_klass(reflect_UnsafeStaticFieldAccessorImpl_klass, sun_reflect_UnsafeStaticFieldAccessorImpl, Opt_Only_JDK15 ) \ |
148 do_klass(reflect_UnsafeStaticFieldAccessorImpl_klass, sun_reflect_UnsafeStaticFieldAccessorImpl, Opt_Only_JDK15 ) \ |
|
149 do_klass(reflect_CallerSensitive_klass, sun_reflect_CallerSensitive, Opt ) \ |
148 \ |
150 \ |
149 /* support for dynamic typing; it's OK if these are NULL in earlier JDKs */ \ |
151 /* support for dynamic typing; it's OK if these are NULL in earlier JDKs */ \ |
150 do_klass(MethodHandle_klass, java_lang_invoke_MethodHandle, Pre_JSR292 ) \ |
152 do_klass(MethodHandle_klass, java_lang_invoke_MethodHandle, Pre_JSR292 ) \ |
151 do_klass(MemberName_klass, java_lang_invoke_MemberName, Pre_JSR292 ) \ |
153 do_klass(MemberName_klass, java_lang_invoke_MemberName, Pre_JSR292 ) \ |
152 do_klass(MethodHandleNatives_klass, java_lang_invoke_MethodHandleNatives, Pre_JSR292 ) \ |
154 do_klass(MethodHandleNatives_klass, java_lang_invoke_MethodHandleNatives, Pre_JSR292 ) \ |
626 static Handle compute_loader_lock_object(Handle class_loader, TRAPS); |
628 static Handle compute_loader_lock_object(Handle class_loader, TRAPS); |
627 static void check_loader_lock_contention(Handle loader_lock, TRAPS); |
629 static void check_loader_lock_contention(Handle loader_lock, TRAPS); |
628 static bool is_parallelCapable(Handle class_loader); |
630 static bool is_parallelCapable(Handle class_loader); |
629 static bool is_parallelDefine(Handle class_loader); |
631 static bool is_parallelDefine(Handle class_loader); |
630 |
632 |
|
633 public: |
|
634 static bool is_ext_class_loader(Handle class_loader); |
|
635 |
|
636 private: |
631 static Klass* find_shared_class(Symbol* class_name); |
637 static Klass* find_shared_class(Symbol* class_name); |
632 |
638 |
633 // Setup link to hierarchy |
639 // Setup link to hierarchy |
634 static void add_to_hierarchy(instanceKlassHandle k, TRAPS); |
640 static void add_to_hierarchy(instanceKlassHandle k, TRAPS); |
635 |
641 |
636 private: |
|
637 // We pass in the hashtable index so we can calculate it outside of |
642 // We pass in the hashtable index so we can calculate it outside of |
638 // the SystemDictionary_lock. |
643 // the SystemDictionary_lock. |
639 |
644 |
640 // Basic find on loaded classes |
645 // Basic find on loaded classes |
641 static Klass* find_class(int index, unsigned int hash, |
646 static Klass* find_class(int index, unsigned int hash, |