Mercurial > hg > truffle
comparison src/share/vm/graal/graalCompilerToVM.cpp @ 13295:903fd774dd61
simplified implementation of HotSpotResolvedObjectType.getClassInitializer()
author | Doug Simon <doug.simon@oracle.com> |
---|---|
date | Wed, 11 Dec 2013 20:46:25 +0100 |
parents | b23cbfb4366a |
children | a63d65b682a8 |
comparison
equal
deleted
inserted
replaced
13294:29907e69ae8d | 13295:903fd774dd61 |
---|---|
467 field_array->obj_at_put(i, fields.at(i)()); | 467 field_array->obj_at_put(i, fields.at(i)()); |
468 } | 468 } |
469 return JNIHandles::make_local(THREAD, field_array()); | 469 return JNIHandles::make_local(THREAD, field_array()); |
470 C2V_END | 470 C2V_END |
471 | 471 |
472 C2V_VMENTRY(jobject, getMethods, (JNIEnv *, jobject, jobject klass)) | 472 C2V_VMENTRY(jlong, getClassInitializer, (JNIEnv *, jobject, jobject klass)) |
473 ResourceMark rm; | |
474 | |
475 instanceKlassHandle k(THREAD, java_lang_Class::as_Klass(HotSpotResolvedObjectType::javaClass(klass))); | 473 instanceKlassHandle k(THREAD, java_lang_Class::as_Klass(HotSpotResolvedObjectType::javaClass(klass))); |
476 Array<Method*>* methods = k->methods(); | 474 Method* clinit = k->class_initializer(); |
477 int methods_length = methods->length(); | 475 return (jlong) (address) clinit; |
478 | |
479 // Allocate result | |
480 objArrayOop r = oopFactory::new_objArray(SystemDictionary::HotSpotResolvedJavaMethod_klass(), methods_length, CHECK_NULL); | |
481 objArrayHandle result (THREAD, r); | |
482 | |
483 for (int i = 0; i < methods_length; i++) { | |
484 methodHandle method(THREAD, methods->at(i)); | |
485 Handle holder = JNIHandles::resolve(klass); | |
486 oop m = VMToCompiler::createResolvedJavaMethod(holder, method(), THREAD); | |
487 result->obj_at_put(i, m); | |
488 } | |
489 | |
490 return JNIHandles::make_local(THREAD, result()); | |
491 C2V_END | 476 C2V_END |
492 | 477 |
493 C2V_VMENTRY(jlong, getMaxCallTargetOffset, (JNIEnv *env, jobject, jlong addr)) | 478 C2V_VMENTRY(jlong, getMaxCallTargetOffset, (JNIEnv *env, jobject, jlong addr)) |
494 address target_addr = (address) addr; | 479 address target_addr = (address) addr; |
495 if (target_addr != 0x0) { | 480 if (target_addr != 0x0) { |
964 {CC"lookupTypeInPool", CC"("METASPACE_CONSTANT_POOL"I)"TYPE, FN_PTR(lookupTypeInPool)}, | 949 {CC"lookupTypeInPool", CC"("METASPACE_CONSTANT_POOL"I)"TYPE, FN_PTR(lookupTypeInPool)}, |
965 {CC"lookupReferencedTypeInPool", CC"("METASPACE_CONSTANT_POOL"IB)V", FN_PTR(lookupReferencedTypeInPool)}, | 950 {CC"lookupReferencedTypeInPool", CC"("METASPACE_CONSTANT_POOL"IB)V", FN_PTR(lookupReferencedTypeInPool)}, |
966 {CC"lookupFieldInPool", CC"("METASPACE_CONSTANT_POOL"IB)"FIELD, FN_PTR(lookupFieldInPool)}, | 951 {CC"lookupFieldInPool", CC"("METASPACE_CONSTANT_POOL"IB)"FIELD, FN_PTR(lookupFieldInPool)}, |
967 {CC"resolveMethod", CC"("HS_RESOLVED_TYPE STRING STRING")"METHOD, FN_PTR(resolveMethod)}, | 952 {CC"resolveMethod", CC"("HS_RESOLVED_TYPE STRING STRING")"METHOD, FN_PTR(resolveMethod)}, |
968 {CC"getInstanceFields", CC"("HS_RESOLVED_TYPE")["HS_RESOLVED_FIELD, FN_PTR(getInstanceFields)}, | 953 {CC"getInstanceFields", CC"("HS_RESOLVED_TYPE")["HS_RESOLVED_FIELD, FN_PTR(getInstanceFields)}, |
969 {CC"getMethods", CC"("HS_RESOLVED_TYPE")["HS_RESOLVED_METHOD, FN_PTR(getMethods)}, | 954 {CC"getClassInitializer", CC"("HS_RESOLVED_TYPE")"METASPACE_METHOD, FN_PTR(getClassInitializer)}, |
970 {CC"hasFinalizableSubclass", CC"("HS_RESOLVED_TYPE")Z", FN_PTR(hasFinalizableSubclass)}, | 955 {CC"hasFinalizableSubclass", CC"("HS_RESOLVED_TYPE")Z", FN_PTR(hasFinalizableSubclass)}, |
971 {CC"getMaxCallTargetOffset", CC"(J)J", FN_PTR(getMaxCallTargetOffset)}, | 956 {CC"getMaxCallTargetOffset", CC"(J)J", FN_PTR(getMaxCallTargetOffset)}, |
972 {CC"getMetaspaceMethod", CC"("CLASS"I)"METASPACE_METHOD, FN_PTR(getMetaspaceMethod)}, | 957 {CC"getMetaspaceMethod", CC"("CLASS"I)"METASPACE_METHOD, FN_PTR(getMetaspaceMethod)}, |
973 {CC"initializeConfiguration", CC"("HS_CONFIG")V", FN_PTR(initializeConfiguration)}, | 958 {CC"initializeConfiguration", CC"("HS_CONFIG")V", FN_PTR(initializeConfiguration)}, |
974 {CC"installCode0", CC"("HS_COMPILED_CODE HS_INSTALLED_CODE"[Z)I", FN_PTR(installCode0)}, | 959 {CC"installCode0", CC"("HS_COMPILED_CODE HS_INSTALLED_CODE"[Z)I", FN_PTR(installCode0)}, |