< 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 >