comparison src/share/vm/classfile/classFileParser.cpp @ 17998:ae92351815b6

8039150: host_klass invariant fails when verifying newly loaded JSR-292 anonymous classes Summary: Initialize host_klass while parsing the class with the other initializations. Reviewed-by: sspitsyn, stefank
author coleenp
date Fri, 20 Jun 2014 10:48:36 -0400
parents 366c198c896d
children 9f169829d0e1
comparison
equal deleted inserted replaced
17997:b334bc7ff73e 17998:ae92351815b6
4020 4020
4021 this_klass->set_minor_version(minor_version); 4021 this_klass->set_minor_version(minor_version);
4022 this_klass->set_major_version(major_version); 4022 this_klass->set_major_version(major_version);
4023 this_klass->set_has_default_methods(has_default_methods); 4023 this_klass->set_has_default_methods(has_default_methods);
4024 4024
4025 if (!host_klass.is_null()) {
4026 assert (this_klass->is_anonymous(), "should be the same");
4027 this_klass->set_host_klass(host_klass());
4028 }
4029
4025 // Set up Method*::intrinsic_id as soon as we know the names of methods. 4030 // Set up Method*::intrinsic_id as soon as we know the names of methods.
4026 // (We used to do this lazily, but now we query it in Rewriter, 4031 // (We used to do this lazily, but now we query it in Rewriter,
4027 // which is eagerly done for every method, so we might as well do it now, 4032 // which is eagerly done for every method, so we might as well do it now,
4028 // when everything is fresh in memory.) 4033 // when everything is fresh in memory.)
4029 if (Method::klass_id_for_intrinsics(this_klass()) != vmSymbols::NO_SID) { 4034 if (Method::klass_id_for_intrinsics(this_klass()) != vmSymbols::NO_SID) {