comparison src/share/vm/classfile/systemDictionary.cpp @ 6831:d8ce2825b193

8000213: NPG: Should have renamed arrayKlass and typeArrayKlass Summary: Capitalize these metadata types (and objArrayKlass) Reviewed-by: stefank, twisti, kvn
author coleenp
date Sat, 29 Sep 2012 06:40:00 -0400
parents 2a48c84f1d04
children 6e5a59a8e4a7
comparison
equal deleted inserted replaced
6811:1b582b1bf7cb 6831:d8ce2825b193
242 if (k != NULL) { 242 if (k != NULL) {
243 k = Klass::cast(k)->array_klass(fd.dimension(), CHECK_NULL); 243 k = Klass::cast(k)->array_klass(fd.dimension(), CHECK_NULL);
244 } 244 }
245 } else { 245 } else {
246 k = Universe::typeArrayKlassObj(t); 246 k = Universe::typeArrayKlassObj(t);
247 k = typeArrayKlass::cast(k)->array_klass(fd.dimension(), CHECK_NULL); 247 k = TypeArrayKlass::cast(k)->array_klass(fd.dimension(), CHECK_NULL);
248 } 248 }
249 return k; 249 return k;
250 } 250 }
251 251
252 252
918 918
919 919
920 // Look for a loaded instance or array klass by name. Do not do any loading. 920 // Look for a loaded instance or array klass by name. Do not do any loading.
921 // return NULL in case of error. 921 // return NULL in case of error.
922 Klass* SystemDictionary::find_instance_or_array_klass(Symbol* class_name, 922 Klass* SystemDictionary::find_instance_or_array_klass(Symbol* class_name,
923 Handle class_loader, 923 Handle class_loader,
924 Handle protection_domain, 924 Handle protection_domain,
925 TRAPS) { 925 TRAPS) {
926 Klass* k = NULL; 926 Klass* k = NULL;
927 assert(class_name != NULL, "class name must be non NULL"); 927 assert(class_name != NULL, "class name must be non NULL");
928 928
929 // Try to get one of the well-known klasses. 929 // Try to get one of the well-known klasses.
930 if (LinkWellKnownClasses) { 930 if (LinkWellKnownClasses) {
988 988
989 // Note: this method is much like resolve_from_stream, but 989 // Note: this method is much like resolve_from_stream, but
990 // updates no supplemental data structures. 990 // updates no supplemental data structures.
991 // TODO consolidate the two methods with a helper routine? 991 // TODO consolidate the two methods with a helper routine?
992 Klass* SystemDictionary::parse_stream(Symbol* class_name, 992 Klass* SystemDictionary::parse_stream(Symbol* class_name,
993 Handle class_loader, 993 Handle class_loader,
994 Handle protection_domain, 994 Handle protection_domain,
995 ClassFileStream* st, 995 ClassFileStream* st,
996 KlassHandle host_klass, 996 KlassHandle host_klass,
997 GrowableArray<Handle>* cp_patches, 997 GrowableArray<Handle>* cp_patches,
998 TRAPS) { 998 TRAPS) {
999 TempNewSymbol parsed_name = NULL; 999 TempNewSymbol parsed_name = NULL;
1000 1000
1001 // Parse the stream. Note that we do this even though this klass might 1001 // Parse the stream. Note that we do this even though this klass might
1002 // already be present in the SystemDictionary, otherwise we would not 1002 // already be present in the SystemDictionary, otherwise we would not
1003 // throw potential ClassFormatErrors. 1003 // throw potential ClassFormatErrors.
1074 // JVM_DefineClass). 1074 // JVM_DefineClass).
1075 // Note: class_name can be NULL. In that case we do not know the name of 1075 // Note: class_name can be NULL. In that case we do not know the name of
1076 // the class until we have parsed the stream. 1076 // the class until we have parsed the stream.
1077 1077
1078 Klass* SystemDictionary::resolve_from_stream(Symbol* class_name, 1078 Klass* SystemDictionary::resolve_from_stream(Symbol* class_name,
1079 Handle class_loader, 1079 Handle class_loader,
1080 Handle protection_domain, 1080 Handle protection_domain,
1081 ClassFileStream* st, 1081 ClassFileStream* st,
1082 bool verify, 1082 bool verify,
1083 TRAPS) { 1083 TRAPS) {
1084 1084
1085 // Classloaders that support parallelism, e.g. bootstrap classloader, 1085 // Classloaders that support parallelism, e.g. bootstrap classloader,
1086 // or all classloaders with UnsyncloadClass do not acquire lock here 1086 // or all classloaders with UnsyncloadClass do not acquire lock here
1087 bool DoObjectLock = true; 1087 bool DoObjectLock = true;
1088 if (is_parallelCapable(class_loader)) { 1088 if (is_parallelCapable(class_loader)) {
2185 2185
2186 // First see if it has been loaded directly. 2186 // First see if it has been loaded directly.
2187 // Force the protection domain to be null. (This removes protection checks.) 2187 // Force the protection domain to be null. (This removes protection checks.)
2188 Handle no_protection_domain; 2188 Handle no_protection_domain;
2189 Klass* klass = find_instance_or_array_klass(class_name, class_loader, 2189 Klass* klass = find_instance_or_array_klass(class_name, class_loader,
2190 no_protection_domain, CHECK_NULL); 2190 no_protection_domain, CHECK_NULL);
2191 if (klass != NULL) 2191 if (klass != NULL)
2192 return klass; 2192 return klass;
2193 2193
2194 // Now look to see if it has been loaded elsewhere, and is subject to 2194 // Now look to see if it has been loaded elsewhere, and is subject to
2195 // a loader constraint that would require this loader to return the 2195 // a loader constraint that would require this loader to return the
2521 if (ss.is_object() && accessing_klass.not_null()) { 2521 if (ss.is_object() && accessing_klass.not_null()) {
2522 Klass* sel_klass = java_lang_Class::as_Klass(mirror); 2522 Klass* sel_klass = java_lang_Class::as_Klass(mirror);
2523 mirror = NULL; // safety 2523 mirror = NULL; // safety
2524 // Emulate ConstantPool::verify_constant_pool_resolve. 2524 // Emulate ConstantPool::verify_constant_pool_resolve.
2525 if (Klass::cast(sel_klass)->oop_is_objArray()) 2525 if (Klass::cast(sel_klass)->oop_is_objArray())
2526 sel_klass = objArrayKlass::cast(sel_klass)->bottom_klass(); 2526 sel_klass = ObjArrayKlass::cast(sel_klass)->bottom_klass();
2527 if (Klass::cast(sel_klass)->oop_is_instance()) { 2527 if (Klass::cast(sel_klass)->oop_is_instance()) {
2528 KlassHandle sel_kh(THREAD, sel_klass); 2528 KlassHandle sel_kh(THREAD, sel_klass);
2529 LinkResolver::check_klass_accessability(accessing_klass, sel_kh, CHECK_(empty)); 2529 LinkResolver::check_klass_accessability(accessing_klass, sel_kh, CHECK_(empty));
2530 } 2530 }
2531 } 2531 }