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,