Mercurial > hg > graal-compiler
comparison src/share/vm/classfile/classFileParser.cpp @ 5998:49036505ab5f
7154670: The instanceKlass _implementors[] and _nof_implementors are not needed for non-interface klass.
Summary: Change implementor to embedded instanceKlass field.
Reviewed-by: sspitsyn, minqi, coleenp
author | jiangli |
---|---|
date | Thu, 29 Mar 2012 22:18:56 -0400 |
parents | f7c4174b33ba |
children | 08f8d00f2ae3 |
comparison
equal
deleted
inserted
replaced
5970:0698f5ef5535 | 5998:49036505ab5f |
---|---|
1 /* | 1 /* |
2 * Copyright (c) 1997, 2011, Oracle and/or its affiliates. All rights reserved. | 2 * Copyright (c) 1997, 2012, Oracle and/or its affiliates. All rights reserved. |
3 * DO NOT ALTER OR REMOVE COPYRIGHT NOTICES OR THIS FILE HEADER. | 3 * DO NOT ALTER OR REMOVE COPYRIGHT NOTICES OR THIS FILE HEADER. |
4 * | 4 * |
5 * This code is free software; you can redistribute it and/or modify it | 5 * This code is free software; you can redistribute it and/or modify it |
6 * under the terms of the GNU General Public License version 2 only, as | 6 * under the terms of the GNU General Public License version 2 only, as |
7 * published by the Free Software Foundation. | 7 * published by the Free Software Foundation. |
3352 | 3352 |
3353 // We can now create the basic klassOop for this klass | 3353 // We can now create the basic klassOop for this klass |
3354 klassOop ik = oopFactory::new_instanceKlass(name, vtable_size, itable_size, | 3354 klassOop ik = oopFactory::new_instanceKlass(name, vtable_size, itable_size, |
3355 static_field_size, | 3355 static_field_size, |
3356 total_oop_map_count, | 3356 total_oop_map_count, |
3357 access_flags, | |
3357 rt, CHECK_(nullHandle)); | 3358 rt, CHECK_(nullHandle)); |
3358 instanceKlassHandle this_klass (THREAD, ik); | 3359 instanceKlassHandle this_klass (THREAD, ik); |
3359 | 3360 |
3360 assert(this_klass->static_field_size() == static_field_size, "sanity"); | 3361 assert(this_klass->static_field_size() == static_field_size, "sanity"); |
3361 assert(this_klass->nonstatic_oop_map_count() == total_oop_map_count, | 3362 assert(this_klass->nonstatic_oop_map_count() == total_oop_map_count, |
3362 "sanity"); | 3363 "sanity"); |
3363 | 3364 |
3364 // Fill in information already parsed | 3365 // Fill in information already parsed |
3365 this_klass->set_access_flags(access_flags); | |
3366 this_klass->set_should_verify_class(verify); | 3366 this_klass->set_should_verify_class(verify); |
3367 jint lh = Klass::instance_layout_helper(instance_size, false); | 3367 jint lh = Klass::instance_layout_helper(instance_size, false); |
3368 this_klass->set_layout_helper(lh); | 3368 this_klass->set_layout_helper(lh); |
3369 assert(this_klass->oop_is_instance(), "layout is correct"); | 3369 assert(this_klass->oop_is_instance(), "layout is correct"); |
3370 assert(this_klass->size_helper() == instance_size, "correct size_helper"); | 3370 assert(this_klass->size_helper() == instance_size, "correct size_helper"); |