#include <class_member.h>
Inheritance diagram for Method:
Public Types | |
enum | State { ST_NotCompiled, ST_NotLinked = ST_NotCompiled, ST_Compiled, ST_Linked = ST_Compiled } |
Public Member Functions | |
State | get_state () |
void | set_state (State st) |
unsigned | num_bc_exception_handlers () const |
Handler * | get_bc_exception_handler_info (unsigned eh_number) |
void | set_num_target_exception_handlers (JIT *jit, unsigned n) |
unsigned | get_num_target_exception_handlers (JIT *jit) |
void | set_target_exception_handler_info (JIT *jit, unsigned eh_number, void *start_ip, void *end_ip, void *handler_ip, Class *catch_clss, bool exc_obj_is_dead=false) |
Target_Exception_Handler_Ptr | get_target_exception_handler_info (JIT *jit, unsigned eh_num) |
unsigned | num_exceptions_method_can_throw () |
String * | get_exception_name (int n) |
const Byte * | get_byte_code_addr () |
unsigned | get_byte_code_size () |
unsigned | get_max_stack () |
unsigned | get_max_locals () |
Arg_List_Iterator | get_argument_list () |
unsigned | get_num_arg_slots () const |
unsigned | get_num_args () |
unsigned | get_num_ref_args () |
Java_Type | get_return_java_type () |
Class * | get_return_class_type () |
void * | get_indirect_address () |
void * | get_code_addr () |
void | set_code_addr (void *code_addr) |
void | add_vtable_patch (void *) |
void | apply_vtable_patches () |
NativeCodePtr | get_registered_native_func () |
void | set_registered_native_func (NativeCodePtr native_func) |
void * | allocate_code_block_mt (size_t size, size_t alignment, JIT *jit, unsigned heat, int id, Code_Allocation_Action action) |
This returns a block for jitted code. | |
void * | allocate_rw_data_block (size_t size, size_t alignment, JIT *jit) |
void * | allocate_jit_info_block (size_t size, JIT *jit) |
void * | allocate_JIT_data_block (size_t size, JIT *jit, size_t alignment) |
CodeChunkInfo * | get_first_JIT_specific_info () |
CodeChunkInfo * | get_JIT_specific_info_no_create (JIT *jit) |
CodeChunkInfo * | get_chunk_info_mt (JIT *jit, int id) |
Find a chunk info for specific JIT. | |
CodeChunkInfo * | get_chunk_info_no_create_mt (JIT *jit, int id) |
Find a chunk info for specific JIT, or NULL if no chunk info is created for this JIT. | |
CodeChunkInfo * | create_code_chunk_info_mt () |
Allocate a new chunk info. | |
void | register_jit_overridden_method_callback (JIT *jit_to_be_notified, void *callback_data) |
void | do_jit_overridden_method_callbacks (Method *overriding_method) |
void | register_jit_recompiled_method_callback (JIT *jit_to_be_notified, void *callback_data) |
void | do_jit_recompiled_method_callbacks () |
Method_Side_Effects | get_side_effects () |
void | set_side_effects (Method_Side_Effects mse) |
Method_Signature * | get_method_sig () |
void | set_method_sig (Method_Signature *msig) |
void | set_position_in_vtable (unsigned index, unsigned offset) |
Sets index in vtable and offset from the base of vtable for this method. | |
Method () | |
void | MethodClearInternals () |
bool | is_synchronized () |
bool | is_native () |
bool | is_abstract () |
bool | is_varargs () |
bool | is_bridge () |
bool | is_init () |
bool | is_clinit () |
bool | is_finalize () |
bool | is_overridden () |
Boolean | is_nop () |
unsigned | get_index () |
bool | is_fake_method () |
Method * | get_real_intf_method () |
bool | parse (Global_Env &env, Class *clss, ByteReader &cfs, bool is_trusted_cl) |
void | calculate_arguments_slot_num () |
unsigned | calculate_size () |
unsigned | get_num_param_annotations () |
AnnotationTable * | get_param_annotations (unsigned index) |
unsigned | get_num_invisible_param_annotations () |
AnnotationTable * | get_invisible_param_annotations (unsigned index) |
AnnotationValue * | get_default_value () |
InlineInfo * | get_inline_info () |
Gets inlined methods information. | |
void | add_inline_info_entry (Method *method, uint32 codeSize, void *codeAddr, uint32 mapLength, AddrLocation *addrLocationMap) |
Adds information about inlined method. | |
void | send_inlined_method_load_events (Method *method) |
Sends JVMTI_EVENT_COMPILED_METHOD_LOAD event for every inline method recorded in this InlineInfo object. | |
unsigned | get_line_number_table_size () |
bool | get_line_number_entry (unsigned index, jlong *pc, jint *line) |
unsigned | get_local_var_table_size () |
bool | get_local_var_entry (unsigned index, jlong *pc, jint *length, jint *slot, String **name, String **type, String **generic_type) |
int | get_line_number (uint16 bc) |
void | set_inline_assumption (JIT *jit, Method *caller) |
void | method_was_overridden () |
void | lock () |
void | unlock () |
uint32 | get_pending_breakpoints () |
void | insert_pending_breakpoint () |
void | remove_pending_breakpoint () |
uint8 * | get_stackmap () |
Public Attributes | |
Inline_Record * | inline_records |
Method_Change_Notification_Record * | _notify_override_records |
Method_Change_Notification_Record * | _notify_recompiled_records |
uint8 * | m_stackmap |
unsigned | is_init: 1 |
unsigned | is_clinit: 1 |
unsigned | is_finalize: 1 |
unsigned | is_overridden: 1 |
unsigned | is_nop: 1 |
Friends | |
void | add_new_fake_method (Class *clss, Class *example, unsigned *next) |
void | add_any_fake_methods (Class *clss) |
Classes | |
struct | LocalVarOffset |
enum Method::State |
Method.Method | ( | ) |
State Method.get_state | ( | ) |
void Method.set_state | ( | State | st | ) |
unsigned Method.num_bc_exception_handlers | ( | ) | const |
Handler* Method.get_bc_exception_handler_info | ( | unsigned | eh_number | ) |
void Method.set_num_target_exception_handlers | ( | JIT * | jit, | |
unsigned | n | |||
) |
unsigned Method.get_num_target_exception_handlers | ( | JIT * | jit | ) |
void Method.set_target_exception_handler_info | ( | JIT * | jit, | |
unsigned | eh_number, | |||
void * | start_ip, | |||
void * | end_ip, | |||
void * | handler_ip, | |||
Class * | catch_clss, | |||
bool | exc_obj_is_dead = false | |||
) |
Target_Exception_Handler_Ptr Method.get_target_exception_handler_info | ( | JIT * | jit, | |
unsigned | eh_num | |||
) |
unsigned Method.num_exceptions_method_can_throw | ( | ) |
String* Method.get_exception_name | ( | int | n | ) |
const Byte* Method.get_byte_code_addr | ( | ) |
unsigned Method.get_byte_code_size | ( | ) |
unsigned Method.get_max_stack | ( | ) |
unsigned Method.get_max_locals | ( | ) |
Arg_List_Iterator Method.get_argument_list | ( | ) |
unsigned Method.get_num_arg_slots | ( | ) | const |
unsigned Method.get_num_args | ( | ) |
unsigned Method.get_num_ref_args | ( | ) |
Java_Type Method.get_return_java_type | ( | ) |
Class* Method.get_return_class_type | ( | ) |
void* Method.get_indirect_address | ( | ) |
void* Method.get_code_addr | ( | ) |
void Method.set_code_addr | ( | void * | code_addr | ) |
void Method.add_vtable_patch | ( | void * | ) |
void Method.apply_vtable_patches | ( | ) |
NativeCodePtr Method.get_registered_native_func | ( | ) |
void Method.set_registered_native_func | ( | NativeCodePtr | native_func | ) |
void* Method.allocate_code_block_mt | ( | size_t | size, | |
size_t | alignment, | |||
JIT * | jit, | |||
unsigned | heat, | |||
int | id, | |||
Code_Allocation_Action | action | |||
) |
This returns a block for jitted code.
It is not used for native methods. It is safe to call this function from multiple threads.
void* Method.allocate_rw_data_block | ( | size_t | size, | |
size_t | alignment, | |||
JIT * | jit | |||
) |
void* Method.allocate_jit_info_block | ( | size_t | size, | |
JIT * | jit | |||
) |
void* Method.allocate_JIT_data_block | ( | size_t | size, | |
JIT * | jit, | |||
size_t | alignment | |||
) |
CodeChunkInfo* Method.get_first_JIT_specific_info | ( | ) |
CodeChunkInfo* Method.get_JIT_specific_info_no_create | ( | JIT * | jit | ) |
CodeChunkInfo* Method.get_chunk_info_mt | ( | JIT * | jit, | |
int | id | |||
) |
Find a chunk info for specific JIT.
If no chunk exist for this JIT, create and return one. This method is safe to call from multiple threads.
CodeChunkInfo* Method.get_chunk_info_no_create_mt | ( | JIT * | jit, | |
int | id | |||
) |
Find a chunk info for specific JIT, or NULL
if no chunk info is created for this JIT.
This method is safe to call from multiple threads.
CodeChunkInfo* Method.create_code_chunk_info_mt | ( | ) |
Allocate a new chunk info.
This method is safe to call from multiple threads.
void Method.register_jit_overridden_method_callback | ( | JIT * | jit_to_be_notified, | |
void * | callback_data | |||
) |
void Method.do_jit_overridden_method_callbacks | ( | Method * | overriding_method | ) |
void Method.register_jit_recompiled_method_callback | ( | JIT * | jit_to_be_notified, | |
void * | callback_data | |||
) |
void Method.do_jit_recompiled_method_callbacks | ( | ) |
Method_Side_Effects Method.get_side_effects | ( | ) |
void Method.set_side_effects | ( | Method_Side_Effects | mse | ) |
Method_Signature* Method.get_method_sig | ( | ) |
void Method.set_method_sig | ( | Method_Signature * | msig | ) |
void Method.set_position_in_vtable | ( | unsigned | index, | |
unsigned | offset | |||
) |
Sets index in vtable and offset from the base of vtable for this method.
index | - index in vtable | |
offset | - for instance methods: offset from the base of vtable |
void Method.MethodClearInternals | ( | ) |
bool Method.is_synchronized | ( | ) |
bool Method.is_native | ( | ) |
bool Method.is_abstract | ( | ) |
bool Method.is_varargs | ( | ) |
bool Method.is_bridge | ( | ) |
bool Method.is_init | ( | ) |
bool Method.is_clinit | ( | ) |
bool Method.is_finalize | ( | ) |
bool Method.is_overridden | ( | ) |
Boolean Method.is_nop | ( | ) |
unsigned Method.get_index | ( | ) |
bool Method.is_fake_method | ( | ) |
Method* Method.get_real_intf_method | ( | ) |
bool Method.parse | ( | Global_Env & | env, | |
Class * | clss, | |||
ByteReader & | cfs, | |||
bool | is_trusted_cl | |||
) |
void Method.calculate_arguments_slot_num | ( | ) |
unsigned Method.calculate_size | ( | ) |
unsigned Method.get_num_param_annotations | ( | ) |
AnnotationTable* Method.get_param_annotations | ( | unsigned | index | ) |
unsigned Method.get_num_invisible_param_annotations | ( | ) |
AnnotationTable* Method.get_invisible_param_annotations | ( | unsigned | index | ) |
AnnotationValue* Method.get_default_value | ( | ) |
InlineInfo* Method.get_inline_info | ( | ) |
Gets inlined methods information.
void Method.add_inline_info_entry | ( | Method * | method, | |
uint32 | codeSize, | |||
void * | codeAddr, | |||
uint32 | mapLength, | |||
AddrLocation * | addrLocationMap | |||
) |
Adds information about inlined method.
[in] | method | - method which is inlined |
[in] | codeSize | - size of inlined code block |
[in] | codeAddr | - size of inlined code block |
[in] | mapLength | - number of AddrLocation elements in addrLocationMap |
[in] | addrLocationMap | - native address to bytecode location correspondence table |
void Method.send_inlined_method_load_events | ( | Method * | method | ) |
Sends JVMTI_EVENT_COMPILED_METHOD_LOAD event for every inline method recorded in this InlineInfo object.
[in] | method | - outer method this InlineInfo object belogs to. |
unsigned Method.get_line_number_table_size | ( | ) |
bool Method.get_line_number_entry | ( | unsigned | index, | |
jlong * | pc, | |||
jint * | line | |||
) |
unsigned Method.get_local_var_table_size | ( | ) |
bool Method.get_local_var_entry | ( | unsigned | index, | |
jlong * | pc, | |||
jint * | length, | |||
jint * | slot, | |||
String ** | name, | |||
String ** | type, | |||
String ** | generic_type | |||
) |
int Method.get_line_number | ( | uint16 | bc | ) |
void Method.set_inline_assumption | ( | JIT * | jit, | |
Method * | caller | |||
) |
void Method.method_was_overridden | ( | ) |
void Method.lock | ( | ) |
void Method.unlock | ( | ) |
uint32 Method.get_pending_breakpoints | ( | ) |
void Method.insert_pending_breakpoint | ( | ) |
void Method.remove_pending_breakpoint | ( | ) |
uint8* Method.get_stackmap | ( | ) |
Reimplemented from Class_Member.
void add_any_fake_methods | ( | Class * | clss | ) | [friend] |
Reimplemented from Class_Member.
unsigned Method.is_init |
unsigned Method.is_clinit |
unsigned Method.is_finalize |
unsigned Method.is_overridden |
unsigned Method.is_nop |
Inline_Record* Method.inline_records |
uint8* Method.m_stackmap |
Genereated on Tue Mar 11 19:26:03 2008 by Doxygen.
(c) Copyright 2005, 2008 The Apache Software Foundation or its licensors, as applicable.