Ruby  2.0.0p648(2015-12-16revision53162)
Public Types | Data Fields
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
 
rb_iseq_location_t location
 
VALUEiseq
 
VALUEiseq_encoded
 
unsigned long iseq_size
 
VALUE mark_ary
 
VALUE coverage
 
struct iseq_line_info_entryline_info_table
 
size_t line_info_size
 
IDlocal_table
 
int local_table_size
 
int local_size
 
struct iseq_inline_cache_entryic_entries
 
int ic_size
 
rb_call_info_tcallinfo_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
 
VALUEarg_opt_table
 
int arg_keyword
 
int arg_keyword_check
 
int arg_keywords
 
IDarg_keyword_table
 
size_t stack_max
 
struct iseq_catch_table_entrycatch_table
 
int catch_table_size
 
struct rb_iseq_structparent_iseq
 
struct rb_iseq_structlocal_iseq
 
VALUE self
 
VALUE orig
 
NODEcref_stack
 
VALUE klass
 
ID defined_method_id
 
rb_num_t flip_cnt
 
struct iseq_compile_datacompile_data
 

Detailed Description

Definition at line 196 of file vm_core.h.

Member Enumeration Documentation

◆ 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 201 of file vm_core.h.

Field Documentation

◆ arg_block

int rb_iseq_struct::arg_block

◆ arg_keyword

int rb_iseq_struct::arg_keyword

Definition at line 273 of file vm_core.h.

Referenced by iseq_compile_each(), iseq_set_arguments(), and prepare_iseq_build().

◆ arg_keyword_check

int rb_iseq_struct::arg_keyword_check

Definition at line 274 of file vm_core.h.

Referenced by iseq_set_arguments().

◆ arg_keyword_table

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(), and unknown_keyword_error().

◆ arg_keywords

int rb_iseq_struct::arg_keywords

Definition at line 275 of file vm_core.h.

Referenced by iseq_compile_each(), iseq_set_arguments(), and unknown_keyword_error().

◆ arg_opt_table

VALUE* rb_iseq_struct::arg_opt_table

◆ arg_opts

int rb_iseq_struct::arg_opts

◆ arg_post_len

int rb_iseq_struct::arg_post_len

◆ arg_post_start

int rb_iseq_struct::arg_post_start

◆ arg_rest

int rb_iseq_struct::arg_rest

◆ arg_simple

int rb_iseq_struct::arg_simple

◆ arg_size

int rb_iseq_struct::arg_size

Definition at line 271 of file vm_core.h.

Referenced by invoke_block_from_c(), iseq_set_arguments(), and rb_iseq_build_from_ary().

◆ argc

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(), and rb_iseq_min_max_arity().

◆ callinfo_entries

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().

◆ callinfo_size

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().

◆ catch_table

struct iseq_catch_table_entry* rb_iseq_struct::catch_table

Definition at line 281 of file vm_core.h.

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

◆ catch_table_size

int rb_iseq_struct::catch_table_size

Definition at line 282 of file vm_core.h.

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

◆ compile_data

struct iseq_compile_data* rb_iseq_struct::compile_data

◆ coverage

VALUE rb_iseq_struct::coverage

Definition at line 219 of file vm_core.h.

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

◆ cref_stack

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().

◆ defined_method_id

ID rb_iseq_struct::defined_method_id

◆ flip_cnt

rb_num_t rb_iseq_struct::flip_cnt

Definition at line 309 of file vm_core.h.

Referenced by iseq_compile_each().

◆ ic_entries

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().

◆ ic_size

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(), and iseq_set_sequence().

◆ iseq

VALUE* rb_iseq_struct::iseq

◆ iseq_encoded

VALUE* rb_iseq_struct::iseq_encoded

◆ iseq_size

unsigned long rb_iseq_struct::iseq_size

◆ klass

VALUE rb_iseq_struct::klass

Definition at line 305 of file vm_core.h.

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

◆ line_info_size

size_t rb_iseq_struct::line_info_size

Definition at line 223 of file vm_core.h.

Referenced by get_line_info(), iseq_memsize(), and iseq_set_sequence().

◆ line_info_table

struct iseq_line_info_entry* rb_iseq_struct::line_info_table

◆ local_iseq

struct rb_iseq_struct* rb_iseq_struct::local_iseq

◆ local_size

int rb_iseq_struct::local_size

◆ local_table

ID* rb_iseq_struct::local_table

◆ local_table_size

int rb_iseq_struct::local_table_size

◆ location

rb_iseq_location_t rb_iseq_struct::location

◆ mark_ary

VALUE rb_iseq_struct::mark_ary

Definition at line 218 of file vm_core.h.

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

◆ orig

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().

◆ parent_iseq

struct rb_iseq_struct* rb_iseq_struct::parent_iseq

◆ self

VALUE rb_iseq_struct::self

◆ stack_max

size_t rb_iseq_struct::stack_max

◆ type

enum rb_iseq_struct::iseq_type rb_iseq_struct::type

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