Mercurial > hg > graal-jvmci-8
comparison src/share/vm/classfile/systemDictionary.hpp @ 8883:b9a918201d47
Merge with hsx25
author | Gilles Duboscq <duboscq@ssw.jku.at> |
---|---|
date | Sat, 06 Apr 2013 20:04:06 +0200 |
parents | ec06c7e67698 0ca3dd0ffaba |
children | 707b20dd9512 a8fea2979e63 |
comparison
equal
deleted
inserted
replaced
8660:d47b52b0ff68 | 8883:b9a918201d47 |
---|---|
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 ) \ |
523 // Note: java_lang_Class::primitive_type is the inverse of java_mirror | 525 // Note: java_lang_Class::primitive_type is the inverse of java_mirror |
524 | 526 |
525 // Check class loader constraints | 527 // Check class loader constraints |
526 static bool add_loader_constraint(Symbol* name, Handle loader1, | 528 static bool add_loader_constraint(Symbol* name, Handle loader1, |
527 Handle loader2, TRAPS); | 529 Handle loader2, TRAPS); |
528 static char* check_signature_loaders(Symbol* signature, Handle loader1, | 530 static Symbol* check_signature_loaders(Symbol* signature, Handle loader1, |
529 Handle loader2, bool is_method, TRAPS); | 531 Handle loader2, bool is_method, TRAPS); |
530 | 532 |
531 // JSR 292 | 533 // JSR 292 |
532 // find a java.lang.invoke.MethodHandle.invoke* method for a given signature | 534 // find a java.lang.invoke.MethodHandle.invoke* method for a given signature |
533 // (asks Java to compute it if necessary, except in a compiler thread) | 535 // (asks Java to compute it if necessary, except in a compiler thread) |
534 static methodHandle find_method_handle_invoker(Symbol* name, | 536 static methodHandle find_method_handle_invoker(Symbol* name, |
661 instanceKlassHandle k, TRAPS); | 663 instanceKlassHandle k, TRAPS); |
662 static instanceKlassHandle load_shared_class(Symbol* class_name, | 664 static instanceKlassHandle load_shared_class(Symbol* class_name, |
663 Handle class_loader, TRAPS); | 665 Handle class_loader, TRAPS); |
664 static instanceKlassHandle load_shared_class(instanceKlassHandle ik, | 666 static instanceKlassHandle load_shared_class(instanceKlassHandle ik, |
665 Handle class_loader, TRAPS); | 667 Handle class_loader, TRAPS); |
668 static void clean_up_shared_class(instanceKlassHandle ik, Handle class_loader, TRAPS); | |
666 static instanceKlassHandle load_instance_class(Symbol* class_name, Handle class_loader, TRAPS); | 669 static instanceKlassHandle load_instance_class(Symbol* class_name, Handle class_loader, TRAPS); |
667 static Handle compute_loader_lock_object(Handle class_loader, TRAPS); | 670 static Handle compute_loader_lock_object(Handle class_loader, TRAPS); |
668 static void check_loader_lock_contention(Handle loader_lock, TRAPS); | 671 static void check_loader_lock_contention(Handle loader_lock, TRAPS); |
669 static bool is_parallelCapable(Handle class_loader); | 672 static bool is_parallelCapable(Handle class_loader); |
670 static bool is_parallelDefine(Handle class_loader); | 673 static bool is_parallelDefine(Handle class_loader); |
671 | 674 |
675 public: | |
676 static bool is_ext_class_loader(Handle class_loader); | |
677 | |
678 private: | |
672 static Klass* find_shared_class(Symbol* class_name); | 679 static Klass* find_shared_class(Symbol* class_name); |
673 | 680 |
674 // Setup link to hierarchy | 681 // Setup link to hierarchy |
675 static void add_to_hierarchy(instanceKlassHandle k, TRAPS); | 682 static void add_to_hierarchy(instanceKlassHandle k, TRAPS); |
676 | 683 |
677 private: | |
678 // We pass in the hashtable index so we can calculate it outside of | 684 // We pass in the hashtable index so we can calculate it outside of |
679 // the SystemDictionary_lock. | 685 // the SystemDictionary_lock. |
680 | 686 |
681 // Basic find on loaded classes | 687 // Basic find on loaded classes |
682 static Klass* find_class(int index, unsigned int hash, | 688 static Klass* find_class(int index, unsigned int hash, |