Ruby 2.7.0p0(2019-12-25revision647ee6f091eafcce70ffb75ddf7e121e192ab217)

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, 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 }
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, 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 | ci_kw_size
unsigned int | stack_max
char | catch_except_p
uintptr_t | iseq_unique_id
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
struct {
rb_snum_t flip_count
VALUE coverage
VALUE pc2branchindex
VALUE * original_iseq
} | variable
VALUE(* | jit_func )(struct rb_execution_context_struct *, struct rb_control_frame_struct *)
long unsigned | total_calls
struct rb_mjit_unit * | jit_unit

## Detailed Description

Definition at line 311 of file vm_core.h.

## Member Enumeration Documentation

## ◆ iseq_type [1/2]

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

## ◆ iseq_type [2/2]

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 |
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 9524 of file rb_mjit_min_header-2.7.0.h.

## Field Documentation

## ◆ accepts_no_kwarg

unsigned int rb_iseq_constant_body::accepts_no_kwarg

Definition at line 361 of file vm_core.h.

## ◆ ambiguous_param0

unsigned int rb_iseq_constant_body::ambiguous_param0

Definition at line 360 of file vm_core.h.

## ◆ bits_start

int rb_iseq_constant_body::bits_start

Definition at line 392 of file vm_core.h.

## ◆ block_start

int rb_iseq_constant_body::block_start

Definition at line 372 of file vm_core.h.

Referenced by rb_iseq_parameters().

## ◆ call_data

struct rb_call_data * rb_iseq_constant_body::call_data

Definition at line 421 of file vm_core.h.

Referenced by rb_iseq_free(), and rb_iseq_memsize().

## ◆ catch_except_p

char rb_iseq_constant_body::catch_except_p

Definition at line 441 of file vm_core.h.

## ◆ catch_table

struct iseq_catch_table * rb_iseq_constant_body::catch_table

Definition at line 414 of file vm_core.h.

Referenced by rb_iseq_free(), and rb_iseq_memsize().

## ◆ ci_kw_size

unsigned int rb_iseq_constant_body::ci_kw_size

Definition at line 438 of file vm_core.h.

Referenced by rb_iseq_free().

## ◆ ci_size

unsigned int rb_iseq_constant_body::ci_size

Definition at line 437 of file vm_core.h.

Referenced by rb_iseq_free(), and rb_iseq_memsize().

## ◆ coverage

VALUE rb_iseq_constant_body::coverage

Definition at line 430 of file vm_core.h.

Referenced by rb_iseq_new_top(), and rb_iseq_update_references().

## ◆ default_values

VALUE* rb_iseq_constant_body::default_values

Definition at line 395 of file vm_core.h.

## ◆ flags [1/2]

struct { ... } rb_iseq_constant_body::flags

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

## ◆ flags [2/2]

struct { ... } rb_iseq_constant_body::flags

## ◆ flip_count

rb_snum_t rb_iseq_constant_body::flip_count

Definition at line 429 of file vm_core.h.

## ◆ has_block

unsigned int rb_iseq_constant_body::has_block

Definition at line 358 of file vm_core.h.

## ◆ has_kw

unsigned int rb_iseq_constant_body::has_kw

Definition at line 356 of file vm_core.h.

## ◆ has_kwrest

unsigned int rb_iseq_constant_body::has_kwrest

Definition at line 357 of file vm_core.h.

## ◆ has_lead

unsigned int rb_iseq_constant_body::has_lead

Definition at line 352 of file vm_core.h.

## ◆ has_opt

unsigned int rb_iseq_constant_body::has_opt

Definition at line 353 of file vm_core.h.

## ◆ has_post

unsigned int rb_iseq_constant_body::has_post

Definition at line 355 of file vm_core.h.

## ◆ has_rest

unsigned int rb_iseq_constant_body::has_rest

Definition at line 354 of file vm_core.h.

## ◆ 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_decode_positions(), 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 420 of file vm_core.h.

Referenced by rb_iseq_free().

## ◆ is_size

unsigned int rb_iseq_constant_body::is_size

Definition at line 436 of file vm_core.h.

## ◆ iseq_encoded

VALUE * rb_iseq_constant_body::iseq_encoded

Definition at line 325 of file vm_core.h.

Referenced by rb_iseq_free(), rb_iseq_trace_flag_cleared(), rb_iseq_trace_set(), and rb_vmdebug_debug_print_pre().

## ◆ iseq_size

unsigned int rb_iseq_constant_body::iseq_size

Definition at line 324 of file vm_core.h.

Referenced by rb_iseq_insns_info_decode_positions(), rb_iseq_insns_info_encode_positions(), rb_iseq_memsize(), and rb_iseq_trace_set().

## ◆ iseq_unique_id

uintptr_t rb_iseq_constant_body::iseq_unique_id

Definition at line 451 of file vm_core.h.

Referenced by rb_iseq_constant_body_alloc().

## ◆ jit_func

VALUE(* rb_iseq_constant_body::jit_func) (struct rb_execution_context_struct *, struct rb_control_frame_struct *)

Definition at line 9592 of file rb_mjit_min_header-2.7.0.h.

## ◆ jit_unit

struct rb_mjit_unit* rb_iseq_constant_body::jit_unit

Definition at line 9595 of file rb_mjit_min_header-2.7.0.h.

## ◆ keyword [1/2]

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

Referenced by rb_iseq_free(), and rb_iseq_parameters().

## ◆ keyword [2/2]

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

## ◆ lead_num

int rb_iseq_constant_body::lead_num

Definition at line 367 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 418 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 411 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 435 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 399 of file vm_core.h.

Referenced by rb_backtrace_use_iseq_first_lineno_for_last_location(), rb_iseq_base_label(), rb_iseq_code_location(), rb_iseq_first_lineno(), rb_iseq_label(), rb_iseq_method_name(), rb_iseq_pathobj_set(), rb_iseq_update_references(), and rb_resolve_me_location().

## ◆ num

int rb_iseq_constant_body::num

Definition at line 390 of file vm_core.h.

## ◆ opt_num

int rb_iseq_constant_body::opt_num

Definition at line 368 of file vm_core.h.

Referenced by rb_iseq_parameters().

## ◆ opt_table

const VALUE* rb_iseq_constant_body::opt_table

Definition at line 374 of file vm_core.h.

Referenced by rb_iseq_free().

## ◆ original_iseq

VALUE* rb_iseq_constant_body::original_iseq

Definition at line 432 of file vm_core.h.

## ◆ param [1/2]

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

## ◆ param [2/2]

struct { ... } rb_iseq_constant_body::param

## ◆ parent_iseq

const struct rb_iseq_struct * rb_iseq_constant_body::parent_iseq

Definition at line 417 of file vm_core.h.

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

## ◆ pc2branchindex

VALUE rb_iseq_constant_body::pc2branchindex

Definition at line 431 of file vm_core.h.

Referenced by rb_iseq_update_references().

## ◆ post_num

int rb_iseq_constant_body::post_num

Definition at line 371 of file vm_core.h.

Referenced by rb_iseq_parameters().

## ◆ post_start

int rb_iseq_constant_body::post_start

Definition at line 370 of file vm_core.h.

Referenced by rb_iseq_parameters().

## ◆ required_num

int rb_iseq_constant_body::required_num

Definition at line 391 of file vm_core.h.

## ◆ rest_start

int rb_iseq_constant_body::rest_start

Definition at line 369 of file vm_core.h.

Referenced by rb_iseq_parameters().

## ◆ ruby2_keywords

unsigned int rb_iseq_constant_body::ruby2_keywords

Definition at line 362 of file vm_core.h.

## ◆ size

unsigned int rb_iseq_constant_body::size

Definition at line 365 of file vm_core.h.

Referenced by rb_iseq_parameters().

## ◆ stack_max

unsigned int rb_iseq_constant_body::stack_max

Definition at line 439 of file vm_core.h.

## ◆ table

const ID* rb_iseq_constant_body::table

Definition at line 394 of file vm_core.h.

## ◆ total_calls

long unsigned rb_iseq_constant_body::total_calls

Definition at line 9594 of file rb_mjit_min_header-2.7.0.h.

## ◆ type

enum rb_iseq_constant_body::iseq_type rb_iseq_constant_body::type

Referenced by rb_dvar_defined(), and rb_iseq_method_name().

## ◆ variable [1/2]

struct { ... } rb_iseq_constant_body::variable

Referenced by rb_iseq_update_references().

## ◆ variable [2/2]

struct { ... } rb_iseq_constant_body::variable

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

- vm_core.h
- /msysdev/ruby/src/build-x86_64-pc-msys/include/ruby-2.7.0/x86_64-msys/rb_mjit_min_header-2.7.0.h