rb_iseq_struct Struct Reference

#include <vm_core.h>


Public Types

 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
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
const VALUE mark_ary
const VALUE coverage
iseq_line_info_entryline_info_table
size_t line_info_size
IDlocal_table
int local_table_size
int local_size
iseq_inline_storage_entryis_entries
int is_size
rb_call_info_tcallinfo_entries
int callinfo_size
int argc
 argument information
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
int arg_keyword_required
IDarg_keyword_table
size_t stack_max
iseq_catch_table_entrycatch_table
int catch_table_size
rb_iseq_structparent_iseq
rb_iseq_structlocal_iseq
VALUE self
const VALUE orig
NODE *const cref_stack
const VALUE klass
ID defined_method_id
rb_num_t flip_cnt
iseq_compile_datacompile_data


Detailed Description

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


Field Documentation

int rb_iseq_struct::arg_block

Definition at line 277 of file vm_core.h.

Referenced by iseq_data_to_ary(), iseq_set_arguments(), prepare_iseq_build(), proc_call(), rb_iseq_build_from_ary(), and vm_yield_setup_args().

int rb_iseq_struct::arg_keyword

Definition at line 283 of file vm_core.h.

Referenced by iseq_set_arguments(), prepare_iseq_build(), rb_iseq_min_max_arity(), vm_callee_setup_arg_complex(), and vm_yield_setup_block_args().

int rb_iseq_struct::arg_keyword_check

Definition at line 284 of file vm_core.h.

Referenced by iseq_set_arguments(), and vm_callee_setup_keyword_arg().

int rb_iseq_struct::arg_keyword_required

Definition at line 286 of file vm_core.h.

Referenced by iseq_set_arguments(), rb_iseq_min_max_arity(), and vm_callee_setup_keyword_arg().

ID* rb_iseq_struct::arg_keyword_table

Definition at line 287 of file vm_core.h.

Referenced by iseq_free(), iseq_set_arguments(), and vm_callee_setup_keyword_arg().

int rb_iseq_struct::arg_keywords

Definition at line 285 of file vm_core.h.

Referenced by iseq_set_arguments(), and vm_callee_setup_keyword_arg().

VALUE* rb_iseq_struct::arg_opt_table

Definition at line 282 of file vm_core.h.

Referenced by iseq_data_to_ary(), iseq_free(), iseq_set_arguments(), rb_iseq_build_from_ary(), vm_callee_setup_arg_complex(), and vm_yield_setup_block_args_complex().

int rb_iseq_struct::arg_opts

Definition at line 278 of file vm_core.h.

Referenced by iseq_compile_each(), iseq_data_to_ary(), iseq_set_arguments(), rb_iseq_build_from_ary(), rb_iseq_min_max_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 279 of file vm_core.h.

Referenced by iseq_data_to_ary(), iseq_set_arguments(), rb_iseq_build_from_ary(), rb_iseq_min_max_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 280 of file vm_core.h.

Referenced by iseq_data_to_ary(), iseq_set_arguments(), rb_iseq_build_from_ary(), vm_callee_setup_arg_complex(), and vm_yield_setup_block_args_complex().

int rb_iseq_struct::arg_rest

Definition at line 276 of file vm_core.h.

Referenced by iseq_data_to_ary(), iseq_set_arguments(), prepare_iseq_build(), rb_iseq_build_from_ary(), rb_iseq_min_max_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 275 of file vm_core.h.

Referenced by iseq_compile_each(), iseq_data_to_ary(), iseq_set_arguments(), rb_iseq_build_from_ary(), vm_callee_setup_arg(), vm_yield_setup_args(), and vm_yield_setup_block_args().

int rb_iseq_struct::arg_size

Definition at line 281 of file vm_core.h.

Referenced by invoke_block_from_c(), iseq_set_arguments(), rb_iseq_build_from_ary(), 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 274 of file vm_core.h.

Referenced by iseq_compile_each(), iseq_data_to_ary(), iseq_set_arguments(), rb_iseq_build_from_ary(), rb_iseq_min_max_arity(), 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 244 of file vm_core.h.

Referenced by iseq_free(), and iseq_set_sequence().

int rb_iseq_struct::callinfo_size

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

Referenced by iseq_free(), rb_iseq_disasm(), vm_exec(), and vm_throw().

int rb_iseq_struct::catch_table_size

Definition at line 293 of file vm_core.h.

Referenced by iseq_memsize(), rb_iseq_disasm(), vm_exec(), and vm_throw().

struct iseq_compile_data* rb_iseq_struct::compile_data

Definition at line 323 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_setup(), new_child_iseq(), new_label_body(), prepare_iseq_build(), and rb_iseq_compile_node().

const VALUE rb_iseq_struct::coverage

Definition at line 229 of file vm_core.h.

Referenced by iseq_mark(), prepare_iseq_build(), and update_coverage().

NODE* const rb_iseq_struct::cref_stack

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

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

rb_num_t rb_iseq_struct::flip_cnt

Definition at line 320 of file vm_core.h.

union iseq_inline_storage_entry* rb_iseq_struct::is_entries

Definition at line 241 of file vm_core.h.

Referenced by iseq_free(), iseq_set_sequence(), and rb_insn_operand_intern().

int rb_iseq_struct::is_size

Definition at line 242 of file vm_core.h.

Referenced by iseq_build_from_ary_body(), iseq_compile_each(), and iseq_set_sequence().

VALUE* rb_iseq_struct::iseq

Definition at line 225 of file vm_core.h.

Referenced by bt_iter_iseq(), iseq_free(), iseq_memsize(), location_absolute_path(), location_base_label(), location_label(), location_lineno(), location_mark_entry(), location_path(), location_to_str(), rb_iseq_disasm(), rb_iseq_translate_threaded_code(), and rb_vmdebug_debug_print_pre().

VALUE* rb_iseq_struct::iseq_encoded

Definition at line 226 of file vm_core.h.

Referenced by argument_error(), calc_lineno(), control_frame_dump(), Init_VM(), invoke_block_from_c(), iseq_free(), iseq_memsize(), 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 227 of file vm_core.h.

Referenced by iseq_memsize(), rb_iseq_disasm(), and rb_iseq_translate_threaded_code().

const VALUE rb_iseq_struct::klass

Definition at line 316 of file vm_core.h.

Referenced by iseq_mark(), prepare_iseq_build(), rb_iseq_klass(), rb_mod_define_method(), vm_search_super_method(), and vm_search_superclass().

size_t rb_iseq_struct::line_info_size

Definition at line 233 of file vm_core.h.

Referenced by get_line_info(), and iseq_memsize().

struct iseq_line_info_entry* rb_iseq_struct::line_info_table

Definition at line 232 of file vm_core.h.

Referenced by get_line_info(), iseq_free(), iseq_location(), proc_to_s(), and rb_method_entry_make().

struct rb_iseq_struct* rb_iseq_struct::local_iseq

Definition at line 297 of file vm_core.h.

Referenced by current_method_entry(), get_local_var_idx(), get_lvar_level(), iseq_compile_each(), iseq_load(), make_name_for_block(), prepare_iseq_build(), rb_iseq_clone(), rb_iseq_klass(), rb_iseq_method_name(), rb_local_defined(), set_relation(), and vm_search_superclass().

int rb_iseq_struct::local_size

Definition at line 239 of file vm_core.h.

Referenced by get_dyna_var_idx(), invoke_block_from_c(), iseq_compile_each(), iseq_set_exception_local_table(), iseq_set_local_table(), rb_insn_operand_intern(), rb_iseq_build_from_ary(), vm_base_ptr(), vm_call_iseq_setup_normal(), vm_call_iseq_setup_tailcall(), 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 235 of file vm_core.h.

Referenced by collect_local_variables_in_iseq(), get_dyna_var_idx_at_raw(), get_local_variable_ptr(), iseq_data_to_ary(), iseq_free(), iseq_set_exception_local_table(), iseq_set_local_table(), rb_dvar_defined(), rb_f_local_variables(), rb_insn_operand_intern(), rb_iseq_build_from_ary(), and rb_local_defined().

int rb_iseq_struct::local_table_size

Definition at line 236 of file vm_core.h.

Referenced by collect_local_variables_in_iseq(), eval_string_with_cref(), get_dyna_var_idx_at_raw(), get_local_variable_ptr(), 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(), and rb_local_defined().

rb_iseq_location_t rb_iseq_struct::location

Definition at line 223 of file vm_core.h.

Referenced by cleanup_iseq_build(), control_frame_dump(), fill_path_and_lineno(), iseq_build_from_ary_body(), iseq_check(), iseq_compile_each(), iseq_free(), iseq_inspect(), iseq_location(), iseq_location_setup(), iseq_mark(), iseq_set_sequence(), make_name_for_block(), oldbt_iter_iseq(), prepare_iseq_build(), proc_binding(), proc_to_s(), rb_add_method(), rb_binding_add_dynavars(), rb_current_realfilepath(), rb_insn_operand_intern(), rb_iseq_absolute_path(), rb_iseq_base_label(), rb_iseq_compile_with_option(), rb_iseq_first_lineno(), rb_iseq_label(), rb_iseq_method_name(), rb_iseq_path(), rb_method_entry_make(), rb_sourcefile(), rb_sourcefilename(), rb_vm_make_binding(), and rb_vm_set_progname().

const VALUE rb_iseq_struct::mark_ary

Definition at line 228 of file vm_core.h.

Referenced by iseq_mark(), prepare_iseq_build(), and rb_iseq_add_mark_object().

const VALUE rb_iseq_struct::orig

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

Referenced by build_postexe_iseq(), get_dyna_var_idx(), get_lvar_level(), iseq_compile_each(), make_name_for_block(), rb_dvar_defined(), rb_insn_operand_intern(), set_relation(), vm_search_super_method(), vm_search_superclass(), and vm_throw().

VALUE rb_iseq_struct::self

Definition at line 303 of file vm_core.h.

Referenced by clone_method(), collect_caller_bindings_iseq(), env_mark(), insn_data_to_s_detail(), iseq_build_from_ary_exception(), iseq_build_load_iseq(), iseq_load(), iseq_location(), iseq_location_setup(), iseq_s_of(), iseq_setup(), mark_method_entry(), new_child_iseq(), prepare_iseq_build(), proc_binding(), proc_to_s(), rb_add_method(), rb_binding_add_dynavars(), rb_insn_operand_intern(), rb_iseq_add_mark_object(), 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(), rb_method_entry_make(), rb_mod_define_method(), rb_profile_frames(), rb_vm_set_progname(), and set_relation().

size_t rb_iseq_struct::stack_max

Definition at line 289 of file vm_core.h.

Referenced by invoke_block_from_c(), 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(), rb_iseq_method_name(), set_relation(), vm_base_ptr(), vm_rewrite_ep_in_errinfo(), vm_set_top_stack(), and vm_throw().


The documentation for this struct was generated from the following file:
Generated on 19 Jul 2016 for Ruby by  doxygen 1.4.7