Ruby
2.0.0p594(2014-10-27revision48167)
|
#include <vm_core.h>
Public Types | |
enum | iseq_type { ISEQ_TYPE_TOP, ISEQ_TYPE_METHOD, ISEQ_TYPE_BLOCK, ISEQ_TYPE_CLASS, ISEQ_TYPE_RESCUE, ISEQ_TYPE_ENSURE, ISEQ_TYPE_EVAL, ISEQ_TYPE_MAIN, ISEQ_TYPE_DEFINED_GUARD } |
Data Fields | |
enum rb_iseq_struct::iseq_type | type |
rb_iseq_location_t | location |
VALUE * | iseq |
VALUE * | iseq_encoded |
unsigned long | iseq_size |
VALUE | mark_ary |
VALUE | coverage |
struct iseq_line_info_entry * | line_info_table |
size_t | line_info_size |
ID * | local_table |
int | local_table_size |
int | local_size |
struct iseq_inline_cache_entry * | ic_entries |
int | ic_size |
rb_call_info_t * | callinfo_entries |
int | callinfo_size |
int | argc |
argument information More... | |
int | arg_simple |
int | arg_rest |
int | arg_block |
int | arg_opts |
int | arg_post_len |
int | arg_post_start |
int | arg_size |
VALUE * | arg_opt_table |
int | arg_keyword |
int | arg_keyword_check |
int | arg_keywords |
ID * | arg_keyword_table |
size_t | stack_max |
struct iseq_catch_table_entry * | catch_table |
int | catch_table_size |
struct rb_iseq_struct * | parent_iseq |
struct rb_iseq_struct * | local_iseq |
VALUE | self |
VALUE | orig |
NODE * | cref_stack |
VALUE | klass |
ID | defined_method_id |
rb_num_t | flip_cnt |
struct iseq_compile_data * | compile_data |
int rb_iseq_struct::arg_block |
Definition at line 267 of file vm_core.h.
Referenced by iseq_data_to_ary(), iseq_set_arguments(), prepare_iseq_build(), proc_call(), rb_iseq_build_from_ary(), rb_iseq_disasm(), rb_iseq_parameters(), vm_callee_setup_arg_complex(), vm_yield_setup_args(), and vm_yield_setup_block_args().
int rb_iseq_struct::arg_keyword |
Definition at line 273 of file vm_core.h.
Referenced by iseq_compile_each(), iseq_set_arguments(), prepare_iseq_build(), rb_iseq_parameters(), vm_callee_setup_arg_complex(), and vm_yield_setup_block_args().
int rb_iseq_struct::arg_keyword_check |
Definition at line 274 of file vm_core.h.
Referenced by iseq_set_arguments(), and vm_callee_setup_keyword_arg().
ID* rb_iseq_struct::arg_keyword_table |
Definition at line 276 of file vm_core.h.
Referenced by iseq_compile_each(), iseq_free(), iseq_set_arguments(), rb_iseq_parameters(), unknown_keyword_error(), and vm_callee_setup_keyword_arg().
int rb_iseq_struct::arg_keywords |
Definition at line 275 of file vm_core.h.
Referenced by iseq_compile_each(), iseq_set_arguments(), rb_iseq_parameters(), unknown_keyword_error(), and vm_callee_setup_keyword_arg().
VALUE* rb_iseq_struct::arg_opt_table |
Definition at line 272 of file vm_core.h.
Referenced by iseq_data_to_ary(), iseq_free(), iseq_set_arguments(), iseq_set_optargs_table(), rb_iseq_build_for_ruby2cext(), rb_iseq_build_from_ary(), rb_iseq_disasm(), vm_callee_setup_arg_complex(), and vm_yield_setup_block_args_complex().
int rb_iseq_struct::arg_opts |
Definition at line 268 of file vm_core.h.
Referenced by iseq_compile_each(), iseq_data_to_ary(), iseq_memsize(), iseq_set_arguments(), iseq_set_optargs_table(), rb_iseq_build_for_ruby2cext(), rb_iseq_build_from_ary(), rb_iseq_disasm(), rb_iseq_min_max_arity(), rb_iseq_parameters(), vm_callee_setup_arg_complex(), vm_yield_setup_args(), vm_yield_setup_block_args(), and vm_yield_setup_block_args_complex().
int rb_iseq_struct::arg_post_len |
Definition at line 269 of file vm_core.h.
Referenced by iseq_compile_each(), iseq_data_to_ary(), iseq_set_arguments(), rb_iseq_build_from_ary(), rb_iseq_disasm(), rb_iseq_min_max_arity(), rb_iseq_parameters(), vm_callee_setup_arg_complex(), vm_yield_setup_args(), vm_yield_setup_block_args(), and vm_yield_setup_block_args_complex().
int rb_iseq_struct::arg_post_start |
Definition at line 270 of file vm_core.h.
Referenced by iseq_compile_each(), iseq_data_to_ary(), iseq_set_arguments(), rb_iseq_build_from_ary(), rb_iseq_disasm(), rb_iseq_parameters(), vm_callee_setup_arg_complex(), and vm_yield_setup_block_args_complex().
int rb_iseq_struct::arg_rest |
Definition at line 266 of file vm_core.h.
Referenced by iseq_compile_each(), iseq_data_to_ary(), iseq_set_arguments(), prepare_iseq_build(), rb_iseq_build_from_ary(), rb_iseq_disasm(), rb_iseq_min_max_arity(), rb_iseq_parameters(), vm_callee_setup_arg_complex(), vm_yield_setup_args(), vm_yield_setup_block_args(), and vm_yield_setup_block_args_complex().
int rb_iseq_struct::arg_simple |
Definition at line 265 of file vm_core.h.
Referenced by iseq_compile_each(), iseq_data_to_ary(), iseq_set_arguments(), rb_iseq_build_from_ary(), rb_iseq_disasm(), vm_callee_setup_arg(), vm_yield_setup_args(), and vm_yield_setup_block_args().
int rb_iseq_struct::arg_size |
Definition at line 271 of file vm_core.h.
Referenced by invoke_block_from_c(), iseq_data_to_ary(), iseq_set_arguments(), rb_iseq_build_from_ary(), rb_iseq_parameters(), vm_call_iseq_setup_normal(), vm_call_iseq_setup_tailcall(), vm_callee_setup_arg_complex(), vm_invoke_block(), and vm_yield_setup_block_args().
int rb_iseq_struct::argc |
argument information
def m(a1, a2, ..., aM, # mandatory b1=(...), b2=(...), ..., bN=(...), # optional *c, # rest d1, d2, ..., dO, # post e1:(...), e2:(...), ..., eK:(...), # keyword **f, # keyword rest &g) # block =>
argc = M // or 0 if no mandatory arg arg_opts = N+1 // or 0 if no optional arg arg_rest = M+N // or -1 if no rest arg arg_opt_table = [ (arg_opts entries) ] arg_post_start = M+N+(*1) // or 0 if no post arguments arg_post_len = O // or 0 if no post arguments arg_keywords = K // or 0 if no keyword arg arg_block = M+N+(*1)+O+K // or -1 if no block arg arg_keyword = M+N+(*1)+O+K+(&1) // or -1 if no keyword arg/rest arg_simple = 0 if not simple arguments. = 1 if no opt, rest, post, block. = 2 if ambiguous block parameter ({|a|}). arg_size = M+N+O+(*1)+K+(&1)+(**1) argument size.
Definition at line 264 of file vm_core.h.
Referenced by iseq_compile_each(), iseq_data_to_ary(), iseq_set_arguments(), rb_iseq_build_from_ary(), rb_iseq_disasm(), rb_iseq_min_max_arity(), rb_iseq_parameters(), vm_callee_setup_arg(), vm_callee_setup_arg_complex(), vm_yield_setup_args(), vm_yield_setup_block_args(), and vm_yield_setup_block_args_complex().
rb_call_info_t* rb_iseq_struct::callinfo_entries |
Definition at line 234 of file vm_core.h.
Referenced by iseq_free(), and iseq_set_sequence().
int rb_iseq_struct::callinfo_size |
Definition at line 235 of file vm_core.h.
Referenced by iseq_memsize(), iseq_set_sequence(), and new_callinfo().
struct iseq_catch_table_entry* rb_iseq_struct::catch_table |
Definition at line 281 of file vm_core.h.
Referenced by iseq_data_to_ary(), iseq_free(), iseq_set_exception_table(), rb_iseq_build_for_ruby2cext(), rb_iseq_disasm(), vm_exec(), and vm_throw().
int rb_iseq_struct::catch_table_size |
Definition at line 282 of file vm_core.h.
Referenced by iseq_data_to_ary(), iseq_memsize(), iseq_set_exception_table(), rb_iseq_build_for_ruby2cext(), rb_iseq_disasm(), vm_exec(), and vm_throw().
struct iseq_compile_data* rb_iseq_struct::compile_data |
Definition at line 312 of file vm_core.h.
Referenced by add_ensure_iseq(), cleanup_iseq_build(), compile_data_alloc(), iseq_add_mark_object_compile_time(), iseq_compile_each(), iseq_free(), iseq_mark(), iseq_memsize(), iseq_optimize(), iseq_set_exception_table(), iseq_setup(), new_child_iseq(), new_label_body(), prepare_iseq_build(), push_ensure_entry(), and rb_iseq_compile_node().
VALUE rb_iseq_struct::coverage |
Definition at line 219 of file vm_core.h.
Referenced by iseq_mark(), prepare_iseq_build(), and update_coverage().
NODE* rb_iseq_struct::cref_stack |
Definition at line 304 of file vm_core.h.
Referenced by clone_method(), iseq_mark(), rb_iseq_clone(), set_relation(), and vm_get_cref0().
ID rb_iseq_struct::defined_method_id |
Definition at line 308 of file vm_core.h.
Referenced by frame_called_id(), frame_func_id(), prepare_iseq_build(), rb_mod_define_method(), rb_vm_control_frame_id_and_class(), and vm_search_superclass().
rb_num_t rb_iseq_struct::flip_cnt |
Definition at line 309 of file vm_core.h.
Referenced by iseq_compile_each().
struct iseq_inline_cache_entry* rb_iseq_struct::ic_entries |
Definition at line 231 of file vm_core.h.
Referenced by insn_operand_intern(), iseq_data_to_ary(), iseq_free(), and iseq_set_sequence().
int rb_iseq_struct::ic_size |
Definition at line 232 of file vm_core.h.
Referenced by iseq_build_from_ary_body(), iseq_compile_each(), iseq_memsize(), and iseq_set_sequence().
VALUE* rb_iseq_struct::iseq |
Definition at line 215 of file vm_core.h.
Referenced by bt_iter_iseq(), iseq_data_to_ary(), iseq_free(), iseq_memsize(), iseq_set_sequence(), location_absolute_path(), location_base_label(), location_label(), location_lineno(), location_mark_entry(), location_path(), location_to_str(), rb_iseq_build_for_ruby2cext(), rb_iseq_disasm(), rb_iseq_line_trace_each(), rb_iseq_translate_threaded_code(), and rb_vmdebug_debug_print_pre().
VALUE* rb_iseq_struct::iseq_encoded |
Definition at line 216 of file vm_core.h.
Referenced by calc_lineno(), control_frame_dump(), Init_VM(), invoke_block_from_c(), iseq_free(), iseq_memsize(), rb_iseq_line_trace_each(), rb_iseq_translate_threaded_code(), rb_vmdebug_debug_print_pre(), rb_vmdebug_debug_print_register(), vm_call_iseq_setup_normal(), vm_call_iseq_setup_tailcall(), vm_exec(), vm_invoke_block(), vm_set_eval_stack(), vm_set_top_stack(), and vm_throw().
unsigned long rb_iseq_struct::iseq_size |
Definition at line 217 of file vm_core.h.
Referenced by iseq_data_to_ary(), iseq_memsize(), iseq_set_sequence(), rb_iseq_build_for_ruby2cext(), rb_iseq_disasm(), rb_iseq_line_trace_each(), and rb_iseq_translate_threaded_code().
VALUE rb_iseq_struct::klass |
Definition at line 305 of file vm_core.h.
Referenced by iseq_mark(), prepare_iseq_build(), rb_iseq_clone(), rb_mod_define_method(), rb_vm_control_frame_id_and_class(), vm_search_super_method(), and vm_search_superclass().
size_t rb_iseq_struct::line_info_size |
Definition at line 223 of file vm_core.h.
Referenced by get_line_info(), iseq_memsize(), iseq_set_sequence(), and rb_iseq_build_for_ruby2cext().
struct iseq_line_info_entry* rb_iseq_struct::line_info_table |
Definition at line 222 of file vm_core.h.
Referenced by get_line_info(), iseq_data_to_ary(), iseq_free(), iseq_location(), iseq_set_sequence(), proc_to_s(), rb_iseq_build_for_ruby2cext(), and rb_method_entry_make().
struct rb_iseq_struct* rb_iseq_struct::local_iseq |
Definition at line 286 of file vm_core.h.
Referenced by current_method_entry(), frame_called_id(), frame_func_id(), get_local_var_idx(), get_lvar_level(), iseq_compile_each(), make_name_for_block(), prepare_iseq_build(), rb_iseq_clone(), rb_local_defined(), rb_vm_control_frame_id_and_class(), set_relation(), and vm_search_superclass().
int rb_iseq_struct::local_size |
Definition at line 229 of file vm_core.h.
Referenced by get_dyna_var_idx(), insn_operand_intern(), invoke_block_from_c(), iseq_compile_each(), iseq_data_to_ary(), iseq_set_exception_local_table(), iseq_set_local_table(), rb_iseq_build_from_ary(), rb_iseq_disasm(), vm_base_ptr(), vm_call_iseq_setup_normal(), vm_call_iseq_setup_tailcall(), vm_exec(), vm_invoke_block(), vm_make_env_each(), vm_set_eval_stack(), vm_set_main_stack(), and vm_set_top_stack().
ID* rb_iseq_struct::local_table |
Definition at line 225 of file vm_core.h.
Referenced by collect_local_variables_in_iseq(), get_dyna_var_idx_at_raw(), insn_operand_intern(), iseq_data_to_ary(), iseq_free(), iseq_set_exception_local_table(), iseq_set_local_table(), rb_dvar_defined(), rb_f_local_variables(), rb_iseq_build_from_ary(), rb_iseq_disasm(), rb_iseq_parameters(), and rb_local_defined().
int rb_iseq_struct::local_table_size |
Definition at line 226 of file vm_core.h.
Referenced by collect_local_variables_in_iseq(), eval_string_with_cref(), get_dyna_var_idx_at_raw(), iseq_data_to_ary(), iseq_memsize(), iseq_set_exception_local_table(), iseq_set_local_table(), rb_dvar_defined(), rb_f_local_variables(), rb_iseq_build_from_ary(), rb_iseq_disasm(), and rb_local_defined().
rb_iseq_location_t rb_iseq_struct::location |
Definition at line 213 of file vm_core.h.
Referenced by argument_error(), cleanup_iseq_build(), control_frame_dump(), fill_path_and_lineno(), insn_operand_intern(), iseq_absolute_path(), iseq_base_label(), iseq_build_from_ary_body(), iseq_check(), iseq_compile_each(), iseq_data_to_ary(), iseq_first_lineno(), iseq_free(), iseq_inspect(), iseq_label(), iseq_location(), iseq_location_setup(), iseq_mark(), iseq_path(), iseq_set_sequence(), iseq_set_sequence_stackcaching(), make_name_for_block(), oldbt_iter_iseq(), prepare_iseq_build(), proc_binding(), proc_to_s(), rb_add_method(), rb_current_realfilepath(), rb_iseq_build_for_ruby2cext(), rb_iseq_compile_node(), rb_iseq_compile_with_option(), rb_iseq_first_lineno(), rb_method_entry_make(), rb_sourcefile(), rb_sourcefilename(), rb_thread_current_status(), rb_vm_make_binding(), rb_vm_set_progname(), and when_vals().
VALUE rb_iseq_struct::mark_ary |
Definition at line 218 of file vm_core.h.
Referenced by iseq_mark(), prepare_iseq_build(), rb_iseq_add_mark_object(), and rb_iseq_build_for_ruby2cext().
VALUE rb_iseq_struct::orig |
Definition at line 293 of file vm_core.h.
Referenced by iseq_free(), iseq_mark(), iseq_memsize(), and rb_iseq_clone().
struct rb_iseq_struct* rb_iseq_struct::parent_iseq |
Definition at line 285 of file vm_core.h.
Referenced by frame_called_id(), frame_func_id(), get_dyna_var_idx(), get_lvar_level(), insn_operand_intern(), iseq_compile_each(), make_name_for_block(), rb_dvar_defined(), rb_vm_control_frame_id_and_class(), set_relation(), vm_search_super_method(), vm_search_superclass(), and vm_throw().
VALUE rb_iseq_struct::self |
Definition at line 292 of file vm_core.h.
Referenced by clone_method(), collect_caller_bindings_iseq(), env_mark(), insn_data_to_s_detail(), insn_operand_intern(), iseq_build_from_ary_exception(), iseq_build_load_iseq(), iseq_load(), iseq_s_of(), iseq_setup(), mark_method_entry(), new_child_iseq(), rb_iseq_build_for_ruby2cext(), rb_iseq_build_from_ary(), rb_iseq_clone(), rb_iseq_compile_with_option(), rb_iseq_disasm(), rb_iseq_new_main(), rb_iseq_new_with_bopt_and_opt(), and rb_thread_mark().
size_t rb_iseq_struct::stack_max |
Definition at line 278 of file vm_core.h.
Referenced by eval_string_with_cref(), invoke_block_from_c(), iseq_data_to_ary(), iseq_set_sequence(), vm_call_iseq_setup_normal(), vm_call_iseq_setup_tailcall(), vm_invoke_block(), vm_set_eval_stack(), and vm_set_top_stack().
enum rb_iseq_struct::iseq_type rb_iseq_struct::type |
Referenced by current_method_entry(), errinfo_place(), iseq_compile_each(), iseq_data_to_ary(), iseq_set_arguments(), make_name_for_block(), prepare_iseq_build(), rb_dvar_defined(), rb_iseq_compile_node(), set_relation(), vm_base_ptr(), vm_rewrite_ep_in_errinfo(), vm_set_top_stack(), and vm_throw().