rb_iseq_struct Struct Reference

`#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
VALUE | name
VALUE | filename
VALUE | filepath
VALUE * | iseq
VALUE * | iseq_encoded
unsigned long | iseq_size
VALUE | mark_ary
VALUE | coverage
unsigned short | line_no
struct iseq_insn_info_entry * | insn_info_table
size_t | insn_info_size
ID * | local_table
int | local_table_size
int | local_size
struct iseq_inline_cache_entry * | ic_entries
int | ic_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
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
struct iseq_compile_data * | compile_data

## Detailed Description

Definition at line 151 of file vm_core.h.

## Member Enumeration Documentation

enum rb_iseq_struct::iseq_type

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

Definition at line 156 of file vm_core.h.

## Field Documentation

int rb_iseq_struct::arg_block

Definition at line 217 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().

VALUE* rb_iseq_struct::arg_opt_table

Definition at line 222 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 218 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_method_entry_arity(), 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 219 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(), rb_method_entry_arity(), rb_proc_arity(), 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 220 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 216 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_parameters(), rb_method_entry_arity(), rb_proc_arity(), 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 215 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_yield_setup_args(), and vm_yield_setup_block_args().

int rb_iseq_struct::arg_size

Definition at line 221 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_callee_setup_arg_complex(), vm_invoke_block(), vm_setup_method(), 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 &e) # block =>

argc = M arg_rest = M+N+1 // or -1 if no rest arg arg_opts = N+1 // or 0 if no optional arg arg_opt_table = [ (arg_opts entries) ] arg_post_len = O // 0 if no post arguments arg_post_start = M+N+2 arg_block = M+N + 1 + O + 1 // -1 if no block arg arg_simple = 0 if not simple arguments. = 1 if no opt, rest, post, block. = 2 if ambiguous block parameter ({|a|}). arg_size = argument size.

Definition at line 214 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(), rb_method_entry_arity(), rb_proc_arity(), vm_callee_setup_arg_complex(), vm_yield_setup_args(), vm_yield_setup_block_args(), and vm_yield_setup_block_args_complex().

struct iseq_catch_table_entry* rb_iseq_struct::catch_table

Definition at line 227 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 228 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 257 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 175 of file vm_core.h.

Referenced by iseq_mark(), and prepare_iseq_build().

NODE* rb_iseq_struct::cref_stack

Definition at line 250 of file vm_core.h.

Referenced by iseq_mark(), rb_iseq_clone(), set_relation(), and vm_get_cref0().

ID rb_iseq_struct::defined_method_id

Definition at line 254 of file vm_core.h.

Referenced by frame_func_id(), prepare_iseq_build(), rb_mod_define_method(), rb_thread_method_id_and_class(), and vm_search_superclass().

VALUE rb_iseq_struct::filename

Definition at line 169 of file vm_core.h.

Referenced by argument_error(), cleanup_iseq_build(), control_frame_dump(), iseq_build_from_ary_body(), iseq_data_to_ary(), iseq_free(), iseq_inspect(), iseq_location(), iseq_mark(), iseq_set_sequence(), iseq_set_sequence_stackcaching(), prepare_iseq_build(), proc_binding(), proc_to_s(), rb_add_method(), rb_binding_new(), rb_iseq_build_for_ruby2cext(), rb_method_entry_make(), rb_sourcefile(), rb_thread_current_status(), rb_vm_set_progname(), and vm_backtrace_each().

VALUE rb_iseq_struct::filepath

Definition at line 170 of file vm_core.h.

Referenced by iseq_data_to_ary(), iseq_mark(), prepare_iseq_build(), and rb_current_realfilepath().

struct iseq_inline_cache_entry* rb_iseq_struct::ic_entries

Definition at line 188 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 189 of file vm_core.h.

Referenced by insn_set_specialized_instruction(), iseq_build_from_ary_body(), iseq_compile_each(), iseq_memsize(), iseq_set_sequence(), and new_insn_send().

size_t rb_iseq_struct::insn_info_size

Definition at line 180 of file vm_core.h.

Referenced by argument_error(), find_prev_line_no(), get_insn_info(), iseq_memsize(), iseq_set_sequence(), rb_iseq_build_for_ruby2cext(), and rb_vm_get_sourceline().

struct iseq_insn_info_entry* rb_iseq_struct::insn_info_table

Definition at line 179 of file vm_core.h.

Referenced by argument_error(), find_prev_line_no(), get_insn_info(), iseq_data_to_ary(), iseq_free(), iseq_location(), iseq_set_sequence(), proc_to_s(), rb_iseq_build_for_ruby2cext(), rb_method_entry_make(), and rb_vm_get_sourceline().

VALUE* rb_iseq_struct::iseq

Definition at line 171 of file vm_core.h.

Referenced by iseq_data_to_ary(), iseq_free(), iseq_memsize(), iseq_set_sequence(), proc_eq(), rb_iseq_build_for_ruby2cext(), rb_iseq_disasm(), rb_iseq_translate_threaded_code(), and rb_vmdebug_debug_print_pre().

VALUE* rb_iseq_struct::iseq_encoded

Definition at line 172 of file vm_core.h.

Referenced by control_frame_dump(), Init_VM(), invoke_block_from_c(), iseq_free(), iseq_memsize(), rb_iseq_translate_threaded_code(), rb_vm_get_sourceline(), rb_vmdebug_debug_print_pre(), rb_vmdebug_debug_print_register(), vm_exec(), vm_invoke_block(), vm_set_eval_stack(), vm_set_top_stack(), vm_setup_method(), and vm_throw().

unsigned long rb_iseq_struct::iseq_size

Definition at line 173 of file vm_core.h.

Referenced by iseq_data_to_ary(), iseq_memsize(), iseq_set_sequence(), proc_eq(), rb_iseq_build_for_ruby2cext(), rb_iseq_disasm(), and rb_iseq_translate_threaded_code().

VALUE rb_iseq_struct::klass

Definition at line 251 of file vm_core.h.

Referenced by iseq_mark(), prepare_iseq_build(), rb_iseq_clone(), rb_mod_define_method(), rb_thread_method_id_and_class(), and vm_search_superclass().

unsigned short rb_iseq_struct::line_no

Definition at line 176 of file vm_core.h.

Referenced by iseq_data_to_ary(), prepare_iseq_build(), rb_iseq_build_for_ruby2cext(), rb_iseq_compile_node(), and rb_iseq_first_lineno().

struct rb_iseq_struct* rb_iseq_struct::local_iseq

Definition at line 232 of file vm_core.h.

Referenced by frame_func_id(), get_local_var_idx(), insn_operand_intern(), iseq_compile_each(), make_name_for_block(), rb_iseq_clone(), rb_local_defined(), rb_thread_method_id_and_class(), set_relation(), and vm_search_superclass().

int rb_iseq_struct::local_size

Definition at line 186 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(), proc_eq(), rb_iseq_build_from_ary(), rb_iseq_disasm(), vm_exec(), vm_invoke_block(), vm_make_env_each(), vm_set_eval_stack(), vm_set_main_stack(), vm_set_top_stack(), and vm_setup_method().

ID* rb_iseq_struct::local_table

Definition at line 182 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(), and rb_local_defined().

int rb_iseq_struct::local_table_size

Definition at line 183 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().

VALUE rb_iseq_struct::mark_ary

Definition at line 174 of file vm_core.h.

Referenced by iseq_add_mark_object(), iseq_mark(), prepare_iseq_build(), and rb_iseq_build_for_ruby2cext().

VALUE rb_iseq_struct::name

Definition at line 168 of file vm_core.h.

Referenced by argument_error(), control_frame_dump(), insn_operand_intern(), iseq_check(), iseq_compile_each(), iseq_data_to_ary(), iseq_free(), iseq_inspect(), iseq_mark(), iseq_set_sequence(), make_name_for_block(), prepare_iseq_build(), rb_iseq_build_for_ruby2cext(), rb_iseq_compile_with_option(), rb_thread_current_status(), and vm_backtrace_each().

VALUE rb_iseq_struct::orig

Definition at line 239 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 231 of file vm_core.h.

Referenced by frame_func_id(), get_dyna_var_idx(), insn_operand_intern(), iseq_compile_each(), make_name_for_block(), rb_dvar_defined(), rb_thread_method_id_and_class(), set_relation(), vm_search_superclass(), and vm_throw().

VALUE rb_iseq_struct::self

Definition at line 238 of file vm_core.h.

Referenced by clone_method(), env_mark(), insn_data_to_s_detail(), insn_operand_intern(), iseq_build_from_ary_body(), iseq_build_from_ary_exception(), iseq_load(), iseq_s_disasm(), 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 224 of file vm_core.h.

Referenced by eval_string_with_cref(), invoke_block_from_c(), iseq_data_to_ary(), iseq_set_sequence(), vm_invoke_block(), vm_set_eval_stack(), vm_set_main_stack(), vm_set_top_stack(), and vm_setup_method().

enum rb_iseq_struct::iseq_type rb_iseq_struct::type

Referenced by 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(), rb_vm_rewrite_dfp_in_errinfo(), set_relation(), vm_set_top_stack(), and vm_throw().

The documentation for this struct was generated from the following file:

- vm_core.h