Ruby  1.9.3p551(2014-11-13revision48407)
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
 
VALUE name
 
VALUE filename
 
VALUE filepath
 
VALUEiseq
 
VALUEiseq_encoded
 
unsigned long iseq_size
 
VALUE mark_ary
 
VALUE coverage
 
unsigned short line_no
 
struct iseq_insn_info_entryinsn_info_table
 
size_t insn_info_size
 
IDlocal_table
 
int local_table_size
 
int local_size
 
struct iseq_inline_cache_entryic_entries
 
int ic_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
 
VALUEarg_opt_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 151 of file vm_core.h.

Member Enumeration Documentation

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
VALUE* rb_iseq_struct::arg_opt_table
int rb_iseq_struct::arg_opts
int rb_iseq_struct::arg_post_len
int rb_iseq_struct::arg_post_start
int rb_iseq_struct::arg_rest
int rb_iseq_struct::arg_simple
int rb_iseq_struct::arg_size
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
int rb_iseq_struct::catch_table_size
struct iseq_compile_data* rb_iseq_struct::compile_data
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
VALUE rb_iseq_struct::filename
VALUE rb_iseq_struct::filepath
rb_num_t rb_iseq_struct::flip_cnt

Definition at line 255 of file vm_core.h.

Referenced by iseq_compile_each().

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
size_t rb_iseq_struct::insn_info_size
struct iseq_insn_info_entry* rb_iseq_struct::insn_info_table
VALUE* rb_iseq_struct::iseq
VALUE* rb_iseq_struct::iseq_encoded
unsigned long rb_iseq_struct::iseq_size
VALUE rb_iseq_struct::klass
unsigned short rb_iseq_struct::line_no
struct rb_iseq_struct* rb_iseq_struct::local_iseq
int rb_iseq_struct::local_size
ID* rb_iseq_struct::local_table
int rb_iseq_struct::local_table_size
VALUE rb_iseq_struct::mark_ary
VALUE rb_iseq_struct::name
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
VALUE rb_iseq_struct::self
size_t rb_iseq_struct::stack_max
enum rb_iseq_struct::iseq_type rb_iseq_struct::type

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