|
Ruby
1.9.3p448(2013-06-27revision41675)
|
#include "ruby/ruby.h"#include "vm_core.h"#include <stdio.h>#include <setjmp.h>#include <sys/types.h>#include <signal.h>#include <errno.h>#include <sys/stat.h>Go to the source code of this file.
| #define CHECK_STACK_OVERFLOW | ( | cfp, | |
| margin | |||
| ) |
do \ if ((VALUE *)((char *)(((VALUE *)(cfp)->sp) + (margin)) + sizeof(rb_control_frame_t)) >= ((VALUE *)(cfp))) { \ rb_exc_raise(sysstack_error); \ } \ while (0)
Definition at line 177 of file eval_intern.h.
Referenced by caller_setup_args(), eval_string_with_cref(), invoke_block_from_c(), vm_call0(), vm_invoke_block(), vm_set_eval_stack(), vm_set_main_stack(), vm_set_top_stack(), vm_setup_method(), and vm_yield_setup_block_args().
| #define EXEC_TAG | ( | ) | TH_EXEC_TAG() |
Definition at line 130 of file eval_intern.h.
Referenced by error_print(), eval_string_with_cref(), exec_recursive_i(), rb_catch_obj(), rb_ensure(), rb_eval_cmd(), rb_exec_end_proc(), rb_fiber_start(), rb_load_internal(), rb_load_protect(), rb_method_call_with_block(), rb_protect(), rb_require_safe(), rb_rescue2(), rb_thread_terminate_all(), rb_vm_invoke_proc(), ruby_cleanup(), ruby_exec_internal(), ruby_finalize_0(), ruby_init(), ruby_options(), setup_exception(), thread_start_func_2(), thread_suppress_tracing(), and vm_exec().
| #define GET_THROWOBJ_CATCH_POINT | ( | obj | ) | ((VALUE*)RNODE((obj))->u2.value) |
Definition at line 170 of file eval_intern.h.
Referenced by rb_iterate(), rb_vm_rewrite_dfp_in_errinfo(), and vm_exec().
| #define GET_THROWOBJ_STATE | ( | obj | ) | ((int)RNODE((obj))->u3.value) |
Definition at line 171 of file eval_intern.h.
Referenced by thread_join(), and vm_throw().
| #define GET_THROWOBJ_VAL | ( | obj | ) | ((VALUE)RNODE((obj))->u1.value) |
Definition at line 169 of file eval_intern.h.
Referenced by thread_join(), and vm_exec().
| #define INTERNAL_EXCEPTION_P | ( | exc | ) | FIXNUM_P(exc) |
Definition at line 139 of file eval_intern.h.
Referenced by setup_exception().
| #define JUMP_TAG | ( | st | ) | TH_JUMP_TAG(GET_THREAD(), (st)) |
Definition at line 137 of file eval_intern.h.
Referenced by eval_string_with_cref(), exec_recursive_i(), rb_catch_obj(), rb_ensure(), rb_eval_cmd(), rb_eval_string_wrap(), rb_jump_tag(), rb_longjmp(), rb_memerror(), rb_method_call_with_block(), rb_raise_jump(), rb_require_safe(), rb_rescue2(), rb_throw_obj(), rb_vm_invoke_proc(), rb_vm_jump_tag_but_local_jump(), setup_exception(), thread_suppress_tracing(), and vm_exec().
| #define NEW_THROW_OBJECT | ( | val, | |
| pt, | |||
| st | |||
| ) | ((VALUE)rb_node_newnode(NODE_LIT, (VALUE)(val), (VALUE)(pt), (VALUE)(st))) |
Definition at line 162 of file eval_intern.h.
Referenced by rb_throw_obj(), vm_iter_break(), and vm_throw().
| #define PASS_PASSED_BLOCK | ( | ) |
do { \ rb_thread_t * const __th__ = GET_THREAD(); \ PASS_PASSED_BLOCK_TH(__th__); \ } while (0)
Definition at line 12 of file eval_intern.h.
Referenced by rb_call_super(), and rb_obj_call_init().
| #define PASS_PASSED_BLOCK_TH | ( | th | ) |
do { \ (th)->passed_block = GC_GUARDED_PTR_REF((rb_block_t *)(th)->cfp->lfp[0]); \ (th)->cfp->flag |= VM_FRAME_FLAG_PASSED; \ } while (0)
Definition at line 7 of file eval_intern.h.
Referenced by rb_funcall_passing_block(), and send_internal().
| #define POP_TAG | ( | ) | TH_POP_TAG() |
Definition at line 126 of file eval_intern.h.
Referenced by error_print(), eval_string_with_cref(), exec_recursive_i(), rb_catch_obj(), rb_ensure(), rb_eval_cmd(), rb_exec_end_proc(), rb_load_internal(), rb_load_protect(), rb_method_call_with_block(), rb_protect(), rb_require_safe(), rb_rescue2(), rb_thread_terminate_all(), ruby_cleanup(), ruby_exec_internal(), ruby_finalize_0(), ruby_init(), ruby_options(), setup_exception(), and thread_suppress_tracing().
| #define PUSH_TAG | ( | ) | TH_PUSH_TAG(GET_THREAD()) |
Definition at line 125 of file eval_intern.h.
Referenced by error_print(), eval_string_with_cref(), exec_recursive_i(), rb_catch_obj(), rb_ensure(), rb_eval_cmd(), rb_exec_end_proc(), rb_load_internal(), rb_load_protect(), rb_method_call_with_block(), rb_protect(), rb_require_safe(), rb_rescue2(), rb_thread_terminate_all(), ruby_cleanup(), ruby_exec_internal(), ruby_finalize_0(), ruby_init(), ruby_options(), setup_exception(), and thread_suppress_tracing().
| #define rb_thread_raised_clear | ( | th | ) | ((th)->raised_flag = 0) |
Definition at line 196 of file eval_intern.h.
Referenced by error_print(), rb_longjmp(), rb_memerror(), and rb_raise_jump().
| #define rb_thread_raised_p | ( | th, | |
| f | |||
| ) | (((th)->raised_flag & (f)) != 0) |
Definition at line 195 of file eval_intern.h.
Referenced by rb_memerror(), and stack_check().
| #define rb_thread_raised_reset | ( | th, | |
| f | |||
| ) | ((th)->raised_flag &= ~(f)) |
Definition at line 194 of file eval_intern.h.
| #define rb_thread_raised_set | ( | th, | |
| f | |||
| ) | ((th)->raised_flag |= (f)) |
Definition at line 193 of file eval_intern.h.
Referenced by error_print(), rb_memerror(), and stack_check().
| #define ruby_longjmp | ( | env, | |
| val | |||
| ) | RUBY_LONGJMP((env),(val)) |
Definition at line 68 of file eval_intern.h.
Referenced by cont_restore_1().
| #define ruby_setjmp | ( | env | ) | RUBY_SETJMP(env) |
Definition at line 67 of file eval_intern.h.
Referenced by cont_capture(), and fiber_store().
| #define SAVE_ROOT_JMPBUF | ( | th, | |
| stmt | |||
| ) |
do \ if (ruby_setjmp((th)->root_jmpbuf) == 0) { \ stmt; \ } \ else { \ rb_fiber_start(); \ } while (0)
Definition at line 103 of file eval_intern.h.
Referenced by rb_protect(), ruby_cleanup(), ruby_exec_internal(), ruby_options(), and thread_start_func_2().
| #define SCOPE_CHECK | ( | f | ) | (rb_vm_cref()->nd_visi == (f)) |
Definition at line 174 of file eval_intern.h.
Referenced by rb_attr().
| #define SCOPE_SET | ( | f | ) | (rb_vm_cref()->nd_visi = (f)) |
Definition at line 175 of file eval_intern.h.
Referenced by init_ext_call(), load_ext(), rb_mod_modfunc(), rb_mod_private(), rb_mod_protected(), and rb_mod_public().
| #define SCOPE_TEST | ( | f | ) | (rb_vm_cref()->nd_visi & (f)) |
Definition at line 173 of file eval_intern.h.
Referenced by rb_attr().
| #define SET_THROWOBJ_CATCH_POINT | ( | obj, | |
| val | |||
| ) | (RNODE((obj))->u2.value = (val)) |
Definition at line 164 of file eval_intern.h.
Referenced by rb_vm_rewrite_dfp_in_errinfo(), and vm_exec().
| #define SET_THROWOBJ_STATE | ( | obj, | |
| val | |||
| ) | (RNODE((obj))->u3.value = (val)) |
Definition at line 166 of file eval_intern.h.
Referenced by vm_exec().
| #define TAG_BREAK RUBY_TAG_BREAK |
Definition at line 153 of file eval_intern.h.
Referenced by error_handle(), make_localjump_error(), rb_iterate(), rb_vm_make_jump_tag_but_local_jump(), vm_exec(), vm_iter_break(), and vm_throw().
| #define TAG_FATAL RUBY_TAG_FATAL |
Definition at line 159 of file eval_intern.h.
Referenced by error_handle(), rb_exc_fatal(), rb_threadptr_execute_interrupts_common(), setup_exception(), and thread_start_func_2().
| #define TAG_MASK RUBY_TAG_MASK |
Definition at line 160 of file eval_intern.h.
Referenced by error_handle().
| #define TAG_NEXT RUBY_TAG_NEXT |
Definition at line 154 of file eval_intern.h.
Referenced by error_handle(), make_localjump_error(), rb_vm_make_jump_tag_but_local_jump(), and vm_exec().
| #define TAG_RAISE RUBY_TAG_RAISE |
Definition at line 157 of file eval_intern.h.
Referenced by error_handle(), eval_string_with_cref(), rb_exc_raise(), rb_fiber_start(), rb_memerror(), rb_raise_jump(), rb_rescue2(), ruby_thread_stack_overflow(), vm_exec(), and vm_throw().
| #define TAG_REDO RUBY_TAG_REDO |
Definition at line 156 of file eval_intern.h.
Referenced by error_handle(), make_localjump_error(), rb_vm_make_jump_tag_but_local_jump(), and vm_exec().
| #define TAG_RETRY RUBY_TAG_RETRY |
Definition at line 155 of file eval_intern.h.
Referenced by error_handle(), make_localjump_error(), rb_iterate(), rb_rescue2(), rb_vm_make_jump_tag_but_local_jump(), vm_exec(), and vm_throw().
| #define TAG_RETURN RUBY_TAG_RETURN |
Definition at line 152 of file eval_intern.h.
Referenced by error_handle(), make_localjump_error(), rb_vm_make_jump_tag_but_local_jump(), vm_exec(), and vm_throw().
| #define TAG_THROW RUBY_TAG_THROW |
Definition at line 158 of file eval_intern.h.
Referenced by error_handle(), rb_catch_obj(), rb_throw_obj(), and vm_throw().
| #define TH_EXEC_TAG | ( | ) | ruby_setjmp(_th->tag->buf) |
Definition at line 128 of file eval_intern.h.
Referenced by rb_iterate().
| #define TH_JUMP_TAG | ( | th, | |
| st | |||
| ) |
do { \ ruby_longjmp((th)->tag->buf,(st)); \ } while (0)
Definition at line 133 of file eval_intern.h.
Referenced by rb_iterate(), rb_threadptr_execute_interrupts_common(), ruby_thread_stack_overflow(), and vm_iter_break().
| #define TH_POP_TAG | ( | ) |
_th->tag = _tag.prev; \
} while (0)
Definition at line 118 of file eval_intern.h.
Referenced by rb_fiber_start(), rb_iterate(), rb_vm_invoke_proc(), thread_start_func_2(), and vm_exec().
| #define TH_POP_TAG2 | ( | ) | _th->tag = _tag.prev |
Definition at line 122 of file eval_intern.h.
Referenced by vm_exec().
| #define TH_PUSH_TAG | ( | th | ) |
do { \ rb_thread_t * const _th = (th); \ struct rb_vm_tag _tag; \ _tag.tag = 0; \ _tag.prev = _th->tag; \ _th->tag = &_tag;
Definition at line 111 of file eval_intern.h.
Referenced by rb_fiber_start(), rb_iterate(), rb_vm_invoke_proc(), thread_start_func_2(), and vm_exec().
| anonymous enum |
Definition at line 186 of file eval_intern.h.
| enum ruby_tag_type |
| RUBY_TAG_RETURN | |
| RUBY_TAG_BREAK | |
| RUBY_TAG_NEXT | |
| RUBY_TAG_RETRY | |
| RUBY_TAG_REDO | |
| RUBY_TAG_RAISE | |
| RUBY_TAG_THROW | |
| RUBY_TAG_FATAL | |
| RUBY_TAG_MASK |
Definition at line 141 of file eval_intern.h.
| void* alloca | ( | ) |
| NORETURN | ( | void | rb_fiber_startvoid | ) |
| NORETURN | ( | void | rb_print_undefVALUE, ID, int | ) |
| NORETURN | ( | void | rb_vm_localjump_errorconst char *, VALUE, int | ) |
| NORETURN | ( | void | rb_vm_jump_tag_but_local_jumpint, VALUE | ) |
| NORETURN | ( | void | rb_raise_method_missingrb_thread_t *th, int argc, VALUE *argv, VALUE obj, int call_status | ) |
Definition at line 1130 of file vm_eval.c.
References eval_string(), NIL_P, NUM2INT, OBJ_TAINTED, rb_eSecurityError, rb_raise(), rb_safe_level, rb_scan_args(), RSTRING_PTR, SafeStringValue, and StringValue.
Referenced by bind_eval(), and Init_vm_eval().
| VALUE rb_make_exception | ( | int | argc, |
| VALUE * | argv | ||
| ) |
| void rb_thread_cleanup | ( | void | ) |
| void rb_thread_terminate_all | ( | void | ) |
Definition at line 368 of file thread.c.
References EXEC_TAG, GET_THREAD, rb_vm_struct::inhibit_thread_creation, rb_vm_struct::living_threads, rb_vm_struct::main_thread, POP_TAG, PUSH_TAG, rb_bug(), rb_thread_alone(), rb_thread_schedule(), rb_threadptr_unlock_all_locking_mutexes(), st_foreach, terminate_i(), rb_mutex_struct::th, thread_debug, and rb_thread_struct::vm.
Referenced by ruby_cleanup().
| void rb_thread_wait_other_threads | ( | void | ) |
| int rb_threadptr_reset_raised | ( | rb_thread_t * | th | ) |
Definition at line 1441 of file thread.c.
References RAISED_EXCEPTION, and rb_thread_struct::raised_flag.
Referenced by error_handle(), setup_exception(), and thread_suppress_tracing().
| int rb_threadptr_set_raised | ( | rb_thread_t * | th | ) |
Definition at line 1431 of file thread.c.
References RAISED_EXCEPTION, and rb_thread_struct::raised_flag.
Referenced by error_handle(), setup_exception(), and thread_suppress_tracing().
| void rb_trap_restore_mask | ( | void | ) |
Definition at line 897 of file signal.c.
References NULL, and pthread_sigmask().
Referenced by rb_throw_obj(), and setup_exception().
| VALUE rb_vm_call_cfunc | ( | VALUE | recv, |
| VALUE(*)(VALUE) | func, | ||
| VALUE | arg, | ||
| const rb_block_t * | blockptr, | ||
| VALUE | filename | ||
| ) |
Definition at line 1544 of file vm.c.
References rb_thread_struct::cfp, DATA_PTR, GET_THREAD, Qnil, rb_iseq_new(), rb_control_frame_t::sp, VM_FRAME_MAGIC_TOP, vm_pop_frame(), and vm_push_frame().
Referenced by rb_require_safe(), and ruby_init_ext().
| VALUE rb_vm_cbase | ( | void | ) |
Definition at line 926 of file vm.c.
References rb_thread_struct::cfp, rb_control_frame_t::dfp, GET_THREAD, rb_control_frame_t::iseq, rb_control_frame_t::lfp, 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().
| NODE* rb_vm_cref | ( | void | ) |
Definition at line 902 of file vm.c.
References rb_thread_struct::cfp, rb_control_frame_t::dfp, GET_THREAD, rb_control_frame_t::iseq, rb_control_frame_t::lfp, rb_eRuntimeError, rb_raise(), rb_vm_get_ruby_level_next_cfp(), and vm_get_cref().
Referenced by m_core_define_method(), m_core_define_singleton_method(), rb_mod_nesting(), and rb_mod_s_constants().
| VALUE rb_vm_make_jump_tag_but_local_jump | ( | int | state, |
| VALUE | val | ||
| ) |
Definition at line 979 of file vm.c.
References GET_THREAD, make_localjump_error(), Qnil, Qundef, result, 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().
| void rb_vm_set_progname | ( | VALUE | filename | ) |
Definition at line 2208 of file vm.c.
References rb_iseq_struct::filename, GET_VM, rb_control_frame_t::iseq, rb_thread_struct::stack, and rb_thread_struct::stack_size.
Referenced by load_file_internal(), process_options(), and ruby_script().
| VALUE rb_vm_top_self | ( | ) |
Definition at line 2255 of file vm.c.
Referenced by Init_eval(), Init_eval_method(), Init_top_self(), Init_VM(), rb_eval_cmd(), rb_eval_string(), rb_eval_string_wrap(), rb_load_internal(), rb_require_safe(), require_libraries(), ruby_init_ext(), and ruby_thread_init().
Referenced by load_file_internal(), parse_mode_enc(), proc_exec_v(), rb_feature_provided(), ruby_init_loadpath_safe(), and search_required().
1.7.6.1