8174749: Use hash table/oops for MemberName table

Add a Java type called ResolvedMethodName which is immutable and can be stored in a hashtable, that is weakly collected by gc

Reviewed-by: sspitsyn, stefank, jrose
This commit is contained in:
Coleen Phillimore 2017-05-27 09:21:01 -04:00
parent f1f868513d
commit 6659245612
40 changed files with 800 additions and 383 deletions

View file

@ -668,7 +668,7 @@ C2V_VMENTRY(jobject, getResolvedJavaMethod, (JNIEnv *, jobject, jobject base, jl
oop base_object = JNIHandles::resolve(base);
if (base_object == NULL) {
method = *((Method**)(offset));
} else if (base_object->is_a(SystemDictionary::MemberName_klass())) {
} else if (base_object->is_a(SystemDictionary::ResolvedMethodName_klass())) {
method = (Method*) (intptr_t) base_object->long_field(offset);
} else if (base_object->is_a(SystemDictionary::HotSpotResolvedJavaMethodImpl_klass())) {
method = *((Method**)(HotSpotResolvedJavaMethodImpl::metaspaceMethod(base_object) + offset));