278 static Klass* resolve_or_null(Symbol* class_name, TRAPS); |
278 static Klass* resolve_or_null(Symbol* class_name, TRAPS); |
279 |
279 |
280 // Resolve a superclass or superinterface. Called from ClassFileParser, |
280 // Resolve a superclass or superinterface. Called from ClassFileParser, |
281 // parse_interfaces, resolve_instance_class_or_null, load_shared_class |
281 // parse_interfaces, resolve_instance_class_or_null, load_shared_class |
282 // "child_name" is the class whose super class or interface is being resolved. |
282 // "child_name" is the class whose super class or interface is being resolved. |
283 static Klass* resolve_super_or_fail(Symbol* child_name, |
283 static InstanceKlass* resolve_super_or_fail(Symbol* child_name, |
284 Symbol* class_name, |
284 Symbol* class_name, |
285 Handle class_loader, |
285 Handle class_loader, |
286 Handle protection_domain, |
286 Handle protection_domain, |
287 bool is_superclass, |
287 bool is_superclass, |
288 TRAPS); |
288 TRAPS); |
289 |
289 |
290 // Parse new stream. This won't update the dictionary or |
290 // Parse new stream. This won't update the dictionary or |
291 // class hierarchy, simply parse the stream. Used by JVMTI RedefineClasses. |
291 // class hierarchy, simply parse the stream. Used by JVMTI RedefineClasses. |
292 // Also used by Unsafe_DefineAnonymousClass |
292 // Also used by Unsafe_DefineAnonymousClass |
293 static InstanceKlass* parse_stream(Symbol* class_name, |
293 static InstanceKlass* parse_stream(Symbol* class_name, |
636 static LoaderConstraintTable* constraints() { return _loader_constraints; } |
636 static LoaderConstraintTable* constraints() { return _loader_constraints; } |
637 static ResolutionErrorTable* resolution_errors() { return _resolution_errors; } |
637 static ResolutionErrorTable* resolution_errors() { return _resolution_errors; } |
638 static SymbolPropertyTable* invoke_method_table() { return _invoke_method_table; } |
638 static SymbolPropertyTable* invoke_method_table() { return _invoke_method_table; } |
639 |
639 |
640 // Basic loading operations |
640 // Basic loading operations |
641 static Klass* resolve_instance_class_or_null(Symbol* class_name, Handle class_loader, Handle protection_domain, TRAPS); |
641 static InstanceKlass* resolve_instance_class_or_null_helper(Symbol* name, |
|
642 Handle class_loader, |
|
643 Handle protection_domain, |
|
644 TRAPS); |
|
645 static InstanceKlass* resolve_instance_class_or_null(Symbol* class_name, Handle class_loader, Handle protection_domain, TRAPS); |
642 static Klass* resolve_array_class_or_null(Symbol* class_name, Handle class_loader, Handle protection_domain, TRAPS); |
646 static Klass* resolve_array_class_or_null(Symbol* class_name, Handle class_loader, Handle protection_domain, TRAPS); |
643 static InstanceKlass* handle_parallel_super_load(Symbol* class_name, Symbol* supername, Handle class_loader, Handle protection_domain, Handle lockObject, TRAPS); |
647 static InstanceKlass* handle_parallel_super_load(Symbol* class_name, Symbol* supername, Handle class_loader, Handle protection_domain, Handle lockObject, TRAPS); |
644 // Wait on SystemDictionary_lock; unlocks lockObject before |
648 // Wait on SystemDictionary_lock; unlocks lockObject before |
645 // waiting; relocks lockObject with correct recursion count |
649 // waiting; relocks lockObject with correct recursion count |
646 // after waiting, but before reentering SystemDictionary_lock |
650 // after waiting, but before reentering SystemDictionary_lock |