8039150: host_klass invariant fails when verifying newly loaded JSR-292 anonymous classes
Initialize host_klass while parsing the class with the other initializations. Reviewed-by: sspitsyn, stefank
This commit is contained in:
parent
02f3dbb898
commit
cef2b3be11
hotspot/src/share/vm/classfile
@ -4070,6 +4070,11 @@ instanceKlassHandle ClassFileParser::parseClassFile(Symbol* name,
|
||||
this_klass->set_major_version(major_version);
|
||||
this_klass->set_has_default_methods(has_default_methods);
|
||||
|
||||
if (!host_klass.is_null()) {
|
||||
assert (this_klass->is_anonymous(), "should be the same");
|
||||
this_klass->set_host_klass(host_klass());
|
||||
}
|
||||
|
||||
// Set up Method*::intrinsic_id as soon as we know the names of methods.
|
||||
// (We used to do this lazily, but now we query it in Rewriter,
|
||||
// which is eagerly done for every method, so we might as well do it now,
|
||||
|
@ -997,7 +997,6 @@ Klass* SystemDictionary::parse_stream(Symbol* class_name,
|
||||
|
||||
|
||||
if (host_klass.not_null() && k.not_null()) {
|
||||
k->set_host_klass(host_klass());
|
||||
// If it's anonymous, initialize it now, since nobody else will.
|
||||
|
||||
{
|
||||
|
Loading…
x
Reference in New Issue
Block a user