src/hotspot/share/jvmci/jvmciCompilerToVM.cpp
Index Unified diffs Context diffs Sdiffs Wdiffs Patch New Old Previous File Next File open Sdiff src/hotspot/share/jvmci

src/hotspot/share/jvmci/jvmciCompilerToVM.cpp

Print this page




 540   JVMCIObject sym = JVMCIENV->create_string(cp->name_ref_at(which), JVMCI_CHECK_NULL);
 541   return JVMCIENV->get_jobject(sym);
 542 C2V_END
 543 
 544 C2V_VMENTRY(jobject, lookupSignatureInPool, (JNIEnv* env, jobject, jobject jvmci_constant_pool, jint which))
 545   constantPoolHandle cp = JVMCIENV->asConstantPool(jvmci_constant_pool);
 546   JVMCIObject sym = JVMCIENV->create_string(cp->signature_ref_at(which), JVMCI_CHECK_NULL);
 547   return JVMCIENV->get_jobject(sym);
 548 C2V_END
 549 
 550 C2V_VMENTRY(jint, lookupKlassRefIndexInPool, (JNIEnv* env, jobject, jobject jvmci_constant_pool, jint index))
 551   constantPoolHandle cp = JVMCIENV->asConstantPool(jvmci_constant_pool);
 552   return cp->klass_ref_index_at(index);
 553 C2V_END
 554 
 555 C2V_VMENTRY(jobject, resolveTypeInPool, (JNIEnv* env, jobject, jobject jvmci_constant_pool, jint index))
 556   constantPoolHandle cp = JVMCIENV->asConstantPool(jvmci_constant_pool);
 557   Klass* klass = cp->klass_at(index, CHECK_NULL);
 558   JVMCIKlassHandle resolved_klass(THREAD, klass);
 559   if (resolved_klass->is_instance_klass()) {
 560     InstanceKlass::cast(resolved_klass())->link_class_or_fail(THREAD);



 561   }
 562   JVMCIObject klassObject = JVMCIENV->get_jvmci_type(resolved_klass, JVMCI_CHECK_NULL);
 563   return JVMCIENV->get_jobject(klassObject);
 564 C2V_END
 565 
 566 C2V_VMENTRY(jobject, lookupKlassInPool, (JNIEnv* env, jobject, jobject jvmci_constant_pool, jint index, jbyte opcode))
 567   constantPoolHandle cp = JVMCIENV->asConstantPool(jvmci_constant_pool);
 568   Klass* loading_klass = cp->pool_holder();
 569   bool is_accessible = false;
 570   JVMCIKlassHandle klass(THREAD, JVMCIRuntime::get_klass_by_index(cp, index, is_accessible, loading_klass));
 571   Symbol* symbol = NULL;
 572   if (klass.is_null()) {
 573     constantTag tag = cp->tag_at(index);
 574     if (tag.is_klass()) {
 575       // The klass has been inserted into the constant pool
 576       // very recently.
 577       klass = cp->resolved_klass_at(index);
 578     } else if (tag.is_symbol()) {
 579       symbol = cp->symbol_at(index);
 580     } else {




 540   JVMCIObject sym = JVMCIENV->create_string(cp->name_ref_at(which), JVMCI_CHECK_NULL);
 541   return JVMCIENV->get_jobject(sym);
 542 C2V_END
 543 
 544 C2V_VMENTRY(jobject, lookupSignatureInPool, (JNIEnv* env, jobject, jobject jvmci_constant_pool, jint which))
 545   constantPoolHandle cp = JVMCIENV->asConstantPool(jvmci_constant_pool);
 546   JVMCIObject sym = JVMCIENV->create_string(cp->signature_ref_at(which), JVMCI_CHECK_NULL);
 547   return JVMCIENV->get_jobject(sym);
 548 C2V_END
 549 
 550 C2V_VMENTRY(jint, lookupKlassRefIndexInPool, (JNIEnv* env, jobject, jobject jvmci_constant_pool, jint index))
 551   constantPoolHandle cp = JVMCIENV->asConstantPool(jvmci_constant_pool);
 552   return cp->klass_ref_index_at(index);
 553 C2V_END
 554 
 555 C2V_VMENTRY(jobject, resolveTypeInPool, (JNIEnv* env, jobject, jobject jvmci_constant_pool, jint index))
 556   constantPoolHandle cp = JVMCIENV->asConstantPool(jvmci_constant_pool);
 557   Klass* klass = cp->klass_at(index, CHECK_NULL);
 558   JVMCIKlassHandle resolved_klass(THREAD, klass);
 559   if (resolved_klass->is_instance_klass()) {
 560     bool linked = InstanceKlass::cast(resolved_klass())->link_class_or_fail(CHECK_NULL);
 561     if (!linked) {
 562       return NULL;
 563     }
 564   }
 565   JVMCIObject klassObject = JVMCIENV->get_jvmci_type(resolved_klass, JVMCI_CHECK_NULL);
 566   return JVMCIENV->get_jobject(klassObject);
 567 C2V_END
 568 
 569 C2V_VMENTRY(jobject, lookupKlassInPool, (JNIEnv* env, jobject, jobject jvmci_constant_pool, jint index, jbyte opcode))
 570   constantPoolHandle cp = JVMCIENV->asConstantPool(jvmci_constant_pool);
 571   Klass* loading_klass = cp->pool_holder();
 572   bool is_accessible = false;
 573   JVMCIKlassHandle klass(THREAD, JVMCIRuntime::get_klass_by_index(cp, index, is_accessible, loading_klass));
 574   Symbol* symbol = NULL;
 575   if (klass.is_null()) {
 576     constantTag tag = cp->tag_at(index);
 577     if (tag.is_klass()) {
 578       // The klass has been inserted into the constant pool
 579       // very recently.
 580       klass = cp->resolved_klass_at(index);
 581     } else if (tag.is_symbol()) {
 582       symbol = cp->symbol_at(index);
 583     } else {


src/hotspot/share/jvmci/jvmciCompilerToVM.cpp
Index Unified diffs Context diffs Sdiffs Wdiffs Patch New Old Previous File Next File