#include "ruby/ruby.h"#include "ruby/vm.h"#include "ruby/st.h"#include "ruby/encoding.h"#include "internal.h"#include "gc.h"#include "vm_core.h"#include "iseq.h"#include "eval_intern.h"#include "probes.h"#include "probes_helper.h"#include "vm_insnhelper.h"#include "vm_insnhelper.c"#include "vm_exec.h"#include "vm_exec.c"#include "vm_method.c"#include "vm_eval.c"#include <assert.h>Go to the source code of this file.
Defines | |
| #define | BUFSIZE 0x100 |
| #define | PROCDEBUG 0 |
| #define | ENV_IN_HEAP_P(th, env) (!((th)->stack <= (env) && (env) < ((th)->stack + (th)->stack_size))) |
| #define | ENV_VAL(env) ((env)[1]) |
| #define | OP(mid_, bop_) (mid = id##mid_, bop = BOP_##bop_, ruby_vm_redefined_flag[bop] = 0) |
| #define | C(k) add_opt_method(rb_c##k, mid, bop) |
| #define | vm_free 0 |
| #define | SET(name) rb_hash_aset(result, ID2SYM(rb_intern(#name)), SIZET2NUM(vm->default_params.name)); |
| #define | USE_THREAD_DATA_RECYCLE 1 |
| #define | RECYCLE_MAX 64 |
| #define | thread_data_type ruby_threadptr_data_type |
| #define | REWIND_CFP(expr) |
Functions | |
| static VALUE * | VM_EP_LEP (VALUE *ep) |
| VALUE * | rb_vm_ep_local_ep (VALUE *ep) |
| static VALUE * | VM_CF_LEP (rb_control_frame_t *cfp) |
| static VALUE * | VM_CF_PREV_EP (rb_control_frame_t *cfp) |
| static rb_block_t * | VM_CF_BLOCK_PTR (rb_control_frame_t *cfp) |
| rb_block_t * | rb_vm_control_frame_block_ptr (rb_control_frame_t *cfp) |
| static VALUE | vm_invoke_proc (rb_thread_t *th, rb_proc_t *proc, VALUE self, VALUE defined_class, int argc, const VALUE *argv, const rb_block_t *blockptr) |
| static void | thread_free (void *ptr) |
| void | rb_vm_change_state (void) |
| static void | vm_clear_global_method_cache (void) |
| static void | vm_clear_all_inline_method_cache (void) |
| static void | vm_clear_all_cache () |
| void | rb_vm_inc_const_missing_count (void) |
| static void | vm_set_top_stack (rb_thread_t *th, VALUE iseqval) |
| static void | vm_set_eval_stack (rb_thread_t *th, VALUE iseqval, const NODE *cref, rb_block_t *base_block) |
| static void | vm_set_main_stack (rb_thread_t *th, VALUE iseqval) |
| rb_control_frame_t * | rb_vm_get_binding_creatable_next_cfp (rb_thread_t *th, const rb_control_frame_t *cfp) |
| rb_control_frame_t * | rb_vm_get_ruby_level_next_cfp (rb_thread_t *th, const rb_control_frame_t *cfp) |
| static rb_control_frame_t * | vm_get_ruby_level_caller_cfp (rb_thread_t *th, rb_control_frame_t *cfp) |
| void | rb_vm_pop_cfunc_frame (void) |
| void | rb_vm_rewind_cfp (rb_thread_t *th, rb_control_frame_t *cfp) |
| void | rb_frame_pop (void) |
| void | ruby_vm_at_exit (void(*func)(rb_vm_t *)) |
| ruby_vm_at_exit registers a function _func_ to be invoked when a VM passed away. | |
| static void | ruby_vm_run_at_exit_hooks (rb_vm_t *vm) |
| static void | env_mark (void *const ptr) |
| static void | env_free (void *const ptr) |
| static size_t | env_memsize (const void *ptr) |
| static VALUE | env_alloc (void) |
| static VALUE | check_env_value (VALUE envval) |
| static int | check_env (rb_env_t *const env) |
| static VALUE | vm_make_env_each (rb_thread_t *const th, rb_control_frame_t *const cfp, VALUE *envptr, VALUE *const endptr) |
| static int | collect_local_variables_in_iseq (rb_iseq_t *iseq, const VALUE ary) |
| static int | collect_local_variables_in_env (rb_env_t *env, const VALUE ary) |
| static int | vm_collect_local_variables_in_heap (rb_thread_t *th, VALUE *ep, VALUE ary) |
| static void | vm_rewrite_ep_in_errinfo (rb_thread_t *th) |
| static VALUE | vm_make_proc_from_block (rb_thread_t *th, rb_block_t *block) |
| static VALUE | vm_make_env_object (rb_thread_t *th, rb_control_frame_t *cfp, VALUE *blockprocptr) |
| VALUE | rb_vm_make_env_object (rb_thread_t *th, rb_control_frame_t *cfp) |
| void | rb_vm_stack_to_heap (rb_thread_t *th) |
| VALUE | rb_vm_make_proc (rb_thread_t *th, const rb_block_t *block, VALUE klass) |
| VALUE | rb_vm_make_binding (rb_thread_t *th, const rb_control_frame_t *src_cfp) |
| static VALUE | invoke_block_from_c (rb_thread_t *th, const rb_block_t *block, VALUE self, int argc, const VALUE *argv, const rb_block_t *blockptr, const NODE *cref, VALUE defined_class) |
| static const rb_block_t * | check_block (rb_thread_t *th) |
| static VALUE | vm_yield_with_cref (rb_thread_t *th, int argc, const VALUE *argv, const NODE *cref) |
| static VALUE | vm_yield (rb_thread_t *th, int argc, const VALUE *argv) |
| VALUE | rb_vm_invoke_proc (rb_thread_t *th, rb_proc_t *proc, int argc, const VALUE *argv, const rb_block_t *blockptr) |
| static rb_control_frame_t * | vm_normal_frame (rb_thread_t *th, rb_control_frame_t *cfp) |
| static VALUE | vm_cfp_svar_get (rb_thread_t *th, rb_control_frame_t *cfp, VALUE key) |
| static void | vm_cfp_svar_set (rb_thread_t *th, rb_control_frame_t *cfp, VALUE key, const VALUE val) |
| static VALUE | vm_svar_get (VALUE key) |
| static void | vm_svar_set (VALUE key, VALUE val) |
| VALUE | rb_backref_get (void) |
| void | rb_backref_set (VALUE val) |
| VALUE | rb_lastline_get (void) |
| void | rb_lastline_set (VALUE val) |
| VALUE | rb_sourcefilename (void) |
| const char * | rb_sourcefile (void) |
| int | rb_sourceline (void) |
| NODE * | rb_vm_cref (void) |
| VALUE | rb_vm_cbase (void) |
| static VALUE | make_localjump_error (const char *mesg, VALUE value, int reason) |
| void | rb_vm_localjump_error (const char *mesg, VALUE value, int reason) |
| VALUE | rb_vm_make_jump_tag_but_local_jump (int state, VALUE val) |
| void | rb_vm_jump_tag_but_local_jump (int state) |
| NORETURN (static void vm_iter_break(rb_thread_t *th, VALUE val)) | |
| static void | vm_iter_break (rb_thread_t *th, VALUE val) |
| void | rb_iter_break (void) |
| void | rb_iter_break_value (VALUE val) |
| static int | vm_redefinition_check_flag (VALUE klass) |
| static void | rb_vm_check_redefinition_opt_method (const rb_method_entry_t *me, VALUE klass) |
| static int | check_redefined_method (st_data_t key, st_data_t value, st_data_t data) |
| void | rb_vm_check_redefinition_by_prepend (VALUE klass) |
| static void | add_opt_method (VALUE klass, ID mid, VALUE bop) |
| static void | vm_init_redefined_flag (void) |
| static VALUE | vm_exec (rb_thread_t *th) |
| VALUE | rb_iseq_eval (VALUE iseqval) |
| VALUE | rb_iseq_eval_main (VALUE iseqval) |
| int | rb_vm_control_frame_id_and_class (const rb_control_frame_t *cfp, ID *idp, VALUE *klassp) |
| int | rb_thread_method_id_and_class (rb_thread_t *th, ID *idp, VALUE *klassp) |
| int | rb_frame_method_id_and_class (ID *idp, VALUE *klassp) |
| VALUE | rb_thread_current_status (const rb_thread_t *th) |
| VALUE | rb_vm_call_cfunc (VALUE recv, VALUE(*func)(VALUE), VALUE arg, const rb_block_t *blockptr, VALUE filename) |
| static int | vm_mark_each_thread_func (st_data_t key, st_data_t value, st_data_t dummy) |
| void | vm_trace_mark_event_hooks (rb_hook_list_t *hooks) |
| void | rb_vm_mark (void *ptr) |
| int | ruby_vm_destruct (rb_vm_t *vm) |
| static size_t | vm_memsize (const void *ptr) |
| static VALUE | vm_default_params (void) |
| static size_t | get_param (const char *name, size_t default_value, size_t min_value) |
| static void | check_machine_stack_size (size_t *sizep) |
| static void | vm_default_params_setup (rb_vm_t *vm) |
| static void | vm_init2 (rb_vm_t *vm) |
| static VALUE * | thread_recycle_stack (size_t size) |
| void | rb_thread_recycle_stack_release (VALUE *stack) |
| void | rb_thread_mark (void *ptr) |
| static size_t | thread_memsize (const void *ptr) |
| VALUE | rb_obj_is_thread (VALUE obj) |
| static VALUE | thread_alloc (VALUE klass) |
| static void | th_init (rb_thread_t *th, VALUE self) |
| static VALUE | ruby_thread_init (VALUE self) |
| VALUE | rb_thread_alloc (VALUE klass) |
| static void | vm_define_method (rb_thread_t *th, VALUE obj, ID id, VALUE iseqval, rb_num_t is_singleton, NODE *cref) |
| static VALUE | m_core_define_method (VALUE self, VALUE cbase, VALUE sym, VALUE iseqval) |
| static VALUE | m_core_define_singleton_method (VALUE self, VALUE cbase, VALUE sym, VALUE iseqval) |
| static VALUE | m_core_set_method_alias (VALUE self, VALUE cbase, VALUE sym1, VALUE sym2) |
| static VALUE | m_core_set_variable_alias (VALUE self, VALUE sym1, VALUE sym2) |
| static VALUE | m_core_undef_method (VALUE self, VALUE cbase, VALUE sym) |
| static VALUE | m_core_set_postexe (VALUE self, VALUE iseqval) |
| static VALUE | m_core_hash_merge_ary (VALUE self, VALUE hash, VALUE ary) |
| static VALUE | core_hash_merge (VALUE hash, long argc, const VALUE *argv) |
| static VALUE | m_core_hash_from_ary (VALUE self, VALUE ary) |
| static VALUE | m_core_hash_merge_ptr (int argc, VALUE *argv, VALUE recv) |
| static int | kwmerge_ii (st_data_t *key, st_data_t *value, st_data_t arg, int existing) |
| static int | kwmerge_i (VALUE key, VALUE value, VALUE hash) |
| static VALUE | m_core_hash_merge_kwd (VALUE recv, VALUE hash, VALUE kw) |
| static VALUE | sdr (void) |
| static VALUE | nsdr (void) |
| void | Init_VM (void) |
| void | rb_vm_set_progname (VALUE filename) |
| void | Init_BareVM (void) |
| static VALUE | main_to_s (VALUE obj) |
| VALUE | rb_vm_top_self (void) |
| void | Init_top_self (void) |
| VALUE * | ruby_vm_verbose_ptr (rb_vm_t *vm) |
| VALUE * | ruby_vm_debug_ptr (rb_vm_t *vm) |
| VALUE * | rb_ruby_verbose_ptr (void) |
| VALUE * | rb_ruby_debug_ptr (void) |
| VALUE | insn_operand_intern (rb_iseq_t *iseq, VALUE insn, int op_no, VALUE op, int len, size_t pos, VALUE *pnop, VALUE child) |
Variables | |
| VALUE | rb_cRubyVM |
| VALUE | rb_cThread |
| VALUE | rb_cEnv |
| VALUE | rb_mRubyVMFrozenCore |
| VALUE | ruby_vm_const_missing_count = 0 |
| char | ruby_vm_redefined_flag [BOP_LAST_] |
| rb_thread_t * | ruby_current_thread = 0 |
| rb_vm_t * | ruby_current_vm = 0 |
| rb_event_flag_t | ruby_vm_event_flags |
| static const rb_data_type_t | env_data_type |
| static st_table * | vm_opt_method_table = 0 |
| static const rb_data_type_t | vm_data_type |
| static VALUE * | thread_recycle_stack_slot [RECYCLE_MAX] |
| static int | thread_recycle_stack_count = 0 |
| const rb_data_type_t | ruby_threadptr_data_type |
| VALUE * | rb_gc_stack_start |
| size_t | rb_gc_stack_maxsize |
| void(* | ruby_vm_collect_usage_func_insn )(int insn) = NULL |
| void(* | ruby_vm_collect_usage_func_operand )(int insn, int n, VALUE op) = NULL |
| void(* | ruby_vm_collect_usage_func_register )(int reg, int isset) = NULL |
| #define C | ( | k | ) | add_opt_method(rb_c##k, mid, bop) |
| #define ENV_IN_HEAP_P | ( | th, | |||
| env | ) | (!((th)->stack <= (env) && (env) < ((th)->stack + (th)->stack_size))) |
Definition at line 299 of file vm.c.
Referenced by vm_collect_local_variables_in_heap(), vm_make_env_each(), and vm_rewrite_ep_in_errinfo().
| #define ENV_VAL | ( | env | ) | ((env)[1]) |
Definition at line 301 of file vm.c.
Referenced by vm_collect_local_variables_in_heap(), and vm_make_env_each().
| #define OP | ( | mid_, | |||
| bop_ | ) | (mid = id##mid_, bop = BOP_##bop_, ruby_vm_redefined_flag[bop] = 0) |
Referenced by vm_init_redefined_flag().
| #define PROCDEBUG 0 |
Definition at line 87 of file vm.c.
Referenced by rb_vm_make_proc(), and vm_make_env_object().
| #define RECYCLE_MAX 64 |
Definition at line 1814 of file vm.c.
Referenced by rb_thread_recycle_stack_release().
| #define REWIND_CFP | ( | expr | ) |
do { \ rb_thread_t *th__ = GET_THREAD(); \ th__->cfp++; expr; th__->cfp--; \ } while (0)
Definition at line 2114 of file vm.c.
Referenced by m_core_define_method(), m_core_define_singleton_method(), m_core_set_method_alias(), m_core_set_postexe(), m_core_set_variable_alias(), and m_core_undef_method().
| #define SET | ( | name | ) | rb_hash_aset(result, ID2SYM(rb_intern(#name)), SIZET2NUM(vm->default_params.name)); |
| #define thread_data_type ruby_threadptr_data_type |
Definition at line 1986 of file vm.c.
Referenced by Init_VM(), rb_obj_is_thread(), and thread_alloc().
| static void add_opt_method | ( | VALUE | klass, | |
| ID | mid, | |||
| VALUE | bop | |||
| ) | [static] |
Definition at line 1092 of file vm.c.
References rb_bug(), rb_id2name(), RCLASS_M_TBL, st_insert(), st_lookup(), and VM_METHOD_TYPE_CFUNC.
| static const rb_block_t* check_block | ( | rb_thread_t * | th | ) | [inline, static] |
Definition at line 724 of file vm.c.
References rb_thread_struct::cfp, Qnil, rb_vm_localjump_error(), and VM_CF_BLOCK_PTR().
Referenced by vm_yield(), and vm_yield_with_cref().
| static int check_env | ( | rb_env_t *const | env | ) | [static] |
Definition at line 379 of file vm.c.
References rb_env_t::block, check_env_value(), dp, rb_block_struct::ep, and rb_env_t::prev_envval.
Referenced by check_env_value().
| static VALUE check_env_value | ( | VALUE | envval | ) | [static] |
Definition at line 395 of file vm.c.
References check_env(), env, GetEnvPtr, Qnil, and rb_bug().
Referenced by check_env(), rb_vm_make_proc(), and vm_make_env_object().
| static void check_machine_stack_size | ( | size_t * | sizep | ) | [static] |
| static int check_redefined_method | ( | st_data_t | key, | |
| st_data_t | value, | |||
| st_data_t | data | |||
| ) | [static] |
Definition at line 1071 of file vm.c.
References rb_method_entry_struct::klass, NULL, rb_method_entry(), and rb_vm_check_redefinition_opt_method().
Referenced by rb_vm_check_redefinition_by_prepend().
| static int collect_local_variables_in_env | ( | rb_env_t * | env, | |
| const VALUE | ary | |||
| ) | [static] |
Definition at line 501 of file vm.c.
References rb_env_t::block, collect_local_variables_in_iseq(), GetEnvPtr, rb_block_struct::iseq, and rb_env_t::prev_envval.
Referenced by vm_collect_local_variables_in_heap().
| static int collect_local_variables_in_iseq | ( | rb_iseq_t * | iseq, | |
| const VALUE | ary | |||
| ) | [static] |
Definition at line 487 of file vm.c.
References ID2SYM, rb_iseq_struct::local_table, rb_iseq_struct::local_table_size, rb_ary_push(), and rb_is_local_id().
Referenced by collect_local_variables_in_env().
| static VALUE core_hash_merge | ( | VALUE | hash, | |
| long | argc, | |||
| const VALUE * | argv | |||
| ) | [static] |
Definition at line 2194 of file vm.c.
References assert.
Referenced by m_core_hash_merge_ary(), and m_core_hash_merge_ptr().
| static VALUE env_alloc | ( | void | ) | [static] |
Definition at line 365 of file vm.c.
References rb_env_t::block, rb_env_t::env, env, rb_block_struct::iseq, rb_env_t::prev_envval, rb_cEnv, and TypedData_Make_Struct.
Referenced by vm_make_env_each().
| static void env_free | ( | void *const | ptr | ) | [static] |
Definition at line 334 of file vm.c.
References rb_env_t::env, env, RUBY_FREE_ENTER, RUBY_FREE_LEAVE, RUBY_FREE_UNLESS_NULL, and ruby_xfree().
| static void env_mark | ( | void *const | ptr | ) | [static] |
Definition at line 304 of file vm.c.
References rb_env_t::block, BUILTIN_TYPE, rb_env_t::env, env, rb_env_t::env_size, rb_block_struct::iseq, rb_env_t::prev_envval, rb_block_struct::proc, rb_gc_mark_locations, RUBY_GC_INFO, RUBY_MARK_ENTER, RUBY_MARK_LEAVE, RUBY_MARK_UNLESS_NULL, rb_iseq_struct::self, rb_block_struct::self, and T_NODE.
| static size_t env_memsize | ( | const void * | ptr | ) | [static] |
Definition at line 346 of file vm.c.
References rb_env_t::env, env, rb_env_t::env_size, and size.
| static size_t get_param | ( | const char * | name, | |
| size_t | default_value, | |||
| size_t | min_value | |||
| ) | [static] |
Definition at line 1736 of file vm.c.
References getenv(), PRIdSIZE, result, RUBY_VM_SIZE_ALIGN, and val.
Referenced by vm_default_params_setup().
| void Init_BareVM | ( | void | ) |
Definition at line 2461 of file vm.c.
References EXIT_FAILURE, Init_native_thread(), MEMZERO, rb_vm_struct::objspace, rb_thread_set_current_raw, ruby_mimmalloc(), ruby_thread_init_stack(), th_init(), rb_thread_struct::vm, and vm_init2().
Referenced by ruby_setup().
| void Init_top_self | ( | void | ) |
Definition at line 2500 of file vm.c.
References GET_VM, main_to_s(), rb_vm_struct::mark_object_ary, rb_ary_tmp_new(), rb_cObject, rb_define_alias(), rb_define_singleton_method(), rb_obj_alloc(), rb_singleton_class(), rb_vm_top_self(), and rb_vm_struct::top_self.
| void Init_VM | ( | void | ) |
Definition at line 2305 of file vm.c.
References rb_thread_struct::cfp, CLASS_OF, GET_THREAD(), GetISeqPtr, id_core_define_method, id_core_define_singleton_method, id_core_hash_from_ary, id_core_hash_merge_ary, id_core_hash_merge_kwd, id_core_hash_merge_ptr, id_core_set_method_alias, id_core_set_postexe, id_core_set_variable_alias, id_core_undef_method, Init_vm_backtrace(), rb_control_frame_struct::iseq, rb_iseq_struct::iseq_encoded, rb_control_frame_struct::klass, rb_vm_struct::living_threads, m_core_define_method(), m_core_define_singleton_method(), m_core_hash_from_ary(), m_core_hash_merge_ary(), m_core_hash_merge_kwd(), m_core_hash_merge_ptr(), m_core_set_method_alias(), m_core_set_postexe(), m_core_set_variable_alias(), m_core_undef_method(), rb_vm_struct::main_thread, nsdr(), rb_control_frame_struct::pc, Qnil, rb_ary_new(), rb_ary_push(), rb_binding_new(), rb_block_lambda(), rb_block_proc(), rb_cBasicObject, rb_cEnv, rb_class_new(), rb_cObject, rb_cRubyVM, rb_cThread, rb_define_class(), rb_define_class_under(), rb_define_const(), rb_define_global_const(), rb_define_method_id(), rb_define_singleton_method(), rb_gc_register_mark_object(), rb_hash_new(), rb_insns_name_array(), rb_iseq_new(), rb_iv_set(), rb_mRubyVMFrozenCore, rb_obj_freeze(), rb_singleton_class(), rb_str_new2, rb_thread_set_current, rb_undef_alloc_func(), rb_undef_method(), rb_vm_top_self(), RBASIC, rb_vm_struct::running_thread, sdr(), rb_control_frame_struct::self, rb_thread_struct::self, rb_vm_struct::self, st_init_numtable(), st_insert(), T_ICLASS, thread_data_type, rb_thread_struct::thread_id, rb_thread_struct::top_self, rb_thread_struct::top_wrapper, TypedData_Wrap_Struct, rb_thread_struct::vm, vm_default_params(), vm_init_redefined_flag(), and VM_PROFILE_ATEXIT.
| VALUE insn_operand_intern | ( | rb_iseq_t * | iseq, | |
| VALUE | insn, | |||
| int | op_no, | |||
| VALUE | op, | |||
| int | len, | |||
| size_t | pos, | |||
| VALUE * | pnop, | |||
| VALUE | child | |||
| ) |
Definition at line 1138 of file iseq.c.
References rb_call_info_struct::blockiseq, CLASS_OF, rb_call_info_struct::flag, rb_iseq_struct::ic_entries, ID2SYM, id_to_name(), INT2FIX, rb_iseq_location_struct::label, level, rb_iseq_struct::local_size, rb_iseq_struct::local_table, rb_iseq_struct::location, rb_call_info_struct::mid, obj_resurrect(), rb_call_info_struct::orig_argc, rb_iseq_struct::parent_iseq, PRIdPTRDIFF, PRIdVALUE, PRIsVALUE, PRIuVALUE, rb_ary_join(), rb_ary_new(), rb_ary_push(), rb_bug(), rb_cISeq, rb_global_entry(), rb_id2name(), rb_id2str(), rb_inspect(), rb_sprintf(), rb_str_dup(), rb_str_new2, rb_iseq_struct::self, type, VM_CALL_ARGS_BLOCKARG, VM_CALL_ARGS_SKIP_SETUP, VM_CALL_ARGS_SPLAT, VM_CALL_FCALL, VM_CALL_OPT_SEND, VM_CALL_SUPER, VM_CALL_TAILCALL, and VM_CALL_VCALL.
Referenced by rb_iseq_disasm_insn().
| static VALUE invoke_block_from_c | ( | rb_thread_t * | th, | |
| const rb_block_t * | block, | |||
| VALUE | self, | |||
| int | argc, | |||
| const VALUE * | argv, | |||
| const rb_block_t * | blockptr, | |||
| const NODE * | cref, | |||
| VALUE | defined_class | |||
| ) | [inline, static] |
Definition at line 680 of file vm.c.
References rb_iseq_struct::arg_size, block_proc_is_lambda(), BUILTIN_TYPE, rb_thread_struct::cfp, CHECK_VM_STACK_OVERFLOW, rb_control_frame_struct::ep, rb_block_struct::ep, rb_block_struct::iseq, rb_iseq_struct::iseq_encoded, rb_iseq_struct::local_size, rb_thread_struct::passed_me, rb_block_struct::proc, Qnil, rb_control_frame_struct::sp, SPECIAL_CONST_P, rb_iseq_struct::stack_max, T_NODE, type, VM_ENVVAL_PREV_EP_PTR, vm_exec(), VM_FRAME_FLAG_FINISH, VM_FRAME_MAGIC_BLOCK, VM_FRAME_MAGIC_LAMBDA, vm_push_frame(), vm_yield_setup_args(), and vm_yield_with_cfunc().
Referenced by vm_invoke_proc(), vm_yield(), and vm_yield_with_cref().
| static int kwmerge_i | ( | VALUE | key, | |
| VALUE | value, | |||
| VALUE | hash | |||
| ) | [static] |
Definition at line 2242 of file vm.c.
References Check_Type, kwmerge_ii(), RHASH_TBL, st_update(), SYMBOL_P, and T_SYMBOL.
Referenced by m_core_hash_merge_kwd().
| static int kwmerge_ii | ( | st_data_t * | key, | |
| st_data_t * | value, | |||
| st_data_t | arg, | |||
| int | existing | |||
| ) | [static] |
Definition at line 2234 of file vm.c.
Referenced by kwmerge_i().
| static VALUE m_core_define_method | ( | VALUE | self, | |
| VALUE | cbase, | |||
| VALUE | sym, | |||
| VALUE | iseqval | |||
| ) | [static] |
Definition at line 2120 of file vm.c.
References GET_THREAD(), Qnil, rb_vm_cref(), REWIND_CFP, SYM2ID, and vm_define_method().
Referenced by Init_VM().
| static VALUE m_core_define_singleton_method | ( | VALUE | self, | |
| VALUE | cbase, | |||
| VALUE | sym, | |||
| VALUE | iseqval | |||
| ) | [static] |
Definition at line 2129 of file vm.c.
References GET_THREAD(), Qnil, rb_vm_cref(), REWIND_CFP, SYM2ID, and vm_define_method().
Referenced by Init_VM().
| static VALUE m_core_hash_from_ary | ( | VALUE | self, | |
| VALUE | ary | |||
| ) | [static] |
Definition at line 2205 of file vm.c.
References hash(), m_core_hash_merge_ary(), RARRAY_LEN, rb_hash_new(), rb_sourcefile, rb_sourceline(), RUBY_DTRACE_HASH_CREATE, and RUBY_DTRACE_HASH_CREATE_ENABLED.
Referenced by Init_VM().
| static VALUE m_core_hash_merge_ary | ( | VALUE | self, | |
| VALUE | hash, | |||
| VALUE | ary | |||
| ) | [static] |
Definition at line 2217 of file vm.c.
References core_hash_merge(), RARRAY_LEN, and RARRAY_PTR.
Referenced by Init_VM(), and m_core_hash_from_ary().
| static VALUE m_core_hash_merge_kwd | ( | VALUE | recv, | |
| VALUE | hash, | |||
| VALUE | kw | |||
| ) | [static] |
Definition at line 2250 of file vm.c.
References kwmerge_i(), rb_convert_type(), rb_hash_foreach(), and T_HASH.
Referenced by Init_VM().
| static VALUE m_core_hash_merge_ptr | ( | int | argc, | |
| VALUE * | argv, | |||
| VALUE | recv | |||
| ) | [static] |
Definition at line 2224 of file vm.c.
References core_hash_merge(), and hash().
Referenced by Init_VM().
| static VALUE m_core_set_method_alias | ( | VALUE | self, | |
| VALUE | cbase, | |||
| VALUE | sym1, | |||
| VALUE | sym2 | |||
| ) | [static] |
Definition at line 2138 of file vm.c.
References Qnil, rb_alias(), REWIND_CFP, and SYM2ID.
Referenced by Init_VM().
| static VALUE m_core_set_postexe | ( | VALUE | self, | |
| VALUE | iseqval | |||
| ) | [static] |
Definition at line 2166 of file vm.c.
References rb_thread_struct::cfp, GET_THREAD(), GetISeqPtr, rb_block_struct::iseq, rb_block_struct::proc, Qnil, rb_bug(), rb_call_end_proc(), rb_cProc, rb_set_end_proc(), rb_vm_get_ruby_level_next_cfp(), rb_vm_make_proc(), REWIND_CFP, and RUBY_VM_GET_BLOCK_PTR_IN_CFP.
Referenced by Init_VM().
| static VALUE m_core_set_variable_alias | ( | VALUE | self, | |
| VALUE | sym1, | |||
| VALUE | sym2 | |||
| ) | [static] |
Definition at line 2147 of file vm.c.
References Qnil, rb_alias_variable(), REWIND_CFP, and SYM2ID.
Referenced by Init_VM().
| static VALUE m_core_undef_method | ( | VALUE | self, | |
| VALUE | cbase, | |||
| VALUE | sym | |||
| ) | [static] |
Definition at line 2156 of file vm.c.
References INC_VM_STATE_VERSION, Qnil, rb_undef(), REWIND_CFP, and SYM2ID.
Referenced by Init_VM().
| static VALUE main_to_s | ( | VALUE | obj | ) | [static] |
| static VALUE make_localjump_error | ( | const char * | mesg, | |
| VALUE | value, | |||
| int | reason | |||
| ) | [static] |
Definition at line 936 of file vm.c.
References CONST_ID, id, ID2SYM, rb_eLocalJumpError, rb_exc_new2(), rb_iv_set(), TAG_BREAK, TAG_NEXT, TAG_REDO, TAG_RETRY, and TAG_RETURN.
Referenced by rb_vm_localjump_error(), and rb_vm_make_jump_tag_but_local_jump().
| NORETURN | ( | static void | vm_iter_breakrb_thread_t *th, VALUE val | ) |
| static VALUE nsdr | ( | void | ) | [static] |
Definition at line 2275 of file vm.c.
References free, rb_ary_new(), rb_ary_push(), rb_memerror(), and rb_str_new2.
Referenced by Init_VM().
| VALUE rb_backref_get | ( | void | ) |
Definition at line 830 of file vm.c.
References vm_svar_get().
Referenced by date__httpdate(), date__iso8601(), date__jisx0301(), date__parse(), date__rfc2822(), date__rfc3339(), date__strptime_internal(), date__xmlschema(), last_match_getter(), last_paren_match_getter(), match_getter(), nucomp_s_convert(), nurat_s_convert(), postmatch_getter(), prematch_getter(), rb_reg_match_m(), rb_reg_s_last_match(), rb_reg_search(), rb_str_rpartition(), rb_str_split_m(), rb_str_sub_bang(), rb_str_subpat(), rb_str_subpat_set(), scan_once(), and str_gsub().
| void rb_backref_set | ( | VALUE | val | ) |
Definition at line 836 of file vm.c.
References vm_svar_set().
Referenced by date__httpdate(), date__iso8601(), date__jisx0301(), date__parse(), date__rfc2822(), date__rfc3339(), date__strptime_internal(), date__xmlschema(), match_setter(), nucomp_s_convert(), nurat_s_convert(), rb_reg_eqq(), rb_reg_match2(), rb_reg_match_m(), rb_reg_search(), rb_str_index_m(), rb_str_rindex_m(), and reg_match_pos().
| int rb_frame_method_id_and_class | ( | ID * | idp, | |
| VALUE * | klassp | |||
| ) |
Definition at line 1558 of file vm.c.
References GET_THREAD(), and rb_thread_method_id_and_class().
| void rb_frame_pop | ( | void | ) |
Definition at line 263 of file vm.c.
References GET_THREAD(), and vm_pop_frame().
| VALUE rb_iseq_eval | ( | VALUE | iseqval | ) |
Definition at line 1498 of file vm.c.
References GET_THREAD(), RB_GC_GUARD, val, vm_exec(), and vm_set_top_stack().
Referenced by iseq_eval(), and rb_load_internal().
| VALUE rb_iseq_eval_main | ( | VALUE | iseqval | ) |
Definition at line 1511 of file vm.c.
References GET_THREAD(), RB_GC_GUARD, val, vm_exec(), and vm_set_main_stack().
Referenced by ruby_exec_internal().
| void rb_iter_break | ( | void | ) |
Definition at line 1028 of file vm.c.
References GET_THREAD(), Qnil, and vm_iter_break().
Referenced by DEFINE_ENUMFUNCS(), find_i(), find_index_i(), find_index_iter_i(), first_i(), lazy_init_iterator(), lexer_i(), member_i(), take_i(), and take_while_i().
| void rb_iter_break_value | ( | VALUE | val | ) |
Definition at line 1034 of file vm.c.
References GET_THREAD(), and vm_iter_break().
| VALUE rb_lastline_get | ( | void | ) |
Definition at line 842 of file vm.c.
References vm_svar_get().
Referenced by Init_IO(), rb_io_print(), rb_reg_match2(), and uscore_get().
| void rb_lastline_set | ( | VALUE | val | ) |
Definition at line 848 of file vm.c.
References vm_svar_set().
Referenced by argf_gets(), Init_IO(), rb_f_chomp(), rb_f_chop(), rb_f_gsub(), rb_f_sub(), rb_gets(), rb_gzreader_gets(), rb_io_gets_m(), and strio_gets().
| VALUE rb_obj_is_thread | ( | VALUE | obj | ) |
Definition at line 1997 of file vm.c.
References Qfalse, Qtrue, rb_typeddata_is_kind_of(), and thread_data_type.
Referenced by rb_objspace_call_finalizer().
| VALUE* rb_ruby_debug_ptr | ( | void | ) |
Definition at line 2531 of file vm.c.
References GET_VM, and ruby_vm_debug_ptr().
| VALUE* rb_ruby_verbose_ptr | ( | void | ) |
Definition at line 2525 of file vm.c.
References GET_VM, and ruby_vm_verbose_ptr().
| const char* rb_sourcefile | ( | void | ) |
Definition at line 870 of file vm.c.
References rb_thread_struct::cfp, GET_THREAD(), rb_control_frame_struct::iseq, rb_iseq_struct::location, rb_iseq_location_struct::path, rb_vm_get_ruby_level_next_cfp(), and RSTRING_PTR.
| VALUE rb_sourcefilename | ( | void | ) |
Definition at line 856 of file vm.c.
References rb_thread_struct::cfp, GET_THREAD(), rb_control_frame_struct::iseq, rb_iseq_struct::location, rb_iseq_location_struct::path, Qnil, and rb_vm_get_ruby_level_next_cfp().
Referenced by eval_string_with_cref(), rb_const_set(), and warn_print().
| int rb_sourceline | ( | void | ) |
Definition at line 884 of file vm.c.
References rb_thread_struct::cfp, GET_THREAD(), rb_vm_get_ruby_level_next_cfp(), and rb_vm_get_sourceline().
Referenced by ary_new(), call_trace_func(), empty_ary_alloc(), empty_hash_alloc(), empty_str_alloc(), error_pos(), error_print(), eval_string_with_cref(), m_core_hash_from_ary(), newobj(), rb_bug(), rb_const_set(), rb_exec(), rb_f_load(), rb_obj_alloc(), rb_require_safe(), rb_str_resurrect(), setup_exception(), str_new(), update_coverage(), and warn_print().
| VALUE rb_thread_alloc | ( | VALUE | klass | ) |
Definition at line 2071 of file vm.c.
References ruby_thread_init(), and thread_alloc().
Referenced by rb_thread_create(), thread_s_new(), and thread_start().
| VALUE rb_thread_current_status | ( | const rb_thread_t * | th | ) |
Definition at line 1564 of file vm.c.
References rb_thread_struct::cfp, rb_method_entry_struct::def, iseq_catch_table_entry::iseq, rb_control_frame_struct::iseq, rb_method_entry_struct::klass, rb_iseq_location_struct::label, rb_iseq_struct::location, rb_control_frame_struct::me, rb_method_definition_struct::original_id, rb_iseq_location_struct::path, rb_control_frame_struct::pc, Qnil, rb_class2name(), rb_id2name(), rb_sprintf(), rb_vm_get_sourceline(), and RSTRING_PTR.
| void rb_thread_mark | ( | void * | ptr | ) |
Definition at line 1857 of file vm.c.
References rb_thread_struct::cfp, rb_thread_struct::errinfo, rb_thread_struct::event_hooks, rb_thread_struct::fiber, rb_thread_struct::first_args, rb_thread_struct::first_proc, GET_THREAD(), rb_control_frame_struct::iseq, rb_control_frame_struct::klass, rb_thread_struct::last_status, rb_thread_struct::local_storage, rb_thread_struct::locking_mutex, rb_thread_struct::machine_regs, rb_thread_struct::machine_stack_end, rb_thread_struct::machine_stack_start, rb_thread_struct::mark_stack_len, rb_control_frame_struct::me, NULL, rb_thread_struct::pending_interrupt_mask_stack, rb_thread_struct::pending_interrupt_queue, rb_control_frame_struct::proc, rb_gc_mark(), rb_gc_mark_locations, rb_gc_mark_machine_stack(), rb_mark_method_entry(), rb_mark_tbl(), rb_thread_struct::root_fiber, rb_thread_struct::root_svar, RUBY_MARK_ENTER, RUBY_MARK_LEAVE, RUBY_MARK_UNLESS_NULL, RUBY_VM_NORMAL_ISEQ_P, RUBY_VM_PREVIOUS_CONTROL_FRAME, rb_iseq_struct::self, rb_control_frame_struct::self, rb_control_frame_struct::sp, rb_thread_struct::stack, rb_thread_struct::stack_size, rb_thread_struct::stat_insn_usage, rb_thread_struct::thgroup, rb_thread_struct::top_self, rb_thread_struct::top_wrapper, rb_thread_struct::value, and vm_trace_mark_event_hooks().
Referenced by cont_mark().
| int rb_thread_method_id_and_class | ( | rb_thread_t * | th, | |
| ID * | idp, | |||
| VALUE * | klassp | |||
| ) |
Definition at line 1552 of file vm.c.
References rb_thread_struct::cfp, and rb_vm_control_frame_id_and_class().
Referenced by call_trace_func(), and rb_frame_method_id_and_class().
| void rb_thread_recycle_stack_release | ( | VALUE * | stack | ) |
Definition at line 1835 of file vm.c.
References RECYCLE_MAX, and ruby_xfree().
Referenced by thread_start_func_2().
| VALUE rb_vm_call_cfunc | ( | VALUE | recv, | |
| VALUE(*)(VALUE) | func, | |||
| VALUE | arg, | |||
| const rb_block_t * | blockptr, | |||
| VALUE | filename | |||
| ) |
Definition at line 1588 of file vm.c.
References rb_thread_struct::cfp, CLASS_OF, DATA_PTR, GET_THREAD(), Qnil, rb_iseq_new(), rb_control_frame_struct::sp, val, VM_ENVVAL_BLOCK_PTR, VM_FRAME_FLAG_FINISH, VM_FRAME_MAGIC_TOP, vm_pop_frame(), and vm_push_frame().
Referenced by rb_require_safe().
| VALUE rb_vm_cbase | ( | void | ) |
Definition at line 922 of file vm.c.
References rb_thread_struct::cfp, rb_control_frame_struct::ep, GET_THREAD(), rb_control_frame_struct::iseq, rb_eRuntimeError, rb_raise(), rb_vm_get_ruby_level_next_cfp(), and vm_get_cbase().
Referenced by rb_f_autoload(), rb_f_autoload_p(), and rb_undef().
| void rb_vm_change_state | ( | void | ) |
Definition at line 103 of file vm.c.
References INC_VM_STATE_VERSION.
Referenced by rb_clear_cache(), rb_clear_cache_by_class(), rb_clear_cache_by_id(), rb_clear_cache_for_undef(), rb_const_remove(), and rb_const_set().
| void rb_vm_check_redefinition_by_prepend | ( | VALUE | klass | ) |
Definition at line 1084 of file vm.c.
References check_redefined_method(), RCLASS_M_TBL, RCLASS_ORIGIN, st_foreach(), and vm_redefinition_check_flag().
Referenced by rb_prepend_module().
| static void rb_vm_check_redefinition_opt_method | ( | const rb_method_entry_t * | me, | |
| VALUE | klass | |||
| ) | [static] |
Definition at line 1058 of file vm.c.
References rb_method_entry_struct::def, ruby_vm_redefined_flag, st_lookup(), rb_method_definition_struct::type, VM_METHOD_TYPE_CFUNC, and vm_redefinition_check_flag().
Referenced by check_redefined_method().
| rb_block_t* rb_vm_control_frame_block_ptr | ( | rb_control_frame_t * | cfp | ) |
Definition at line 61 of file vm.c.
References VM_CF_BLOCK_PTR().
Referenced by proc_new(), rb_block_given_p(), and rb_mod_refine().
| int rb_vm_control_frame_id_and_class | ( | const rb_control_frame_t * | cfp, | |
| ID * | idp, | |||
| VALUE * | klassp | |||
| ) |
Definition at line 1524 of file vm.c.
References CONST_ID, rb_method_entry_struct::def, rb_iseq_struct::defined_method_id, rb_control_frame_struct::iseq, iseq_catch_table_entry::iseq, rb_iseq_struct::klass, rb_method_entry_struct::klass, rb_iseq_struct::local_iseq, rb_control_frame_struct::me, rb_method_definition_struct::original_id, rb_iseq_struct::parent_iseq, and RUBY_VM_IFUNC_P.
Referenced by fill_id_and_klass(), get_klass(), and rb_thread_method_id_and_class().
| NODE* rb_vm_cref | ( | void | ) |
Definition at line 898 of file vm.c.
References rb_thread_struct::cfp, rb_control_frame_struct::ep, GET_THREAD(), rb_control_frame_struct::iseq, NULL, rb_vm_get_cref(), and rb_vm_get_ruby_level_next_cfp().
Referenced by m_core_define_method(), m_core_define_singleton_method(), rb_method_entry_with_refinements(), rb_mod_nesting(), rb_mod_s_constants(), and top_using().
| VALUE* rb_vm_ep_local_ep | ( | VALUE * | ep | ) |
Definition at line 36 of file vm.c.
References VM_EP_LEP().
Referenced by rb_fiber_start(), and thread_start_func_2().
| rb_control_frame_t* rb_vm_get_binding_creatable_next_cfp | ( | rb_thread_t * | th, | |
| const rb_control_frame_t * | cfp | |||
| ) |
Definition at line 189 of file vm.c.
References rb_control_frame_struct::iseq, RUBY_VM_CONTROL_FRAME_STACK_OVERFLOW_P, and RUBY_VM_PREVIOUS_CONTROL_FRAME.
Referenced by rb_tracearg_binding(), rb_vm_make_binding(), and rb_vm_stack_to_heap().
| rb_control_frame_t* rb_vm_get_ruby_level_next_cfp | ( | rb_thread_t * | th, | |
| const rb_control_frame_t * | cfp | |||
| ) |
Definition at line 201 of file vm.c.
References rb_control_frame_struct::iseq, RUBY_VM_CONTROL_FRAME_STACK_OVERFLOW_P, RUBY_VM_NORMAL_ISEQ_P, and RUBY_VM_PREVIOUS_CONTROL_FRAME.
Referenced by eval_string_with_cref(), fill_path_and_lineno(), m_core_set_postexe(), rb_add_method(), rb_sourcefile(), rb_sourcefilename(), rb_sourceline(), rb_vm_cbase(), rb_vm_cref(), and rb_vm_make_binding().
| void rb_vm_inc_const_missing_count | ( | void | ) |
Definition at line 128 of file vm.c.
References ruby_vm_const_missing_count.
Referenced by rb_const_get_0().
| VALUE rb_vm_invoke_proc | ( | rb_thread_t * | th, | |
| rb_proc_t * | proc, | |||
| int | argc, | |||
| const VALUE * | argv, | |||
| const rb_block_t * | blockptr | |||
| ) |
Definition at line 780 of file vm.c.
References rb_proc_t::block, rb_block_struct::klass, rb_block_struct::self, and vm_invoke_proc().
Referenced by proc_call(), rb_fiber_start(), rb_proc_call(), rb_proc_call_with_block(), thread_start_func_2(), vm_call0_body(), and vm_call_opt_call().
| void rb_vm_jump_tag_but_local_jump | ( | int | state | ) |
Definition at line 1007 of file vm.c.
References JUMP_TAG, NIL_P, Qundef, rb_exc_raise(), and rb_vm_make_jump_tag_but_local_jump().
Referenced by rb_load_internal().
| void rb_vm_localjump_error | ( | const char * | mesg, | |
| VALUE | value, | |||
| int | reason | |||
| ) |
Definition at line 968 of file vm.c.
References make_localjump_error(), and rb_exc_raise().
Referenced by check_block(), rb_need_block(), vm_invoke_block(), and vm_throw().
| VALUE rb_vm_make_binding | ( | rb_thread_t * | th, | |
| const rb_control_frame_t * | src_cfp | |||
| ) |
Definition at line 647 of file vm.c.
References rb_binding_t::blockprocval, rb_binding_t::env, rb_binding_t::first_lineno, GetBindingPtr, rb_control_frame_struct::iseq, rb_iseq_struct::location, rb_iseq_location_struct::path, rb_binding_t::path, rb_binding_alloc(), rb_cBinding, rb_eRuntimeError, rb_raise(), rb_vm_get_binding_creatable_next_cfp(), rb_vm_get_ruby_level_next_cfp(), rb_vm_get_sourceline(), RUBY_VM_PREVIOUS_CONTROL_FRAME, and vm_make_env_object().
Referenced by rb_binding_new_with_cfp().
| VALUE rb_vm_make_env_object | ( | rb_thread_t * | th, | |
| rb_control_frame_t * | cfp | |||
| ) |
Definition at line 530 of file vm.c.
References vm_make_env_object().
Referenced by eval_string_with_cref(), rb_vm_stack_to_heap(), and vm_set_main_stack().
| VALUE rb_vm_make_jump_tag_but_local_jump | ( | int | state, | |
| VALUE | val | |||
| ) |
Definition at line 975 of file vm.c.
References GET_THREAD(), make_localjump_error(), Qnil, Qundef, result, rb_vm_tag::retval, rb_thread_struct::tag, TAG_BREAK, TAG_NEXT, TAG_REDO, TAG_RETRY, and TAG_RETURN.
Referenced by rb_fiber_start(), rb_vm_jump_tag_but_local_jump(), and thread_join().
| VALUE rb_vm_make_proc | ( | rb_thread_t * | th, | |
| const rb_block_t * | block, | |||
| VALUE | klass | |||
| ) |
Definition at line 609 of file vm.c.
References rb_proc_t::block, rb_proc_t::blockprocval, check_env_value(), rb_proc_t::envval, rb_block_struct::ep, GetProcPtr, rb_block_struct::iseq, rb_block_struct::klass, rb_block_struct::proc, PROCDEBUG, rb_bug(), rb_proc_alloc(), RUBY_VM_GET_CFP_FROM_BLOCK_PTR, rb_thread_struct::safe_level, rb_proc_t::safe_level, rb_block_struct::self, rb_thread_struct::stack, rb_thread_struct::stack_size, vm_make_env_object(), and VMDEBUG.
Referenced by m_core_set_postexe(), proc_new(), vm_callee_setup_arg_complex(), vm_make_proc_from_block(), vm_yield_setup_block_args(), and vm_yield_with_cfunc().
| void rb_vm_mark | ( | void * | ptr | ) |
Definition at line 1618 of file vm.c.
References rb_vm_struct::cmd, rb_vm_struct::coverages, DEFINED_EXPR, rb_vm_struct::defined_strings, rb_vm_struct::event_hooks, rb_vm_struct::expanded_load_path, rb_vm_struct::living_threads, rb_vm_struct::load_path, rb_vm_struct::load_path_check_cache, rb_vm_struct::load_path_snapshot, rb_vm_struct::loaded_features, rb_vm_struct::loaded_features_index, rb_vm_struct::loaded_features_snapshot, rb_vm_struct::loading_table, rb_vm_struct::mark_object_ary, rb_gc_mark(), rb_gc_mark_locations, rb_mark_tbl(), RUBY_GC_INFO, RUBY_MARK_ENTER, RUBY_MARK_LEAVE, RUBY_MARK_UNLESS_NULL, RUBY_NSIG, ruby_special_error_count, rb_vm_struct::special_exceptions, st_foreach(), rb_vm_struct::thgroup_default, rb_vm_struct::top_self, rb_vm_struct::trap_list, vm_mark_each_thread_func(), and vm_trace_mark_event_hooks().
Referenced by gc_marks().
| void rb_vm_pop_cfunc_frame | ( | void | ) |
Definition at line 235 of file vm.c.
References rb_method_entry_struct::called_id, rb_thread_struct::cfp, EXEC_EVENT_HOOK, GET_THREAD(), rb_method_entry_struct::klass, rb_control_frame_struct::me, Qnil, RUBY_DTRACE_CMETHOD_RETURN_HOOK, RUBY_EVENT_C_RETURN, rb_control_frame_struct::self, and vm_pop_frame().
Referenced by raise_method_missing(), rb_mod_const_missing(), and rb_vm_rewind_cfp().
| void rb_vm_rewind_cfp | ( | rb_thread_t * | th, | |
| rb_control_frame_t * | cfp | |||
| ) |
Definition at line 245 of file vm.c.
References rb_thread_struct::cfp, rb_vm_pop_cfunc_frame(), VM_FRAME_MAGIC_CFUNC, VM_FRAME_TYPE, and vm_pop_frame().
Referenced by rb_catch_obj(), rb_iterate(), rb_protect(), and rb_rescue2().
| void rb_vm_set_progname | ( | VALUE | filename | ) |
Definition at line 2448 of file vm.c.
References GET_VM, rb_control_frame_struct::iseq, rb_iseq_struct::location, rb_iseq_location_struct::path, rb_thread_struct::stack, and rb_thread_struct::stack_size.
Referenced by ruby_script(), and ruby_set_script_name().
| void rb_vm_stack_to_heap | ( | rb_thread_t * | th | ) |
Definition at line 588 of file vm.c.
References rb_thread_struct::cfp, rb_vm_get_binding_creatable_next_cfp(), rb_vm_make_env_object(), and RUBY_VM_PREVIOUS_CONTROL_FRAME.
Referenced by cont_capture().
| VALUE rb_vm_top_self | ( | void | ) |
Definition at line 2494 of file vm.c.
References GET_VM.
Referenced by eval_string_from_file_helper(), Init_eval(), Init_eval_method(), Init_Proc(), Init_top_self(), Init_VM(), rb_eval_cmd(), rb_eval_string_wrap(), rb_load_internal(), rb_require_safe(), require_libraries(), ruby_eval_string_from_file(), and ruby_thread_init().
| static VALUE ruby_thread_init | ( | VALUE | self | ) | [static] |
Definition at line 2054 of file vm.c.
References GET_THREAD(), GetThreadPtr, Qnil, rb_hash_new(), rb_iv_set(), rb_vm_top_self(), rb_thread_struct::root_svar, th_init(), rb_thread_struct::top_self, rb_thread_struct::top_wrapper, and rb_thread_struct::vm.
Referenced by rb_thread_alloc().
| void ruby_vm_at_exit | ( | void(*)(ruby_vm_t *) | func | ) |
ruby_vm_at_exit registers a function _func_ to be invoked when a VM passed away.
Functions registered this way runs in reverse order of registration, just like END {} block does. The difference is its timing to be triggered. ruby_vm_at_exit functions runs when a VM _passed_ _away_, while END {} blocks runs just _before_ a VM _is_ _passing_ _away_.
You cannot register a function to another VM than where you are in. So where to register is intuitive, omitted. OTOH the argument _func_ cannot know which VM it is in because at the time of invocation, the VM has already died and there is no execution context. The VM itself is passed as the first argument to it.
| [in] | func | the function to register. |
Definition at line 272 of file vm.c.
References at_exit, func, GET_VM, and rb_ary_push().
| VALUE* ruby_vm_debug_ptr | ( | rb_vm_t * | vm | ) |
Definition at line 2519 of file vm.c.
References rb_vm_struct::debug.
Referenced by rb_ruby_debug_ptr().
| int ruby_vm_destruct | ( | rb_vm_t * | vm | ) |
Definition at line 1665 of file vm.c.
References rb_vm_struct::living_threads, rb_vm_struct::main_thread, rb_vm_struct::objspace, rb_fiber_reset_root_local_storage(), rb_gc_force_recycle(), rb_objspace_free(), rb_vm_gvl_destroy(), RUBY_FREE_ENTER, RUBY_FREE_LEAVE, ruby_vm_run_at_exit_hooks(), ruby_xfree(), rb_thread_struct::self, rb_vm_struct::self, st_free_table(), and thread_free().
Referenced by ruby_cleanup().
| static void ruby_vm_run_at_exit_hooks | ( | rb_vm_t * | vm | ) | [static] |
Definition at line 278 of file vm.c.
References rb_vm_struct::at_exit, func, RARRAY_LEN, rb_ary_free(), and rb_ary_pop().
Referenced by ruby_vm_destruct().
| VALUE* ruby_vm_verbose_ptr | ( | rb_vm_t * | vm | ) |
Definition at line 2513 of file vm.c.
References rb_vm_struct::verbose.
Referenced by rb_ruby_verbose_ptr().
| static VALUE sdr | ( | void | ) | [static] |
Definition at line 2267 of file vm.c.
References Qnil, and rb_vm_bugreport().
Referenced by Init_VM().
| static void th_init | ( | rb_thread_t * | th, | |
| VALUE | self | |||
| ) | [static] |
Definition at line 2022 of file vm.c.
References rb_thread_struct::cfp, rb_vm_struct::default_params, rb_thread_struct::errinfo, rb_thread_struct::last_status, malloc, Qnil, Qundef, rb_thread_struct::root_svar, rb_thread_struct::self, rb_thread_struct::stack, rb_thread_struct::stack_size, rb_thread_struct::status, thread_recycle_stack(), THREAD_RUNNABLE, rb_vm_struct::thread_vm_stack_size, rb_thread_struct::vm, VM_ENVVAL_BLOCK_PTR, VM_FRAME_FLAG_FINISH, VM_FRAME_MAGIC_TOP, vm_push_frame(), and rb_thread_struct::waiting_fd.
Referenced by Init_BareVM(), and ruby_thread_init().
| static VALUE thread_alloc | ( | VALUE | klass | ) | [static] |
Definition at line 2008 of file vm.c.
References thread_data_type, TypedData_Make_Struct, and TypedData_Wrap_Struct.
Referenced by rb_thread_alloc().
| static void thread_free | ( | void * | ptr | ) | [static] |
Definition at line 1926 of file vm.c.
References free, rb_thread_struct::keeping_mutexes, rb_thread_struct::local_storage, rb_thread_struct::locking_mutex, rb_vm_struct::main_thread, NULL, Qfalse, rb_bug(), rb_thread_struct::root_fiber, RUBY_FREE_ENTER, RUBY_FREE_LEAVE, RUBY_FREE_UNLESS_NULL, RUBY_GC_INFO, ruby_xfree(), st_free_table(), rb_thread_struct::stack, and rb_thread_struct::vm.
Referenced by ruby_vm_destruct().
| static size_t thread_memsize | ( | const void * | ptr | ) | [static] |
Definition at line 1967 of file vm.c.
References rb_thread_struct::local_storage, rb_thread_struct::root_fiber, size, st_memsize(), and rb_thread_struct::stack_size.
| static VALUE* thread_recycle_stack | ( | size_t | size | ) | [static] |
| static rb_block_t* VM_CF_BLOCK_PTR | ( | rb_control_frame_t * | cfp | ) | [inline, static] |
Definition at line 54 of file vm.c.
References VM_CF_LEP(), and VM_EP_BLOCK_PTR.
Referenced by check_block(), rb_f_block_given_p(), rb_iterate(), rb_vm_control_frame_block_ptr(), rb_yield_refine_block(), vm_invoke_block(), and yield_under().
| static VALUE* VM_CF_LEP | ( | rb_control_frame_t * | cfp | ) | [inline, static] |
Definition at line 42 of file vm.c.
References rb_control_frame_struct::ep, and VM_EP_LEP().
Referenced by rb_yield_refine_block(), VM_CF_BLOCK_PTR(), vm_cfp_svar_get(), vm_cfp_svar_set(), vm_make_env_object(), vm_throw(), and yield_under().
| static VALUE* VM_CF_PREV_EP | ( | rb_control_frame_t * | cfp | ) | [inline, static] |
Definition at line 48 of file vm.c.
References VM_EP_PREV_EP.
Referenced by rb_f_local_variables(), and vm_iter_break().
| static VALUE vm_cfp_svar_get | ( | rb_thread_t * | th, | |
| rb_control_frame_t * | cfp, | |||
| VALUE | key | |||
| ) | [static] |
Definition at line 802 of file vm.c.
References lep_svar_get(), VM_CF_LEP(), and vm_normal_frame().
Referenced by vm_svar_get().
| static void vm_cfp_svar_set | ( | rb_thread_t * | th, | |
| rb_control_frame_t * | cfp, | |||
| VALUE | key, | |||
| const VALUE | val | |||
| ) | [static] |
Definition at line 809 of file vm.c.
References lep_svar_set(), VM_CF_LEP(), and vm_normal_frame().
Referenced by vm_svar_set().
| static void vm_clear_all_cache | ( | void | ) | [static] |
Definition at line 120 of file vm.c.
References ruby_vm_global_state_version, vm_clear_all_inline_method_cache(), and vm_clear_global_method_cache().
| static void vm_clear_all_inline_method_cache | ( | void | ) | [static] |
Definition at line 111 of file vm.c.
Referenced by vm_clear_all_cache().
| static void vm_clear_global_method_cache | ( | void | ) | [static] |
Referenced by vm_clear_all_cache().
| static int vm_collect_local_variables_in_heap | ( | rb_thread_t * | th, | |
| VALUE * | ep, | |||
| VALUE | ary | |||
| ) | [static] |
Definition at line 512 of file vm.c.
References collect_local_variables_in_env(), env, ENV_IN_HEAP_P, ENV_VAL, and GetEnvPtr.
| static VALUE vm_default_params | ( | void | ) | [static] |
Definition at line 1721 of file vm.c.
References GET_VM, rb_hash_new(), rb_obj_freeze(), result, and SET.
Referenced by Init_VM().
| static void vm_default_params_setup | ( | rb_vm_t * | vm | ) | [static] |
Definition at line 1771 of file vm.c.
References check_machine_stack_size(), rb_vm_struct::default_params, rb_vm_struct::fiber_machine_stack_size, rb_vm_struct::fiber_vm_stack_size, get_param(), RUBY_VM_FIBER_MACHINE_STACK_SIZE, RUBY_VM_FIBER_MACHINE_STACK_SIZE_MIN, RUBY_VM_FIBER_VM_STACK_SIZE, RUBY_VM_FIBER_VM_STACK_SIZE_MIN, RUBY_VM_THREAD_MACHINE_STACK_SIZE, RUBY_VM_THREAD_MACHINE_STACK_SIZE_MIN, RUBY_VM_THREAD_VM_STACK_SIZE, RUBY_VM_THREAD_VM_STACK_SIZE_MIN, rb_vm_struct::thread_machine_stack_size, and rb_vm_struct::thread_vm_stack_size.
Referenced by vm_init2().
| static void vm_define_method | ( | rb_thread_t * | th, | |
| VALUE | obj, | |||
| ID | id, | |||
| VALUE | iseqval, | |||
| rb_num_t | is_singleton, | |||
| NODE * | cref | |||
| ) | [static] |
Definition at line 2079 of file vm.c.
References COPY_CREF, GetISeqPtr, INC_VM_STATE_VERSION, NIL_P, NOEX_MODFUNC, NOEX_PUBLIC, rb_add_method(), rb_eTypeError, RB_GC_GUARD, rb_iseq_clone(), rb_raise(), rb_singleton_class(), and VM_METHOD_TYPE_ISEQ.
Referenced by m_core_define_method(), and m_core_define_singleton_method().
| static VALUE* VM_EP_LEP | ( | VALUE * | ep | ) | [inline, static] |
Definition at line 25 of file vm.c.
References VM_EP_LEP_P, and VM_EP_PREV_EP.
Referenced by rb_vm_ep_local_ep(), and VM_CF_LEP().
| static VALUE vm_exec | ( | rb_thread_t * | th | ) | [static] |
Definition at line 1259 of file vm.c.
References rb_method_entry_struct::called_id, rb_iseq_struct::catch_table, rb_iseq_struct::catch_table_size, iseq_catch_table_entry::CATCH_TYPE_BREAK, iseq_catch_table_entry::CATCH_TYPE_ENSURE, iseq_catch_table_entry::CATCH_TYPE_NEXT, iseq_catch_table_entry::CATCH_TYPE_REDO, iseq_catch_table_entry::CATCH_TYPE_RESCUE, iseq_catch_table_entry::CATCH_TYPE_RETRY, rb_thread_struct::cfp, iseq_catch_table_entry::cont, iseq_catch_table_entry::end, rb_control_frame_struct::ep, err, rb_thread_struct::errinfo, EXEC_EVENT_HOOK, EXEC_EVENT_HOOK_AND_POP_FRAME, EXEC_TAG, GET_THROWOBJ_CATCH_POINT, GET_THROWOBJ_VAL, GetISeqPtr, iseq_catch_table_entry::iseq, rb_control_frame_struct::iseq, rb_iseq_struct::iseq_encoded, JUMP_TAG, rb_control_frame_struct::klass, rb_method_entry_struct::klass, rb_iseq_struct::local_size, rb_control_frame_struct::me, NULL, rb_control_frame_struct::pc, Qnil, result, RUBY_DTRACE_METHOD_RETURN_HOOK, RUBY_EVENT_B_RETURN, RUBY_EVENT_C_RETURN, RUBY_EVENT_END, RUBY_EVENT_RETURN, RUBY_VM_PREVIOUS_CONTROL_FRAME, rb_control_frame_struct::self, SET_THROWOBJ_CATCH_POINT, SET_THROWOBJ_STATE, rb_control_frame_struct::sp, iseq_catch_table_entry::sp, iseq_catch_table_entry::start, rb_thread_struct::state, TAG_BREAK, TAG_NEXT, TAG_RAISE, TAG_REDO, TAG_RETRY, TAG_RETURN, TH_POP_TAG, TH_POP_TAG2, TH_PUSH_TAG, iseq_catch_table_entry::type, type, UNLIKELY, vm_base_ptr(), VM_ENVVAL_PREV_EP_PTR, vm_exec_core(), VM_FRAME_MAGIC_BLOCK, VM_FRAME_MAGIC_CFUNC, VM_FRAME_MAGIC_CLASS, VM_FRAME_MAGIC_METHOD, VM_FRAME_MAGIC_RESCUE, VM_FRAME_TYPE, VM_FRAME_TYPE_FINISH_P, vm_pop_frame(), and vm_push_frame().
Referenced by invoke_block_from_c(), rb_iseq_eval(), and rb_iseq_eval_main().
| static rb_control_frame_t* vm_get_ruby_level_caller_cfp | ( | rb_thread_t * | th, | |
| rb_control_frame_t * | cfp | |||
| ) | [static] |
Definition at line 213 of file vm.c.
References rb_control_frame_struct::flag, rb_control_frame_struct::iseq, RUBY_VM_CONTROL_FRAME_STACK_OVERFLOW_P, RUBY_VM_NORMAL_ISEQ_P, RUBY_VM_PREVIOUS_CONTROL_FRAME, and VM_FRAME_FLAG_PASSED.
Referenced by rb_current_realfilepath(), rb_f_block_given_p(), and rb_f_local_variables().
| static void vm_init2 | ( | rb_vm_t * | vm | ) | [static] |
Definition at line 1799 of file vm.c.
References rb_vm_struct::at_exit, MEMZERO, RARRAY_EMBED_FLAG, RARRAY_EMBED_LEN_MASK, rb_vm_struct::src_encoding_index, T_ARRAY, and vm_default_params_setup().
Referenced by Init_BareVM().
| static void vm_init_redefined_flag | ( | void | ) | [static] |
| static VALUE vm_invoke_proc | ( | rb_thread_t * | th, | |
| rb_proc_t * | proc, | |||
| VALUE | self, | |||
| VALUE | defined_class, | |||
| int | argc, | |||
| const VALUE * | argv, | |||
| const rb_block_t * | blockptr | |||
| ) | [static] |
Definition at line 752 of file vm.c.
References rb_proc_t::block, EXEC_TAG, invoke_block_from_c(), rb_proc_t::is_from_method, JUMP_TAG, Qundef, rb_proc_t::safe_level, rb_thread_struct::safe_level, TH_POP_TAG, TH_PUSH_TAG, and val.
Referenced by rb_vm_invoke_proc(), and vm_call_bmethod_body().
| static void vm_iter_break | ( | rb_thread_t * | th, | |
| VALUE | val | |||
| ) | [static] |
Definition at line 1017 of file vm.c.
References rb_thread_struct::cfp, rb_thread_struct::errinfo, NEW_THROW_OBJECT, rb_thread_struct::state, TAG_BREAK, TH_JUMP_TAG, and VM_CF_PREV_EP().
Referenced by rb_iter_break(), and rb_iter_break_value().
| static VALUE vm_make_env_each | ( | rb_thread_t *const | th, | |
| rb_control_frame_t *const | cfp, | |||
| VALUE * | envptr, | |||
| VALUE *const | endptr | |||
| ) | [static] |
Definition at line 408 of file vm.c.
References ALLOC_N, rb_env_t::block, dp, rb_env_t::env, env, env_alloc(), ENV_IN_HEAP_P, rb_env_t::env_size, ENV_VAL, rb_block_struct::ep, rb_control_frame_struct::ep, GC_GUARDED_PTR_REF, GetEnvPtr, rb_block_struct::iseq, rb_control_frame_struct::iseq, rb_env_t::local_size, rb_iseq_struct::local_size, rb_env_t::prev_envval, rb_bug(), RUBY_VM_NORMAL_ISEQ_P, SDR, rb_control_frame_struct::self, rb_block_struct::self, rb_thread_struct::stack, and VM_ENVVAL_PREV_EP_PTR.
Referenced by vm_make_env_object().
| static VALUE vm_make_env_object | ( | rb_thread_t * | th, | |
| rb_control_frame_t * | cfp, | |||
| VALUE * | blockprocptr | |||
| ) | [static] |
Definition at line 537 of file vm.c.
References rb_proc_t::block, check_env_value(), rb_control_frame_struct::ep, GetProcPtr, PROCDEBUG, VM_CF_LEP(), VM_ENVVAL_BLOCK_PTR, VM_EP_BLOCK_PTR, vm_make_env_each(), vm_make_proc_from_block(), and vm_rewrite_ep_in_errinfo().
Referenced by rb_vm_make_binding(), rb_vm_make_env_object(), and rb_vm_make_proc().
| static VALUE vm_make_proc_from_block | ( | rb_thread_t * | th, | |
| rb_block_t * | block | |||
| ) | [static] |
Definition at line 600 of file vm.c.
References rb_block_struct::proc, rb_cProc, and rb_vm_make_proc().
Referenced by vm_make_env_object().
| static int vm_mark_each_thread_func | ( | st_data_t | key, | |
| st_data_t | value, | |||
| st_data_t | dummy | |||
| ) | [static] |
| static size_t vm_memsize | ( | const void * | ptr | ) | [static] |
Definition at line 1698 of file vm.c.
References DEFINED_EXPR, rb_vm_struct::defined_strings, rb_vm_struct::living_threads, size, and st_memsize().
| static rb_control_frame_t* vm_normal_frame | ( | rb_thread_t * | th, | |
| rb_control_frame_t * | cfp | |||
| ) | [static] |
Definition at line 790 of file vm.c.
References rb_control_frame_struct::pc, RUBY_VM_CONTROL_FRAME_STACK_OVERFLOW_P, and RUBY_VM_PREVIOUS_CONTROL_FRAME.
Referenced by vm_cfp_svar_get(), and vm_cfp_svar_set().
| static int vm_redefinition_check_flag | ( | VALUE | klass | ) | [static] |
Definition at line 1044 of file vm.c.
References ARRAY_REDEFINED_OP_FLAG, BIGNUM_REDEFINED_OP_FLAG, FIXNUM_REDEFINED_OP_FLAG, FLOAT_REDEFINED_OP_FLAG, HASH_REDEFINED_OP_FLAG, rb_cArray, rb_cBignum, rb_cFixnum, rb_cFloat, rb_cHash, rb_cString, rb_cSymbol, rb_cTime, STRING_REDEFINED_OP_FLAG, SYMBOL_REDEFINED_OP_FLAG, and TIME_REDEFINED_OP_FLAG.
Referenced by rb_vm_check_redefinition_by_prepend(), and rb_vm_check_redefinition_opt_method().
| static void vm_rewrite_ep_in_errinfo | ( | rb_thread_t * | th | ) | [static] |
Definition at line 562 of file vm.c.
References rb_thread_struct::cfp, rb_env_t::env, ENV_IN_HEAP_P, rb_control_frame_struct::ep, GET_THROWOBJ_CATCH_POINT, GetEnvPtr, rb_control_frame_struct::iseq, rb_env_t::local_size, rb_cEnv, RB_TYPE_P, RBASIC, RUBY_VM_CONTROL_FRAME_STACK_OVERFLOW_P, RUBY_VM_NORMAL_ISEQ_P, RUBY_VM_PREVIOUS_CONTROL_FRAME, SET_THROWOBJ_CATCH_POINT, SPECIAL_CONST_P, T_NODE, and rb_iseq_struct::type.
Referenced by vm_make_env_object().
| static void vm_set_eval_stack | ( | rb_thread_t * | th, | |
| VALUE | iseqval, | |||
| const NODE * | cref, | |||
| rb_block_t * | base_block | |||
| ) | [static] |
Definition at line 153 of file vm.c.
References rb_thread_struct::cfp, CHECK_VM_STACK_OVERFLOW, rb_control_frame_struct::ep, rb_block_struct::ep, GetISeqPtr, rb_iseq_struct::iseq_encoded, rb_block_struct::klass, rb_iseq_struct::local_size, rb_block_struct::self, rb_control_frame_struct::sp, rb_iseq_struct::stack_max, VM_ENVVAL_PREV_EP_PTR, VM_FRAME_FLAG_FINISH, VM_FRAME_MAGIC_EVAL, and vm_push_frame().
Referenced by vm_set_main_stack().
| static void vm_set_main_stack | ( | rb_thread_t * | th, | |
| VALUE | iseqval | |||
| ) | [static] |
Definition at line 170 of file vm.c.
References rb_env_t::block, rb_thread_struct::cfp, rb_binding_t::env, env, GetBindingPtr, GetEnvPtr, GetISeqPtr, rb_iseq_struct::local_size, rb_cObject, rb_const_get(), rb_intern, rb_vm_make_env_object(), and vm_set_eval_stack().
Referenced by rb_iseq_eval_main().
| static void vm_set_top_stack | ( | rb_thread_t * | th, | |
| VALUE | iseqval | |||
| ) | [static] |
Definition at line 136 of file vm.c.
References rb_thread_struct::cfp, CHECK_VM_STACK_OVERFLOW, GetISeqPtr, rb_iseq_struct::iseq_encoded, rb_iseq_struct::local_size, rb_cObject, rb_eTypeError, rb_raise(), rb_control_frame_struct::sp, rb_iseq_struct::stack_max, rb_thread_struct::top_self, rb_iseq_struct::type, VM_ENVVAL_BLOCK_PTR, VM_FRAME_FLAG_FINISH, VM_FRAME_MAGIC_TOP, and vm_push_frame().
Referenced by rb_iseq_eval().
| static VALUE vm_svar_get | ( | VALUE | key | ) | [static] |
Definition at line 816 of file vm.c.
References rb_thread_struct::cfp, GET_THREAD(), and vm_cfp_svar_get().
Referenced by rb_backref_get(), and rb_lastline_get().
| static void vm_svar_set | ( | VALUE | key, | |
| VALUE | val | |||
| ) | [static] |
Definition at line 823 of file vm.c.
References rb_thread_struct::cfp, GET_THREAD(), and vm_cfp_svar_set().
Referenced by rb_backref_set(), and rb_lastline_set().
| void vm_trace_mark_event_hooks | ( | rb_hook_list_t * | hooks | ) |
Definition at line 51 of file vm_trace.c.
References rb_event_hook_struct::data, rb_hook_list_struct::hooks, rb_event_hook_struct::next, and rb_gc_mark().
Referenced by rb_thread_mark(), and rb_vm_mark().
| static VALUE vm_yield | ( | rb_thread_t * | th, | |
| int | argc, | |||
| const VALUE * | argv | |||
| ) | [inline, static] |
Definition at line 744 of file vm.c.
References check_block(), invoke_block_from_c(), rb_block_struct::klass, and rb_block_struct::self.
| static VALUE vm_yield_with_cref | ( | rb_thread_t * | th, | |
| int | argc, | |||
| const VALUE * | argv, | |||
| const NODE * | cref | |||
| ) | [inline, static] |
Definition at line 736 of file vm.c.
References check_block(), invoke_block_from_c(), rb_block_struct::klass, and rb_block_struct::self.
const rb_data_type_t env_data_type [static] |
{
"VM/env",
{env_mark, env_free, env_memsize,},
}
| VALUE rb_cEnv |
Definition at line 91 of file vm.c.
Referenced by env_alloc(), Init_VM(), and vm_rewrite_ep_in_errinfo().
| VALUE rb_cRubyVM |
Definition at line 89 of file vm.c.
Referenced by Init_ISeq(), and Init_VM().
| VALUE rb_cThread |
Definition at line 90 of file vm.c.
Referenced by Init_Thread(), Init_VM(), Init_vm_backtrace(), Init_vm_trace(), and rb_thread_create().
| size_t rb_gc_stack_maxsize |
| VALUE* rb_gc_stack_start |
| VALUE rb_mRubyVMFrozenCore |
| rb_vm_t* ruby_current_vm = 0 |
| const rb_data_type_t ruby_threadptr_data_type |
{
"VM/thread",
{
rb_thread_mark,
thread_free,
thread_memsize,
},
}
| void(* ruby_vm_collect_usage_func_insn)(int insn) = NULL |
| void(* ruby_vm_collect_usage_func_operand)(int insn, int n, VALUE op) = NULL |
| void(* ruby_vm_collect_usage_func_register)(int reg, int isset) = NULL |
| VALUE ruby_vm_const_missing_count = 0 |
Definition at line 94 of file vm.c.
Referenced by rb_vm_inc_const_missing_count().
| rb_event_flag_t ruby_vm_event_flags |
Definition at line 98 of file vm.c.
Referenced by recalc_add_ruby_vm_event_flags(), and recalc_remove_ruby_vm_event_flags().
| char ruby_vm_redefined_flag[BOP_LAST_] |
Definition at line 95 of file vm.c.
Referenced by rb_vm_check_redefinition_opt_method().
int thread_recycle_stack_count = 0 [static] |
VALUE* thread_recycle_stack_slot[RECYCLE_MAX] [static] |
const rb_data_type_t vm_data_type [static] |
{
"VM",
{rb_vm_mark, vm_free, vm_memsize,},
}
st_table* vm_opt_method_table = 0 [static] |
1.6.1