< prev index next >
src/share/vm/jvmci/jvmciEnv.hpp
Print this page
rev 9302 : 8142329: [JVMCI] pass Handle by value
rev 9298 : 8142329: [JVMCI] pass Handle by value
rev 9037 : 8136421: JEP 243: Java-Level JVM Compiler Interface
Reviewed-by: ihse, alanb, roland, coleenp, iveresov, kvn, kbarrett
*** 76,99 ****
// Return an unloaded klass if !require_local and no class at all is found.
//
// The CI treats a klass as loaded if it is consistently defined in
// another loader, even if it hasn't yet been loaded in all loaders
// that could potentially see it via delegation.
! static KlassHandle get_klass_by_name(KlassHandle& accessing_klass,
Symbol* klass_name,
bool require_local);
// Constant pool access.
! static KlassHandle get_klass_by_index(constantPoolHandle& cpool,
int klass_index,
bool& is_accessible,
! KlassHandle& loading_klass);
! static void get_field_by_index(instanceKlassHandle& loading_klass, fieldDescriptor& fd,
int field_index);
! static methodHandle get_method_by_index(constantPoolHandle& cpool,
int method_index, Bytecodes::Code bc,
! instanceKlassHandle& loading_klass);
JVMCIEnv(CompileTask* task, int system_dictionary_modification_counter);
private:
CompileTask* _task;
--- 76,99 ----
// Return an unloaded klass if !require_local and no class at all is found.
//
// The CI treats a klass as loaded if it is consistently defined in
// another loader, even if it hasn't yet been loaded in all loaders
// that could potentially see it via delegation.
! static KlassHandle get_klass_by_name(KlassHandle accessing_klass,
Symbol* klass_name,
bool require_local);
// Constant pool access.
! static KlassHandle get_klass_by_index(const constantPoolHandle& cpool,
int klass_index,
bool& is_accessible,
! KlassHandle loading_klass);
! static void get_field_by_index(instanceKlassHandle loading_klass, fieldDescriptor& fd,
int field_index);
! static methodHandle get_method_by_index(const constantPoolHandle& cpool,
int method_index, Bytecodes::Code bc,
! instanceKlassHandle loading_klass);
JVMCIEnv(CompileTask* task, int system_dictionary_modification_counter);
private:
CompileTask* _task;
*** 103,130 ****
bool _jvmti_can_hotswap_or_post_breakpoint;
bool _jvmti_can_access_local_variables;
bool _jvmti_can_post_on_exceptions;
// Implementation methods for loading and constant pool access.
! static KlassHandle get_klass_by_name_impl(KlassHandle& accessing_klass,
! constantPoolHandle& cpool,
Symbol* klass_name,
bool require_local);
! static KlassHandle get_klass_by_index_impl(constantPoolHandle& cpool,
int klass_index,
bool& is_accessible,
! KlassHandle& loading_klass);
! static void get_field_by_index_impl(instanceKlassHandle& loading_klass, fieldDescriptor& fd,
int field_index);
! static methodHandle get_method_by_index_impl(constantPoolHandle& cpool,
int method_index, Bytecodes::Code bc,
! instanceKlassHandle& loading_klass);
// Helper methods
static bool check_klass_accessibility(KlassHandle accessing_klass, KlassHandle resolved_klass);
! static methodHandle lookup_method(instanceKlassHandle& accessor,
! instanceKlassHandle& holder,
Symbol* name,
Symbol* sig,
Bytecodes::Code bc);
private:
--- 103,130 ----
bool _jvmti_can_hotswap_or_post_breakpoint;
bool _jvmti_can_access_local_variables;
bool _jvmti_can_post_on_exceptions;
// Implementation methods for loading and constant pool access.
! static KlassHandle get_klass_by_name_impl(KlassHandle accessing_klass,
! const constantPoolHandle& cpool,
Symbol* klass_name,
bool require_local);
! static KlassHandle get_klass_by_index_impl(const constantPoolHandle& cpool,
int klass_index,
bool& is_accessible,
! KlassHandle loading_klass);
! static void get_field_by_index_impl(instanceKlassHandle loading_klass, fieldDescriptor& fd,
int field_index);
! static methodHandle get_method_by_index_impl(const constantPoolHandle& cpool,
int method_index, Bytecodes::Code bc,
! instanceKlassHandle loading_klass);
// Helper methods
static bool check_klass_accessibility(KlassHandle accessing_klass, KlassHandle resolved_klass);
! static methodHandle lookup_method(instanceKlassHandle accessor,
! instanceKlassHandle holder,
Symbol* name,
Symbol* sig,
Bytecodes::Code bc);
private:
*** 140,150 ****
public:
CompileTask* task() { return _task; }
// Register the result of a compilation.
static JVMCIEnv::CodeInstallResult register_method(
! methodHandle& target,
nmethod*& nm,
int entry_bci,
CodeOffsets* offsets,
int orig_pc_offset,
CodeBuffer* code_buffer,
--- 140,150 ----
public:
CompileTask* task() { return _task; }
// Register the result of a compilation.
static JVMCIEnv::CodeInstallResult register_method(
! const methodHandle& target,
nmethod*& nm,
int entry_bci,
CodeOffsets* offsets,
int orig_pc_offset,
CodeBuffer* code_buffer,
*** 164,172 ****
// converts the Klass* representing the holder of a method into a
// InstanceKlass*. This is needed since the holder of a method in
// the bytecodes could be an array type. Basically this converts
// array types into java/lang/Object and other types stay as they are.
! static instanceKlassHandle get_instance_klass_for_declared_method_holder(KlassHandle& klass);
};
#endif // SHARE_VM_JVMCI_JVMCIENV_HPP
--- 164,172 ----
// converts the Klass* representing the holder of a method into a
// InstanceKlass*. This is needed since the holder of a method in
// the bytecodes could be an array type. Basically this converts
// array types into java/lang/Object and other types stay as they are.
! static instanceKlassHandle get_instance_klass_for_declared_method_holder(KlassHandle klass);
};
#endif // SHARE_VM_JVMCI_JVMCIENV_HPP
< prev index next >