comparison src/share/vm/classfile/systemDictionary.hpp @ 13451:02f27ecb4f3a

Merge with http://hg.openjdk.java.net/hsx/hsx25/hotspot/
author Doug Simon <doug.simon@oracle.com>
date Wed, 18 Dec 2013 00:00:24 +0100
parents dfb780080923 2315fab779ca
children 4e679d50ba9a
comparison
equal deleted inserted replaced
13371:4db09b7304da 13451:02f27ecb4f3a
29 #include "classfile/classLoader.hpp" 29 #include "classfile/classLoader.hpp"
30 #include "oops/objArrayOop.hpp" 30 #include "oops/objArrayOop.hpp"
31 #include "oops/symbol.hpp" 31 #include "oops/symbol.hpp"
32 #include "runtime/java.hpp" 32 #include "runtime/java.hpp"
33 #include "runtime/reflectionUtils.hpp" 33 #include "runtime/reflectionUtils.hpp"
34 #include "trace/traceTime.hpp"
35 #include "utilities/hashtable.hpp" 34 #include "utilities/hashtable.hpp"
36 #include "utilities/hashtable.inline.hpp" 35 #include "utilities/hashtable.inline.hpp"
37 36
38 37
39 // The system dictionary stores all loaded classes and maps: 38 // The system dictionary stores all loaded classes and maps:
76 class PlaceholderTable; 75 class PlaceholderTable;
77 class LoaderConstraintTable; 76 class LoaderConstraintTable;
78 template <MEMFLAGS F> class HashtableBucket; 77 template <MEMFLAGS F> class HashtableBucket;
79 class ResolutionErrorTable; 78 class ResolutionErrorTable;
80 class SymbolPropertyTable; 79 class SymbolPropertyTable;
80 class Ticks;
81 81
82 // Certain classes are preloaded, such as java.lang.Object and java.lang.String. 82 // Certain classes are preloaded, such as java.lang.Object and java.lang.String.
83 // They are all "well-known", in the sense that no class loader is allowed 83 // They are all "well-known", in the sense that no class loader is allowed
84 // to provide a different definition. 84 // to provide a different definition.
85 // 85 //
139 do_klass(reflect_Constructor_klass, java_lang_reflect_Constructor, Pre ) \ 139 do_klass(reflect_Constructor_klass, java_lang_reflect_Constructor, Pre ) \
140 \ 140 \
141 /* NOTE: needed too early in bootstrapping process to have checks based on JDK version */ \ 141 /* NOTE: needed too early in bootstrapping process to have checks based on JDK version */ \
142 /* Universe::is_gte_jdk14x_version() is not set up by this point. */ \ 142 /* Universe::is_gte_jdk14x_version() is not set up by this point. */ \
143 /* It's okay if this turns out to be NULL in non-1.4 JDKs. */ \ 143 /* It's okay if this turns out to be NULL in non-1.4 JDKs. */ \
144 do_klass(lambda_MagicLambdaImpl_klass, java_lang_invoke_MagicLambdaImpl, Opt ) \
145 do_klass(reflect_MagicAccessorImpl_klass, sun_reflect_MagicAccessorImpl, Opt ) \ 144 do_klass(reflect_MagicAccessorImpl_klass, sun_reflect_MagicAccessorImpl, Opt ) \
146 do_klass(reflect_MethodAccessorImpl_klass, sun_reflect_MethodAccessorImpl, Opt_Only_JDK14NewRef) \ 145 do_klass(reflect_MethodAccessorImpl_klass, sun_reflect_MethodAccessorImpl, Opt_Only_JDK14NewRef) \
147 do_klass(reflect_ConstructorAccessorImpl_klass, sun_reflect_ConstructorAccessorImpl, Opt_Only_JDK14NewRef) \ 146 do_klass(reflect_ConstructorAccessorImpl_klass, sun_reflect_ConstructorAccessorImpl, Opt_Only_JDK14NewRef) \
148 do_klass(reflect_DelegatingClassLoader_klass, sun_reflect_DelegatingClassLoader, Opt ) \ 147 do_klass(reflect_DelegatingClassLoader_klass, sun_reflect_DelegatingClassLoader, Opt ) \
149 do_klass(reflect_ConstantPool_klass, sun_reflect_ConstantPool, Opt_Only_JDK15 ) \ 148 do_klass(reflect_ConstantPool_klass, sun_reflect_ConstantPool, Opt_Only_JDK15 ) \
164 do_klass(VolatileCallSite_klass, java_lang_invoke_VolatileCallSite, Pre_JSR292 ) \ 163 do_klass(VolatileCallSite_klass, java_lang_invoke_VolatileCallSite, Pre_JSR292 ) \
165 /* Note: MethodHandle must be first, and VolatileCallSite last in group */ \ 164 /* Note: MethodHandle must be first, and VolatileCallSite last in group */ \
166 \ 165 \
167 do_klass(StringBuffer_klass, java_lang_StringBuffer, Pre ) \ 166 do_klass(StringBuffer_klass, java_lang_StringBuffer, Pre ) \
168 do_klass(StringBuilder_klass, java_lang_StringBuilder, Pre ) \ 167 do_klass(StringBuilder_klass, java_lang_StringBuilder, Pre ) \
168 do_klass(misc_Unsafe_klass, sun_misc_Unsafe, Pre ) \
169 \ 169 \
170 /* It's NULL in non-1.4 JDKs. */ \ 170 /* It's NULL in non-1.4 JDKs. */ \
171 do_klass(StackTraceElement_klass, java_lang_StackTraceElement, Opt ) \ 171 do_klass(StackTraceElement_klass, java_lang_StackTraceElement, Opt ) \
172 /* Universe::is_gte_jdk14x_version() is not set up by this point. */ \ 172 /* Universe::is_gte_jdk14x_version() is not set up by this point. */ \
173 /* It's okay if this turns out to be NULL in non-1.4 JDKs. */ \ 173 /* It's okay if this turns out to be NULL in non-1.4 JDKs. */ \
687 687
688 // Setup link to hierarchy 688 // Setup link to hierarchy
689 static void add_to_hierarchy(instanceKlassHandle k, TRAPS); 689 static void add_to_hierarchy(instanceKlassHandle k, TRAPS);
690 690
691 // event based tracing 691 // event based tracing
692 static void post_class_load_event(TracingTime start_time, instanceKlassHandle k, 692 static void post_class_load_event(const Ticks& start_time, instanceKlassHandle k,
693 Handle initiating_loader); 693 Handle initiating_loader);
694 // We pass in the hashtable index so we can calculate it outside of 694 // We pass in the hashtable index so we can calculate it outside of
695 // the SystemDictionary_lock. 695 // the SystemDictionary_lock.
696 696
697 // Basic find on loaded classes 697 // Basic find on loaded classes