mirror of
https://github.com/openjdk/jdk.git
synced 2026-02-03 06:58:23 +00:00
8288134: Super class names don't have envelopes
Reviewed-by: iklam, hseigel, fparain
This commit is contained in:
parent
fb297705f6
commit
0f580974a6
@ -274,24 +274,16 @@ Klass* SystemDictionary::resolve_or_null(Symbol* class_name, Handle class_loader
|
||||
if (Signature::is_array(class_name)) {
|
||||
return resolve_array_class_or_null(class_name, class_loader, protection_domain, THREAD);
|
||||
} else {
|
||||
return resolve_instance_class_or_null_helper(class_name, class_loader, protection_domain, THREAD);
|
||||
}
|
||||
}
|
||||
|
||||
// name may be in the form of "java/lang/Object" or "Ljava/lang/Object;"
|
||||
InstanceKlass* SystemDictionary::resolve_instance_class_or_null_helper(Symbol* class_name,
|
||||
Handle class_loader,
|
||||
Handle protection_domain,
|
||||
TRAPS) {
|
||||
assert(class_name != NULL && !Signature::is_array(class_name), "must be");
|
||||
if (Signature::has_envelope(class_name)) {
|
||||
ResourceMark rm(THREAD);
|
||||
// Ignore wrapping L and ;.
|
||||
TempNewSymbol name = SymbolTable::new_symbol(class_name->as_C_string() + 1,
|
||||
class_name->utf8_length() - 2);
|
||||
return resolve_instance_class_or_null(name, class_loader, protection_domain, THREAD);
|
||||
} else {
|
||||
return resolve_instance_class_or_null(class_name, class_loader, protection_domain, THREAD);
|
||||
assert(class_name != NULL && !Signature::is_array(class_name), "must be");
|
||||
if (Signature::has_envelope(class_name)) {
|
||||
ResourceMark rm(THREAD);
|
||||
// Ignore wrapping L and ;.
|
||||
TempNewSymbol name = SymbolTable::new_symbol(class_name->as_C_string() + 1,
|
||||
class_name->utf8_length() - 2);
|
||||
return resolve_instance_class_or_null(name, class_loader, protection_domain, THREAD);
|
||||
} else {
|
||||
return resolve_instance_class_or_null(class_name, class_loader, protection_domain, THREAD);
|
||||
}
|
||||
}
|
||||
}
|
||||
|
||||
@ -424,10 +416,10 @@ InstanceKlass* SystemDictionary::resolve_super_or_fail(Symbol* class_name,
|
||||
|
||||
// Resolve the superclass or superinterface, check results on return
|
||||
InstanceKlass* superk =
|
||||
SystemDictionary::resolve_instance_class_or_null_helper(super_name,
|
||||
class_loader,
|
||||
protection_domain,
|
||||
THREAD);
|
||||
SystemDictionary::resolve_instance_class_or_null(super_name,
|
||||
class_loader,
|
||||
protection_domain,
|
||||
THREAD);
|
||||
|
||||
// Clean up placeholder entry.
|
||||
{
|
||||
|
||||
@ -317,10 +317,6 @@ private:
|
||||
|
||||
private:
|
||||
// Basic loading operations
|
||||
static InstanceKlass* resolve_instance_class_or_null_helper(Symbol* name,
|
||||
Handle class_loader,
|
||||
Handle protection_domain,
|
||||
TRAPS);
|
||||
static InstanceKlass* resolve_instance_class_or_null(Symbol* class_name,
|
||||
Handle class_loader,
|
||||
Handle protection_domain, TRAPS);
|
||||
|
||||
Loading…
x
Reference in New Issue
Block a user