Mercurial > hg > graal-jvmci-8
diff src/share/vm/asm/codeBuffer.cpp @ 7409:30866cd626b0
8004883: NPG: clean up anonymous class fix
Summary: Add klass_holder() to return either mirror or class_loader depending on if the class is anonymous or not.
Reviewed-by: stefank, jrose
author | coleenp |
---|---|
date | Wed, 12 Dec 2012 11:39:29 -0500 |
parents | d2f8c38e543d |
children | 989155e2d07a a5de0cc2f91c |
line wrap: on
line diff
--- a/src/share/vm/asm/codeBuffer.cpp Fri Dec 07 10:55:16 2012 -0800 +++ b/src/share/vm/asm/codeBuffer.cpp Wed Dec 12 11:39:29 2012 -0500 @@ -496,21 +496,9 @@ dest->verify_section_allocation(); } -// Anonymous classes need mirror to keep the metadata alive but -// for regular classes, the class_loader is sufficient. +// Append an oop reference that keeps the class alive. static void append_oop_references(GrowableArray<oop>* oops, Klass* k) { - if (k->oop_is_instance()) { - InstanceKlass* ik = InstanceKlass::cast(k); - if (ik->is_anonymous()) { - oop o = ik->java_mirror(); - assert (o != NULL, "should have a mirror"); - if (!oops->contains(o)) { - oops->append(o); - } - return; // only need the mirror - } - } - oop cl = k->class_loader(); + oop cl = k->klass_holder(); if (cl != NULL && !oops->contains(cl)) { oops->append(cl); }