Ruby: rb_iseq_constant_body Struct Reference

Ruby 3.0.5p211 (2022-11-24 revision ba5cf0f7c52d4d35cc6a173c89eda98ceffa2dcf)

Data Structures | Public Types | Data Fields
rb_iseq_constant_body Struct Reference

`#include <vm_core.h>`

## Data Structures
struct | iseq_insn_info

## 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_PLAIN }

## Data Fields
enum rb_iseq_constant_body::iseq_type | type
unsigned int | iseq_size
VALUE * | iseq_encoded
struct {
struct {
unsigned int has_lead: 1
unsigned int has_opt: 1
unsigned int has_rest: 1
unsigned int has_post: 1
unsigned int has_kw: 1
unsigned int has_kwrest: 1
unsigned int has_block: 1
unsigned int ambiguous_param0: 1
unsigned int accepts_no_kwarg: 1
unsigned int ruby2_keywords: 1
} flags
unsigned int size
int lead_num
int opt_num
int rest_start
int post_start
int post_num
int block_start
const VALUE * opt_table
struct rb_iseq_param_keyword {
int num
int required_num
int bits_start
int rest_start
const ID * table
VALUE * default_values
} keyword
} | param
| parameter information More...
rb_iseq_location_t | location
struct rb_iseq_constant_body::iseq_insn_info | insns_info
const ID * | local_table
struct iseq_catch_table * | catch_table
const struct rb_iseq_struct * | parent_iseq
struct rb_iseq_struct * | local_iseq
union iseq_inline_storage_entry * | is_entries
struct rb_call_data * | call_data
struct {
rb_snum_t flip_count
VALUE coverage
VALUE pc2branchindex
VALUE * original_iseq
} | variable
unsigned int | local_table_size
unsigned int | is_size
unsigned int | ci_size
unsigned int | stack_max
char | catch_except_p
bool | builtin_inline_p
struct rb_id_table * | outer_variables

## Detailed Description

Definition at line 305 of file vm_core.h.

## Member Enumeration Documentation

## ◆ iseq_type

enum rb_iseq_constant_body::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_PLAIN |

Definition at line 306 of file vm_core.h.

## Field Documentation

## ◆ accepts_no_kwarg

unsigned int rb_iseq_constant_body::accepts_no_kwarg

Definition at line 355 of file vm_core.h.

Referenced by rb_iseq_parameters(), and rb_simple_iseq_p().

## ◆ ambiguous_param0

unsigned int rb_iseq_constant_body::ambiguous_param0

Definition at line 354 of file vm_core.h.

Referenced by rb_iseq_build_from_ary().

## ◆ bits_start

int rb_iseq_constant_body::bits_start

Definition at line 386 of file vm_core.h.

## ◆ block_start

int rb_iseq_constant_body::block_start

Definition at line 366 of file vm_core.h.

Referenced by rb_iseq_parameters().

## ◆ builtin_inline_p

bool rb_iseq_constant_body::builtin_inline_p

Definition at line 430 of file vm_core.h.

## ◆ call_data

struct rb_call_data* rb_iseq_constant_body::call_data

Definition at line 415 of file vm_core.h.

Referenced by mjit_capture_cc_entries(), rb_iseq_free(), rb_iseq_mark(), and rb_iseq_update_references().

## ◆ catch_except_p

char rb_iseq_constant_body::catch_except_p

Definition at line 429 of file vm_core.h.

## ◆ catch_table

struct iseq_catch_table* rb_iseq_constant_body::catch_table

Definition at line 408 of file vm_core.h.

Referenced by rb_iseq_free(), rb_iseq_mark(), rb_iseq_memsize(), and rb_iseq_update_references().

## ◆ ci_size

unsigned int rb_iseq_constant_body::ci_size

Definition at line 426 of file vm_core.h.

Referenced by mjit_capture_cc_entries(), rb_iseq_mark(), rb_iseq_memsize(), and rb_iseq_update_references().

## ◆ coverage

VALUE rb_iseq_constant_body::coverage

Definition at line 419 of file vm_core.h.

Referenced by rb_iseq_mark(), rb_iseq_new_top(), and rb_iseq_update_references().

## ◆ default_values

VALUE* rb_iseq_constant_body::default_values

Definition at line 389 of file vm_core.h.

## ◆

struct { ... } rb_iseq_constant_body::flags

Referenced by rb_iseq_build_from_ary(), rb_iseq_mark(), rb_iseq_parameters(), rb_iseq_update_references(), and rb_simple_iseq_p().

## ◆ flip_count

rb_snum_t rb_iseq_constant_body::flip_count

Definition at line 418 of file vm_core.h.

## ◆ has_block

unsigned int rb_iseq_constant_body::has_block

Definition at line 352 of file vm_core.h.

Referenced by rb_iseq_build_from_ary(), rb_iseq_parameters(), and rb_simple_iseq_p().

## ◆ has_kw

unsigned int rb_iseq_constant_body::has_kw

Definition at line 350 of file vm_core.h.

Referenced by rb_iseq_mark(), rb_iseq_parameters(), rb_iseq_update_references(), and rb_simple_iseq_p().

## ◆ has_kwrest

unsigned int rb_iseq_constant_body::has_kwrest

Definition at line 351 of file vm_core.h.

Referenced by rb_iseq_build_from_ary(), rb_iseq_parameters(), and rb_simple_iseq_p().

## ◆ has_lead

unsigned int rb_iseq_constant_body::has_lead

Definition at line 346 of file vm_core.h.

Referenced by rb_iseq_build_from_ary().

## ◆ has_opt

unsigned int rb_iseq_constant_body::has_opt

Definition at line 347 of file vm_core.h.

Referenced by rb_iseq_build_from_ary(), and rb_simple_iseq_p().

## ◆ has_post

unsigned int rb_iseq_constant_body::has_post

Definition at line 349 of file vm_core.h.

Referenced by rb_iseq_build_from_ary(), and rb_simple_iseq_p().

## ◆ has_rest

unsigned int rb_iseq_constant_body::has_rest

Definition at line 348 of file vm_core.h.

Referenced by rb_iseq_build_from_ary(), rb_iseq_parameters(), and rb_simple_iseq_p().

## ◆ insns_info

struct rb_iseq_constant_body::iseq_insn_info rb_iseq_constant_body::insns_info

Referenced by rb_iseq_free(), rb_iseq_insns_info_encode_positions(), and rb_iseq_memsize().

## ◆ is_entries

union iseq_inline_storage_entry* rb_iseq_constant_body::is_entries

Definition at line 414 of file vm_core.h.

Referenced by rb_insn_operand_intern(), and rb_iseq_free().

## ◆ is_size

unsigned int rb_iseq_constant_body::is_size

Definition at line 425 of file vm_core.h.

Referenced by rb_iseq_memsize().

## ◆ iseq_encoded

VALUE* rb_iseq_constant_body::iseq_encoded

Definition at line 319 of file vm_core.h.

Referenced by Init_VM(), rb_iseq_free(), rb_iseq_original_iseq(), rb_iseq_trace_flag_cleared(), rb_iseq_trace_set(), rb_vmdebug_debug_print_pre(), and rb_vmdebug_debug_print_register().

## ◆ iseq_size

unsigned int rb_iseq_constant_body::iseq_size

Definition at line 318 of file vm_core.h.

Referenced by rb_iseq_insns_info_encode_positions(), rb_iseq_memsize(), rb_iseq_original_iseq(), rb_iseq_trace_set(), and rb_iseq_update_references().

## ◆

const struct { ... } ::rb_iseq_param_keyword * rb_iseq_constant_body::keyword

Referenced by rb_iseq_build_from_ary(), rb_iseq_free(), rb_iseq_mark(), rb_iseq_memsize(), rb_iseq_parameters(), and rb_iseq_update_references().

## ◆ lead_num

int rb_iseq_constant_body::lead_num

Definition at line 361 of file vm_core.h.

Referenced by rb_iseq_parameters().

## ◆ local_iseq

struct rb_iseq_struct* rb_iseq_constant_body::local_iseq

Definition at line 412 of file vm_core.h.

Referenced by rb_iseq_ibf_dump(), rb_iseq_method_name(), rb_iseq_update_references(), and rb_local_defined().

## ◆ local_table

const ID* rb_iseq_constant_body::local_table

Definition at line 405 of file vm_core.h.

Referenced by rb_dvar_defined(), rb_iseq_build_from_ary(), rb_iseq_free(), and rb_local_defined().

## ◆ local_table_size

unsigned int rb_iseq_constant_body::local_table_size

Definition at line 424 of file vm_core.h.

Referenced by rb_dvar_defined(), rb_iseq_build_from_ary(), rb_iseq_memsize(), and rb_local_defined().

## ◆ location

rb_iseq_location_t rb_iseq_constant_body::location

Definition at line 393 of file vm_core.h.

Referenced by rb_backtrace_use_iseq_first_lineno_for_last_location(), rb_binding_add_dynavars(), rb_block_to_s(), rb_insn_operand_intern(), rb_iseq_base_label(), rb_iseq_code_location(), rb_iseq_compile_node(), rb_iseq_first_lineno(), rb_iseq_label(), rb_iseq_mark(), rb_iseq_method_name(), rb_iseq_path(), rb_iseq_pathobj_set(), rb_iseq_realpath(), rb_iseq_update_references(), rb_resolve_me_location(), and rb_vm_make_binding().

## ◆ num

int rb_iseq_constant_body::num

Definition at line 384 of file vm_core.h.

## ◆ opt_num

int rb_iseq_constant_body::opt_num

Definition at line 362 of file vm_core.h.

Referenced by rb_iseq_build_from_ary(), rb_iseq_memsize(), and rb_iseq_parameters().

## ◆ opt_table

const VALUE* rb_iseq_constant_body::opt_table

Definition at line 368 of file vm_core.h.

Referenced by rb_iseq_build_from_ary(), and rb_iseq_free().

## ◆ original_iseq

VALUE* rb_iseq_constant_body::original_iseq

Definition at line 421 of file vm_core.h.

## ◆ outer_variables

struct rb_id_table* rb_iseq_constant_body::outer_variables

Definition at line 431 of file vm_core.h.

Referenced by rb_iseq_free(), rb_proc_isolate_bang(), and rb_proc_ractor_make_shareable().

## ◆

struct { ... } rb_iseq_constant_body::param

parameter 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 =>

lead_num = M opt_num = N rest_start = M+N post_start = M+N+(*1) post_num = O keyword_num = K block_start = M+N+(*1)+O+K keyword_bits = M+N+(*1)+O+K+(&1) size = M+N+O+(*1)+K+(&1)+(**1) // parameter size.

Referenced by rb_iseq_build_from_ary(), rb_iseq_free(), rb_iseq_mark(), rb_iseq_memsize(), rb_iseq_parameters(), rb_iseq_update_references(), and rb_simple_iseq_p().

## ◆ parent_iseq

const struct rb_iseq_struct* rb_iseq_constant_body::parent_iseq

Definition at line 411 of file vm_core.h.

Referenced by rb_dvar_defined(), rb_iseq_ibf_dump(), rb_iseq_local_variables(), rb_iseq_mark(), and rb_iseq_update_references().

## ◆ pc2branchindex

VALUE rb_iseq_constant_body::pc2branchindex

Definition at line 420 of file vm_core.h.

Referenced by rb_iseq_mark(), and rb_iseq_update_references().

## ◆ post_num

int rb_iseq_constant_body::post_num

Definition at line 365 of file vm_core.h.

Referenced by rb_iseq_parameters().

## ◆ post_start

int rb_iseq_constant_body::post_start

Definition at line 364 of file vm_core.h.

Referenced by rb_iseq_parameters().

## ◆ required_num

int rb_iseq_constant_body::required_num

Definition at line 385 of file vm_core.h.

## ◆ rest_start

int rb_iseq_constant_body::rest_start

Definition at line 363 of file vm_core.h.

Referenced by rb_iseq_parameters().

## ◆ ruby2_keywords

unsigned int rb_iseq_constant_body::ruby2_keywords

Definition at line 356 of file vm_core.h.

## ◆ size

unsigned int rb_iseq_constant_body::size

Definition at line 359 of file vm_core.h.

Referenced by rb_iseq_build_from_ary(), and rb_iseq_parameters().

## ◆ stack_max

unsigned int rb_iseq_constant_body::stack_max

Definition at line 427 of file vm_core.h.

Referenced by rb_iseq_build_from_ary().

## ◆ table

const ID* rb_iseq_constant_body::table

Definition at line 388 of file vm_core.h.

## ◆ type

enum rb_iseq_constant_body::iseq_type rb_iseq_constant_body::type

Referenced by rb_dvar_defined(), rb_iseq_compile_node(), and rb_iseq_method_name().

## ◆

struct { ... } rb_iseq_constant_body::variable

Referenced by rb_iseq_mark(), and rb_iseq_update_references().

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

- vm_core.h