|
Ruby
2.1.4p265(2014-10-27revision48166)
|

Go to the source code of this file.
Data Structures | |
| struct | rescue_funcall_args |
| struct | iter_method_arg |
| struct | eval_string_from_file_arg |
Macros | |
| #define | NOEX_OK NOEX_NOSUPER |
| #define | type_case(t) case t: return #t; |
| #define | NOEX_MISSING 0x80 |
Typedefs | |
| typedef enum call_type | call_type |
Enumerations | |
| enum | call_type { CALL_PUBLIC, CALL_FCALL, CALL_VCALL, CALL_TYPE_MAX } |
| #define NOEX_MISSING 0x80 |
Definition at line 633 of file vm_eval.c.
Referenced by method_missing(), raise_method_missing(), and rb_raise_method_missing().
| #define NOEX_OK NOEX_NOSUPER |
Definition at line 294 of file vm_eval.c.
Referenced by check_funcall_callable(), rb_call0(), rb_check_funcall(), rb_check_funcall_with_hook(), and rb_method_call_status().
| #define type_case | ( | t | ) | case t: return #t; |
Referenced by rb_type_str().
| enum call_type |
|
static |
Definition at line 383 of file vm_eval.c.
References CALL_FCALL, rb_thread_struct::cfp, NOEX_OK, rb_method_call_status(), and rb_control_frame_struct::self.
Referenced by rb_check_funcall(), and rb_check_funcall_with_hook().
|
static |
Definition at line 336 of file vm_eval.c.
References rescue_funcall_args::argc, rescue_funcall_args::argv, new_args, RARRAY_PTR, rb_ary_new4, rb_ary_unshift(), rb_funcall2, RB_GC_GUARD, rescue_funcall_args::recv, and rescue_funcall_args::sym.
Referenced by check_funcall_missing().
|
static |
Definition at line 347 of file vm_eval.c.
References Qundef, rb_exc_raise(), rb_respond_to(), rescue_funcall_args::recv, rescue_funcall_args::sym, and SYM2ID.
Referenced by check_funcall_missing().
|
static |
Definition at line 389 of file vm_eval.c.
References argc, rescue_funcall_args::argc, argv, rescue_funcall_args::argv, check_funcall_exec(), check_funcall_failed(), ID2SYM, rb_thread_struct::method_missing_reason, Qundef, rb_eNoMethodError, rb_method_basic_definition_p(), rb_rescue2(), rescue_funcall_args::recv, and rescue_funcall_args::sym.
Referenced by rb_check_funcall(), and rb_check_funcall_with_hook().
|
static |
Definition at line 356 of file vm_eval.c.
References FALSE, rb_method_entry_struct::flag, ID2SYM, idRespond_to, NOEX_BASIC, rb_thread_struct::passed_block, Qtrue, rb_eArgError, rb_method_entry(), rb_method_entry_arity(), rb_raise(), result, RTEST, TRUE, and vm_call0().
Referenced by rb_check_funcall(), and rb_check_funcall_with_hook().
Definition at line 1318 of file vm_eval.c.
References eval_string_with_cref().
Referenced by eval_string_from_file_helper(), rb_eval_cmd(), rb_f_eval(), and ruby_eval_string_from_file().
Definition at line 1376 of file vm_eval.c.
References eval_string(), eval_string_from_file_arg::filename, Qnil, rb_vm_top_self(), and eval_string_from_file_arg::str.
Referenced by ruby_eval_string_from_file_protect().
|
static |
Definition at line 1181 of file vm_eval.c.
References rb_env_t::block, rb_thread_struct::cfp, Check_TypedStruct, CLASS_OF, CONST_ID, COPY_CREF, env, rb_binding_t::env, rb_block_struct::ep, rb_thread_struct::errinfo, rb_binding_t::first_lineno, GET_THREAD(), GetEnvPtr, GetISeqPtr, INT2FIX, rb_control_frame_struct::iseq, rb_block_struct::iseq, JUMP_TAG, rb_control_frame_struct::klass, rb_iseq_struct::local_table_size, rb_thread_struct::mild_compile_error, NEW_CREF, NIL_P, NULL, OBJ_FROZEN, rb_thread_struct::parse_in_eval, rb_binding_t::path, Qnil, Qundef, RARRAY_AREF, RARRAY_ASET, RARRAY_LEN, rb_attr_get(), rb_current_realfilepath(), rb_eRuntimeError, rb_exc_raise(), rb_fstring(), RB_GC_GUARD, rb_get_backtrace(), rb_iseq_compile_with_option(), rb_iseq_disasm(), rb_ivar_set(), rb_raise(), rb_sourcefilename(), rb_sourceline(), rb_str_append(), rb_str_cat(), rb_str_dup(), rb_str_new2, rb_str_update(), RB_TYPE_P, rb_usascii_str_new_cstr(), rb_vm_backtrace_str_ary(), rb_vm_get_cref(), rb_vm_get_ruby_level_next_cfp(), rb_vm_make_env_object(), result, RSTRING_LEN, RTEST, ruby_binding_data_type, RUBY_VM_GET_BLOCK_PTR_IN_CFP, rb_block_struct::self, StringValuePtr, T_ARRAY, T_STRING, TAG_RAISE, TH_EXEC_TAG, TH_POP_TAG, TH_PUSH_TAG, vm_exec(), and vm_set_eval_stack().
Referenced by eval_string(), and eval_under().
Definition at line 1547 of file vm_eval.c.
References eval_string_with_cref(), RNode::flags, GET_THREAD(), NIL_P, NODE_FL_CREF_PUSHED_BY_EVAL, NOEX_PUBLIC, NULL, Qnil, SafeStringValue, SPECIAL_CONST_P, and vm_cref_push().
Referenced by specific_eval().
| void Init_vm_eval | ( | void | ) |
Definition at line 1967 of file vm_eval.c.
References rb_add_method(), rb_cBasicObject, rb_cModule, rb_define_global_function(), rb_define_method(), rb_define_private_method(), rb_f_block_given_p(), rb_f_catch(), rb_f_eval(), rb_f_local_variables(), rb_f_loop(), rb_f_public_send(), rb_f_send(), rb_f_throw(), rb_intern, rb_method_missing(), rb_mKernel, rb_mod_module_eval(), rb_mod_module_exec(), rb_obj_instance_eval(), rb_obj_instance_exec(), and VM_METHOD_TYPE_OPTIMIZED.
Referenced by Init_eval().
Definition at line 1153 of file vm_eval.c.
References iter_method_arg::argc, iter_method_arg::argv, iter_method_arg::mid, iter_method_arg::obj, and rb_check_funcall().
Referenced by rb_check_block_call().
Definition at line 1131 of file vm_eval.c.
References iter_method_arg::argc, iter_method_arg::argv, CALL_FCALL, iter_method_arg::mid, iter_method_arg::obj, and rb_call().
Referenced by rb_block_call().
|
static |
Definition at line 1005 of file vm_eval.c.
References Qnil, and rb_yield_0().
Referenced by rb_f_loop().
|
static |
Definition at line 636 of file vm_eval.c.
References CLASS_OF, rb_ary_new4, rb_class_new_instance(), rb_const_get(), rb_eNoMethodError, rb_funcall(), rb_intern, rb_method_basic_definition_p(), rb_name_err_mesg_new(), and rb_str_new2.
Referenced by raise_method_missing(), send_internal(), and vm_call_opt_send().
|
inlinestatic |
Definition at line 696 of file vm_eval.c.
References ALLOCA_N, CLASS_OF, GET_THREAD(), ID2SYM, MEMCPY, rb_thread_struct::method_missing_reason, NOEX_MISSING, rb_thread_struct::passed_block, raise_method_missing(), RARRAY_PTR, rb_ary_clear(), rb_ary_set_len(), rb_ary_tmp_new(), rb_funcall2, rb_method_basic_definition_p(), and result.
Referenced by rb_call0(), vm_call0_body(), and vm_call_super().
| NORETURN | ( | static void | raise_method_missingrb_thread_t *th, int argc, const VALUE *argv, VALUE obj, int call_status | ) |
|
static |
Definition at line 660 of file vm_eval.c.
References make_no_method_exception(), NOEX_MISSING, NOEX_PRIVATE, NOEX_PROTECTED, NOEX_SUPER, NOEX_VCALL, rb_eArgError, rb_eNameError, rb_eNoMethodError, rb_exc_raise(), rb_raise(), rb_vm_pop_cfunc_frame(), stack_check(), and SYMBOL_P.
Referenced by method_missing(), rb_method_missing(), and rb_raise_method_missing().
Calls a method.
| recv | receiver of the method |
| mid | an ID that represents the name of the method |
| args | an Array object which contains method arguments |
Definition at line 746 of file vm_eval.c.
References ALLOCA_N, argc, argv, CALL_FCALL, MEMCPY, OBJ_FREEZE, RARRAY_CONST_PTR, RARRAY_LENINT, RARRAY_PTR, rb_ary_subseq(), rb_call(), RB_GC_GUARD, and RBASIC_CLEAR_CLASS.
Referenced by ary2list(), ary2list2(), exec_callback(), ip_ruby_cmd_core(), and tk_do_callback().
| VALUE rb_block_call | ( | VALUE | obj, |
| ID | mid, | ||
| int | argc, | ||
| const VALUE * | argv, | ||
| VALUE(*)(ANYARGS) | bl_proc, | ||
| VALUE | data2 | ||
| ) |
Definition at line 1140 of file vm_eval.c.
References argc, iter_method_arg::argc, argv, iter_method_arg::argv, iterate_method(), iter_method_arg::mid, iter_method_arg::obj, and rb_iterate().
|
inlinestatic |
calls the specified method.
This function is called by functions in rb_call* family.
| recv | receiver |
| mid | an ID that represents the name of the method |
| argc | the number of method arguments |
| argv | a pointer to an array of method arguments |
| scope |
Definition at line 583 of file vm_eval.c.
References rb_thread_struct::cfp, GET_THREAD(), rb_call0(), and rb_control_frame_struct::self.
Referenced by iterate_method(), rb_apply(), rb_each(), rb_funcall(), rb_funcall_passing_block(), rb_funcall_with_block(), rb_funcallv(), and rb_funcallv_public().
|
inlinestatic |
calls the specified method.
This function is called by functions in rb_call* family.
| recv | receiver of the method |
| mid | an ID that represents the name of the method |
| argc | the number of method arguments |
| argv | a pointer to an array of method arguments |
| scope | |
| self | self in the caller. Qundef means no self is considered and protected methods cannot be called |
Definition at line 312 of file vm_eval.c.
References GET_THREAD(), method_missing(), NOEX_OK, rb_method_call_status(), rb_search_method_entry(), stack_check(), and vm_call0().
Referenced by rb_call(), and send_internal().
Definition at line 274 of file vm_eval.c.
References GET_THREAD(), PASS_PASSED_BLOCK, and vm_call_super().
Referenced by esignal_init(), exit_initialize(), float_denominator(), float_numerator(), fole_initialize(), gzfile_error_inspect(), interrupt_init(), lazy_super(), lazy_zip(), name_err_initialize(), ossl_ssl_initialize(), path_freeze(), path_taint(), path_untaint(), range_include(), range_max(), range_min(), strio_initialize(), and syserr_initialize().
Definition at line 1818 of file vm_eval.c.
References func, ID2SYM, rb_catch_obj(), rb_cObject, rb_intern, and rb_obj_alloc().
Definition at line 1825 of file vm_eval.c.
References func, JUMP_TAG, rb_catch_protect(), and val.
Referenced by rb_catch(), and rb_f_catch().
| VALUE rb_catch_protect | ( | VALUE | t, |
| rb_block_call_func * | func, | ||
| VALUE | data, | ||
| int * | stateptr | ||
| ) |
Definition at line 1835 of file vm_eval.c.
References rb_thread_struct::cfp, rb_thread_struct::errinfo, GET_THREAD(), Qnil, rb_vm_rewind_cfp(), rb_vm_tag::retval, RNODE, rb_vm_tag::tag, rb_thread_struct::tag, TAG_THROW, TH_EXEC_TAG, TH_POP_TAG, TH_PUSH_TAG, and val.
Referenced by exec_recursive(), and rb_catch_obj().
| VALUE rb_check_block_call | ( | VALUE | obj, |
| ID | mid, | ||
| int | argc, | ||
| const VALUE * | argv, | ||
| VALUE(*)(ANYARGS) | bl_proc, | ||
| VALUE | data2 | ||
| ) |
Definition at line 1162 of file vm_eval.c.
References argc, iter_method_arg::argc, argv, iter_method_arg::argv, iterate_check_method(), iter_method_arg::mid, iter_method_arg::obj, and rb_iterate().
Definition at line 409 of file vm_eval.c.
References check_funcall_callable(), check_funcall_missing(), check_funcall_respond_to(), CLASS_OF, GET_THREAD(), NOEX_OK, Qundef, rb_search_method_entry(), stack_check(), and vm_call0().
Referenced by convert_type(), enum_size(), enumerator_rewind(), enumerator_size(), error_print(), exc_equal(), flo_cmp(), invcmp_recursive(), io_call_close(), io_close(), is_integer_p(), iterate_check_method(), make_exception(), marshal_dump(), marshal_load(), num_exact(), path_initialize(), rb_dlptr_s_to_ptr(), rb_fiddle_ptr_s_to_ptr(), rb_get_path_check_to_string(), rb_str_cmp_m(), time_timespec(), and try_convert_to_exception().
| VALUE rb_check_funcall_with_hook | ( | VALUE | recv, |
| ID | mid, | ||
| int | argc, | ||
| const VALUE * | argv, | ||
| rb_check_funcall_hook * | hook, | ||
| VALUE | arg | ||
| ) |
Definition at line 428 of file vm_eval.c.
References argc, argv, check_funcall_callable(), check_funcall_missing(), check_funcall_respond_to(), CLASS_OF, FALSE, GET_THREAD(), NOEX_OK, Qundef, rb_search_method_entry(), rescue_funcall_args::recv, stack_check(), TRUE, and vm_call0().
| VALUE rb_current_realfilepath | ( | void | ) |
Definition at line 1957 of file vm_eval.c.
References rb_iseq_location_struct::absolute_path, rb_thread_struct::cfp, GET_THREAD(), rb_control_frame_struct::iseq, rb_iseq_struct::location, Qnil, RUBY_VM_PREVIOUS_CONTROL_FRAME, and vm_get_ruby_level_caller_cfp().
Referenced by eval_string_with_cref(), f_current_dirname(), and rb_f_require_relative().
Definition at line 1175 of file vm_eval.c.
References CALL_FCALL, and rb_call().
Definition at line 1464 of file vm_eval.c.
References eval_string(), EXEC_TAG, JUMP_TAG, OBJ_TAINTED, POP_TAG, PUSH_TAG, Qnil, RARRAY_LENINT, RARRAY_PTR, rb_funcall2, rb_intern, rb_safe_level, rb_set_safe_level_force(), RB_TYPE_P, rb_vm_top_self(), T_STRING, and val.
Referenced by rb_trace_eval(), run_single_final(), signal_exec(), and tk_eval_cmd().
Evaluates the given string in an isolated binding.
Here "isolated" means the binding does not inherit any other binding. This behaves same as the binding for required libraries.
FILE will be "(eval)", and LINE starts from 1 in the evaluation.
| str | Ruby code to evaluate. |
| Exception | Raises an exception on error. |
Definition at line 1404 of file vm_eval.c.
References ruby_eval_string_from_file().
Referenced by foletype_s_typelibs(), ip_ruby_eval(), and rb_eval_string_protect().
Evaluates the given string in an isolated binding.
FILE will be "(eval)", and LINE starts from 1 in the evaluation.
| str | Ruby code to evaluate. |
| state | Being set to zero if succeeded. Nonzero if an error occurred. |
Definition at line 1420 of file vm_eval.c.
References rb_eval_string(), and rb_protect().
Referenced by ip_ruby_cmd_receiver_const_get(), and rb_eval_string_wrap().
Evaluates the given string under a module binding in an isolated binding.
This is same as the binding for required libraries on "require('foo', true)".
FILE will be "(eval)", and LINE starts from 1 in the evaluation.
| str | Ruby code to evaluate. |
| state | Being set to zero if succeeded. Nonzero if an error occurred. |
Definition at line 1437 of file vm_eval.c.
References GET_THREAD(), JUMP_TAG, rb_eval_string_protect(), rb_extend_object(), rb_module_new(), rb_obj_clone(), rb_vm_top_self(), rb_thread_struct::top_self, rb_thread_struct::top_wrapper, and val.
| VALUE rb_f_block_given_p | ( | void | ) |
Definition at line 1942 of file vm_eval.c.
References rb_thread_struct::cfp, GET_THREAD(), Qfalse, Qtrue, RUBY_VM_PREVIOUS_CONTROL_FRAME, VM_CF_BLOCK_PTR(), and vm_get_ruby_level_caller_cfp().
Referenced by Init_vm_eval().
Definition at line 1804 of file vm_eval.c.
References catch_i(), rb_catch_obj(), rb_cObject, rb_obj_alloc(), rb_scan_args(), and rb_vm_tag::tag.
Referenced by Init_vm_eval().
Definition at line 1342 of file vm_eval.c.
References eval_string(), NIL_P, NUM2INT, Qundef, rb_scan_args(), SafeStringValue, and StringValue.
Referenced by bind_eval(), and Init_vm_eval().
|
static |
Definition at line 1878 of file vm_eval.c.
References rb_thread_struct::cfp, rb_control_frame_struct::ep, GET_THREAD(), ID2SYM, rb_control_frame_struct::iseq, rb_iseq_struct::local_table, rb_iseq_struct::local_table_size, rb_ary_new(), rb_ary_push(), rb_id2name(), RUBY_VM_PREVIOUS_CONTROL_FRAME, VM_CF_PREV_EP(), vm_collect_local_variables_in_heap(), VM_EP_LEP_P, and vm_get_ruby_level_caller_cfp().
Referenced by Init_vm_eval().
Definition at line 1039 of file vm_eval.c.
References loop_i(), Qnil, rb_eStopIteration, rb_f_loop_size(), rb_rescue2(), and RETURN_SIZED_ENUMERATOR.
Referenced by Init_vm_eval().
Definition at line 1014 of file vm_eval.c.
References DBL2NUM, and INFINITY.
Referenced by rb_f_loop().
Definition at line 928 of file vm_eval.c.
References CALL_PUBLIC, and send_internal().
Referenced by Init_vm_eval().
Definition at line 908 of file vm_eval.c.
References CALL_FCALL, and send_internal().
Referenced by Init_vm_eval(), and inject_op_i().
Definition at line 1723 of file vm_eval.c.
References rb_scan_args(), rb_throw_obj(), and UNREACHABLE.
Referenced by Init_vm_eval().
Calls a method.
| recv | receiver of the method |
| mid | an ID that represents the name of the method |
| n | the number of arguments |
| ... | arbitrary number of method arguments |
Definition at line 775 of file vm_eval.c.
References ALLOCA_N, argv, CALL_FCALL, rb_call(), and va_init_list.
Referenced by _thread_call_proc_core(), _thread_call_proc_value(), add(), argument_error(), ary2list(), ary2list2(), BigDecimal_power(), BigDecimal_to_i(), BigDecimal_to_r(), binop(), bsock_setsockopt(), call_next(), call_queue_handler(), callback(), cbsubst_def_attr_aliases(), cbsubst_get_subst_key(), cbsubst_scan_args(), chunk_i(), chunk_ii(), cmp(), cmp_ge(), cmp_gt(), cmp_le(), cmp_lt(), coerce_body(), const_missing(), convert_encoding(), copy_stream_fallback_body(), cParser_initialize(), create_encoding_table(), cState_aref(), cState_aset(), cState_from_state_s(), default_inspect(), dir_inspect(), divmodv(), DupPrivPKeyPtr(), encoding_table_get_name_core(), enum_cycle_size(), enum_each_cons_size(), enum_each_slice_size(), enum_find(), enum_zip(), eq(), eval_queue_handler(), evs_length(), exc_message(), f_add(), f_cmp(), f_div(), f_eqeq_p(), f_ge_p(), f_gt_p(), f_le_p(), f_lt_p(), f_minus_one_p(), f_mul(), f_negative_p(), f_odd_p(), f_one_p(), f_sub(), f_to_f(), f_zero_p(), fix_and(), fix_or(), fix_pow(), fix_xor(), flo_pow(), flo_quo(), fole_s_show_help(), foleparam_inspect(), foletype_s_ole_classes(), foletypelib_s_typelibs(), folevariable_inspect(), folevariant_value(), fun1(), fun2(), function_call(), generate_json(), generate_json_bignum(), generate_json_float(), generate_json_object(), generate_json_string(), generic_to_value(), get_backtrace(), get_eval_string_core(), GetConfigPtr(), GetPrivPKeyPtr(), GetVpValueWithPrec(), grep_i(), grep_iter_i(), gzfile_close(), gzfile_read_raw_partial(), gzfile_read_raw_rescue(), gzfile_reader_rewind(), gzfile_write_raw(), hash_default_value(), hidden_identity_hash_new(), Init_generator(), Init_parser(), Init_syslog(), Init_win32ole(), initialize(), inject_op_i(), int_dotimes(), int_dotimes_size(), int_downto(), int_even_p(), int_odd_p(), int_round_0(), int_upto(), invoke_queue_handler(), io_reader(), io_write(), ip_eval(), ip_invoke_with_position(), ip_set_exc_message(), is_negative(), is_one(), is_zero(), JSON_parse_array(), JSON_parse_object(), JSON_parse_string(), key2keyname(), lazy_drop_size(), lazy_flat_map_func(), lazy_flat_map_to_ary(), lazy_grep_func(), lazy_grep_iter(), lazy_map_func(), lazy_reject_func(), lazy_select_func(), lazy_zip_arrays_func(), lazy_zip_func(), lexer_iter(), lib_eventloop_launcher(), lib_fromUTF8_core(), lib_set_system_encoding(), lib_thread_callback(), lib_toUTF8_core(), lib_watchdog_core(), load_file_internal(), make_exception(), make_no_method_exception(), match_i(), max_by_i(), max_i(), min_by_i(), min_i(), minmax_by_i(), minmax_by_i_update(), minmax_i(), minmax_i_update(), mlambda(), mnew_from_me(), mObject_to_json(), mod(), mString_Extend_json_create(), mString_included_s(), mString_to_json_raw_object(), mul(), negate_lit(), negative_int_p(), num_abs(), num_div(), num_equal(), num_fdiv(), num_modulo(), num_nonzero_p(), num_remainder(), num_step(), num_to_int(), num_uminus(), numeric_quo(), nurat_div(), ole_invoke(), ole_typelib_from_itypeinfo(), ossl_call_client_cert_cb(), ossl_call_session_get_cb(), ossl_call_session_new_cb(), ossl_call_session_remove_cb(), ossl_call_tmp_dh_callback(), ossl_call_verify_cb_proc(), ossl_pkey_sign(), ossl_ssl_close(), ossl_ssl_initialize(), ossl_ssl_read_internal(), ossl_ssl_session_get_time(), ossl_ssl_session_set_time(), ossl_ssl_write_internal(), ossl_sslctx_flush_sessions(), ossl_to_der(), ossl_x509attr_get_value(), ossl_x509attr_initialize(), ossl_x509ext_initialize(), ossl_x509store_verify(), parse(), parse_main(), path_atime(), path_basename(), path_blockdev_p(), path_chardev_p(), path_chmod(), path_chown(), path_ctime(), path_directory_p(), path_dirname(), path_entries(), path_executable_p(), path_executable_real_p(), path_exist_p(), path_expand_path(), path_extname(), path_file_p(), path_fnmatch(), path_ftype(), path_grpowned_p(), path_lchmod(), path_lchown(), path_lstat(), path_make_link(), path_make_symlink(), path_mkdir(), path_mtime(), path_owned_p(), path_pipe_p(), path_readable_p(), path_readable_real_p(), path_readlink(), path_realdirpath(), path_realpath(), path_rename(), path_rmdir(), path_s_getwd(), path_setgid_p(), path_setuid_p(), path_size(), path_size_p(), path_socket_p(), path_split(), path_stat(), path_sticky_p(), path_symlink_p(), path_truncate(), path_utime(), path_world_readable_p(), path_world_writable_p(), path_writable_p(), path_writable_real_p(), path_zero_p(), positive_int_p(), protected_alias(), protected_empty(), protected_end_document(), protected_end_mapping(), protected_end_sequence(), protected_end_stream(), protected_start_stream(), quo(), r_le(), r_lt(), r_post_proc(), range_bsearch(), range_check(), range_each_func(), range_eqq(), range_max(), range_min(), range_step(), range_step_size(), rb_big_pow(), rb_class_inherited(), rb_cmpint(), rb_digest_class_s_digest(), rb_digest_instance_bubblebabble(), rb_digest_instance_digest(), rb_digest_instance_digest_bang(), rb_digest_instance_hexdigest(), rb_digest_instance_hexdigest_bang(), rb_digest_instance_length(), rb_digest_instance_new(), rb_digest_instance_to_s(), rb_enc_get_index(), rb_eql(), rb_equal(), rb_exc_new(), rb_exc_new_str(), rb_gzreader_initialize(), rb_gzwriter_flush(), rb_gzwriter_initialize(), rb_hash_default(), rb_inspect(), rb_int_pred(), rb_int_succ(), rb_io_flush_raw(), rb_mod_include(), rb_mod_prepend(), rb_num_coerce_bin(), rb_num_coerce_bit(), rb_num_coerce_cmp(), rb_num_coerce_relop(), rb_obj_as_string(), rb_obj_clone(), rb_obj_dup(), rb_obj_extend(), rb_obj_init_dup_clone(), rb_obj_not_equal(), rb_obj_not_match(), rb_range_values(), rb_str_match(), rb_str_sum(), rb_str_upto(), rb_strftime_with_timespec(), rbtime2vtdate(), reachable_object_from_root_i(), reachable_objects_from_root(), readline_attempted_completion_function(), reduce0(), rescue_callback(), rt_complete_frags(), ruby_num_interval_step_size(), set_backtrace(), set_max_block_time(), set_option_encoding_once(), set_state_ivars(), shift(), slicebefore_i(), slicebefore_ii(), sockopt_unpack(), sort_by_cmp(), ssl_renegotiation_cb(), step_i(), strscan_get_charpos(), sub(), sym_step_i(), syserr_eqq(), tcl2rb_bool(), tcl_protect_core(), time_timespec(), timetick2integer(), tk_funcall(), tk_install_cmd_core(), TkStringValue(), to_strkey(), transcode_io(), unknown_keyword_error(), unlink_body(), unlink_rescue(), vtdate2rbtime(), wadd(), wcmp(), wdivmod(), weq(), wmul(), wquo(), writer(), and wsub().
Definition at line 827 of file vm_eval.c.
References CALL_PUBLIC, GET_THREAD(), PASS_PASSED_BLOCK_TH, and rb_call().
Referenced by rb_f_chomp(), rb_f_chop(), rb_f_gsub(), and rb_f_sub().
| VALUE rb_funcall_with_block | ( | VALUE | recv, |
| ID | mid, | ||
| int | argc, | ||
| const VALUE * | argv, | ||
| VALUE | pass_procval | ||
| ) |
Definition at line 835 of file vm_eval.c.
References rb_proc_t::block, CALL_PUBLIC, GET_THREAD(), GetProcPtr, NIL_P, rb_thread_struct::passed_block, and rb_call().
Referenced by sym_call().
Calls a method.
| recv | receiver of the method |
| mid | an ID that represents the name of the method |
| argc | the number of arguments |
| argv | pointer to an array of method arguments |
Definition at line 806 of file vm_eval.c.
References CALL_FCALL, and rb_call().
Referenced by binomial_coefficient(), cmp_eq_recursive(), descending_factorial(), dump_output(), hash_recursive(), rb_ary_bsearch(), rb_ary_cycle_size(), rb_ary_repeated_permutation_size(), rb_io_write(), recursive_cmp(), and sort_2().
Calls a method.
Same as rb_funcall2 but this function can call only public methods.
| recv | receiver of the method |
| mid | an ID that represents the name of the method |
| argc | the number of arguments |
| argv | pointer to an array of method arguments |
Definition at line 821 of file vm_eval.c.
References CALL_PUBLIC, and rb_call().
Definition at line 1052 of file vm_eval.c.
References rb_thread_struct::cfp, rb_control_frame_struct::ep, err, rb_thread_struct::errinfo, GET_THREAD(), GET_THROWOBJ_CATCH_POINT, GET_THROWOBJ_VAL, rb_block_struct::iseq, NEW_IFUNC, rb_thread_struct::passed_block, rb_block_struct::proc, Qnil, rb_frame_this_func(), rb_vm_rewind_cfp(), RUBY_VM_GET_BLOCK_PTR_IN_CFP, rb_thread_struct::state, TAG_BREAK, TAG_RETRY, TH_EXEC_TAG, TH_JUMP_TAG, TH_POP_TAG, TH_PUSH_TAG, and VM_CF_BLOCK_PTR().
Referenced by call_lexer(), method_proc(), rb_block_call(), rb_check_block_call(), and rb_proc_new().
|
inlinestatic |
Definition at line 528 of file vm_eval.c.
References CALL_PUBLIC, CALL_VCALL, rb_method_entry_struct::called_id, rb_method_entry_struct::def, rb_method_entry_struct::flag, rb_method_entry_struct::klass, NOEX_MASK, NOEX_OK, NOEX_PRIVATE, NOEX_PROTECTED, NOEX_SAFE, NOEX_VCALL, rb_method_definition_struct::original_id, Qundef, rb_eSecurityError, rb_id2name(), rb_obj_is_kind_of(), rb_raise(), RB_TYPE_P, RBASIC, rb_thread_struct::safe_level, T_ICLASS, UNDEFINED_METHOD_ENTRY_P, and UNLIKELY.
Referenced by check_funcall_callable(), and rb_call0().
Definition at line 626 of file vm_eval.c.
References GET_THREAD(), rb_thread_struct::method_missing_reason, raise_method_missing(), and UNREACHABLE.
Referenced by Init_vm_eval().
Definition at line 1677 of file vm_eval.c.
References specific_eval().
Referenced by Init_vm_eval(), and rb_struct_s_def().
Definition at line 1705 of file vm_eval.c.
References rb_ary_new4, and yield_under().
Referenced by Init_vm_eval(), and rb_mod_initialize().
Definition at line 1606 of file vm_eval.c.
References rb_singleton_class(), rb_special_singleton_class(), SPECIAL_CONST_P, and specific_eval().
Referenced by Init_vm_eval(), and tk_s_new().
Definition at line 1638 of file vm_eval.c.
References rb_ary_new4, rb_singleton_class(), rb_special_singleton_class(), SPECIAL_CONST_P, and yield_under().
Referenced by Init_vm_eval(), and tk_s_new().
| void rb_raise_method_missing | ( | rb_thread_t * | th, |
| int | argc, | ||
| VALUE * | argv, | ||
| VALUE | obj, | ||
| int | call_status | ||
| ) |
Definition at line 730 of file vm_eval.c.
References NOEX_MISSING, rb_thread_struct::passed_block, and raise_method_missing().
Referenced by vm_call_method().
|
inlinestatic |
Definition at line 485 of file vm_eval.c.
References BUILTIN_TYPE, CLASS_OF, IMMEDIATE_P, PRIxVALUE, rb_eNotImpError, rb_id2name(), rb_method_entry(), rb_raise(), rb_type_str(), RBASIC, T_NIL, T_OBJECT, and type.
Referenced by rb_call0(), rb_check_funcall(), and rb_check_funcall_with_hook().
Definition at line 1755 of file vm_eval.c.
References ID2SYM, rb_intern, and rb_throw_obj().
Definition at line 1733 of file vm_eval.c.
References rb_thread_struct::errinfo, GET_THREAD(), JUMP_TAG, NEW_THROW_OBJECT, rb_vm_tag::prev, PRIsVALUE, rb_eArgError, rb_inspect(), rb_raise(), rb_vm_tag::retval, rb_vm_tag::tag, rb_thread_struct::tag, and TAG_THROW.
Referenced by exec_recursive(), rb_f_throw(), and rb_throw().
|
static |
Definition at line 450 of file vm_eval.c.
References NULL, T_ARRAY, T_BIGNUM, T_CLASS, T_COMPLEX, T_DATA, T_FALSE, T_FILE, T_FIXNUM, T_FLOAT, T_HASH, T_ICLASS, T_MATCH, T_MODULE, T_NIL, T_NODE, T_NONE, T_OBJECT, T_RATIONAL, T_REGEXP, T_STRING, T_STRUCT, T_SYMBOL, T_TRUE, T_UNDEF, T_ZOMBIE, and type_case.
Referenced by rb_search_method_entry().
| VALUE rb_vm_backtrace_str_ary | ( | rb_thread_t * | th, |
| int | lev, | ||
| int | n | ||
| ) |
Referenced by eval_string_with_cref().
| VALUE rb_vm_call | ( | rb_thread_t * | th, |
| VALUE | recv, | ||
| VALUE | id, | ||
| int | argc, | ||
| const VALUE * | argv, | ||
| const rb_method_entry_t * | me, | ||
| VALUE | defined_class | ||
| ) |
Definition at line 244 of file vm_eval.c.
References vm_call0().
Referenced by rb_method_call_with_block().
Definition at line 942 of file vm_eval.c.
References Qundef, and rb_yield_0().
Referenced by ary_add_hash_by(), ary_reject(), ary_reject_bang(), BigDecimal_save_exception_mode(), BigDecimal_save_limit(), BigDecimal_save_rounding_mode(), chdir_yield(), console_cooked(), console_noecho(), console_raw(), cycle_i(), d_lite_downto(), d_lite_step(), d_lite_upto(), dir_each(), dir_s_open(), drop_while_i(), each_cons_i(), each_entry_i(), each_i(), each_key_i(), each_pair_i(), each_slice_i(), each_val_i(), each_value_i(), enum_cycle(), enum_each_slice(), enum_reverse_each(), env_delete_m(), env_each_key(), env_each_pair(), env_each_value(), env_fetch(), fdbm_delete(), fdbm_delete_if(), fdbm_each_key(), fdbm_each_pair(), fdbm_each_value(), fdbm_fetch(), fdbm_s_open(), fdbm_select(), fgdbm_delete_if(), fgdbm_each_key(), fgdbm_each_pair(), fgdbm_each_value(), fgdbm_fetch(), fgdbm_s_open(), fgdbm_select(), find_all_i(), find_i(), fsdbm_delete(), fsdbm_delete_if(), fsdbm_each_key(), fsdbm_each_pair(), fsdbm_each_value(), fsdbm_fetch(), fsdbm_s_open(), fsdbm_select(), glob_i(), grep_iter_i(), group_by_i(), gzfile_wrap(), hist_each(), int_dotimes(), int_downto(), int_upto(), io_s_foreach(), lazy_grep_iter(), lazy_reject_func(), lazy_select_func(), max_by_i(), min_by_i(), minmax_by_i(), mSyslog_open(), num_step(), ole_each_sub(), os_obj_of_i(), ossl_asn1_decode0(), ossl_generate_cb(), ossl_pem_passwd_cb0(), p_gid_switch(), p_uid_switch(), partition_i(), pty_getpty(), pty_open(), range_each(), range_step(), rb_ary_bsearch(), rb_ary_collect(), rb_ary_collect_bang(), rb_ary_combination(), rb_ary_count(), rb_ary_cycle(), rb_ary_delete(), rb_ary_drop_while(), rb_ary_each(), rb_ary_each_index(), rb_ary_fetch(), rb_ary_fill(), rb_ary_index(), rb_ary_initialize(), rb_ary_permutation(), rb_ary_product(), rb_ary_repeated_combination(), rb_ary_repeated_permutation(), rb_ary_reverse_each(), rb_ary_rindex(), rb_ary_select(), rb_ary_select_bang(), rb_ary_take_while(), rb_ary_zip(), rb_callcc(), rb_dlhandle_initialize(), rb_f_open(), rb_fiddle_handle_initialize(), rb_gzreader_each(), rb_gzreader_each_byte(), rb_gzreader_each_char(), rb_hash_delete(), rb_hash_fetch_m(), rb_io_each_byte(), rb_io_each_char(), rb_io_each_codepoint(), rb_io_each_line(), rb_io_s_open(), rb_io_s_pipe(), rb_io_s_popen(), rb_mutex_synchronize_m(), rb_obj_tap(), rb_reg_match_m(), rb_str_enumerate_bytes(), rb_str_enumerate_chars(), rb_str_enumerate_codepoints(), rb_str_enumerate_lines(), rb_str_match_m(), rb_str_scan(), rb_str_scrub(), rb_str_sub_bang(), rb_str_upto(), rb_struct_each(), rb_struct_each_pair(), rb_struct_select(), rb_thread_s_handle_interrupt(), reject_i(), ruby_float_step(), sort_by_i(), step_i(), str_gsub(), strio_each(), strio_each_byte(), strio_each_char(), strio_each_codepoint(), strio_s_open(), sym_each_i(), sym_step_i(), trace_object_allocations(), tracepoint_disable_m(), tracepoint_enable_m(), wmap_each_key_i(), wmap_each_value_i(), yield_indexed_values(), zip_ary(), zip_i(), zstream_detach_buffer(), and zstream_expand_buffer().
Definition at line 936 of file vm_eval.c.
References GET_THREAD(), and vm_yield().
Referenced by catch_i(), loop_i(), rb_yield(), rb_yield_splat(), rb_yield_values(), and rb_yield_values2().
Definition at line 993 of file vm_eval.c.
References rb_proc_t::block, GET_THREAD(), GetProcPtr, NIL_P, and vm_yield_with_block().
Definition at line 1527 of file vm_eval.c.
References rb_thread_struct::cfp, RNode::flags, GET_THREAD(), NODE_FL_CREF_PUSHED_BY_EVAL, NOEX_PUBLIC, NULL, RB_OBJ_WRITE, rb_block_struct::self, VM_CF_BLOCK_PTR(), VM_CF_LEP(), vm_cref_push(), VM_ENVVAL_BLOCK_PTR, and vm_yield_with_cref().
Referenced by rb_mod_refine().
Definition at line 981 of file vm_eval.c.
References NIL_P, RARRAY_CONST_PTR, RARRAY_LENINT, rb_check_array_type(), rb_eArgError, rb_raise(), and rb_yield_0().
| VALUE rb_yield_values | ( | int | n, |
| ... | |||
| ) |
Definition at line 953 of file vm_eval.c.
References ALLOCA_N, argv, rb_yield_0(), and va_init_list.
Referenced by delete_if_i(), each_pair_i_fast(), each_with_index_i(), each_with_object_i(), enumerator_with_index_i(), enumerator_with_object_i(), env_each_pair(), env_reject_bang(), env_select(), env_select_bang(), env_update_i(), inject_i(), keep_if_i(), max_ii(), min_ii(), minmax_ii(), minmax_ii_update(), rb_hash_update_block_callback(), rb_struct_each_pair(), reject_i(), select_i(), sort_1(), and wmap_each_i().
Definition at line 975 of file vm_eval.c.
References rb_yield_0().
Referenced by argf_block_call_i(), lazy_drop_while_func(), lazy_flat_map_func(), lazy_init_iterator(), lazy_map_func(), lazy_take_while_func(), rb_ary_zip(), and yielder_yield_i().
Definition at line 1364 of file vm_eval.c.
References eval_string(), Qnil, rb_str_new2, rb_str_new_cstr(), and rb_vm_top_self().
Referenced by rb_eval_string().
Definition at line 1383 of file vm_eval.c.
References eval_string_from_file_helper(), eval_string_from_file_arg::filename, rb_protect(), rb_str_new_cstr(), and eval_string_from_file_arg::str.
Referenced by pruby_eval().
Definition at line 852 of file vm_eval.c.
References CALL_PUBLIC, rb_thread_struct::cfp, CLASS_OF, GET_THREAD(), id, make_no_method_exception(), NULL, PASS_PASSED_BLOCK_TH, Qundef, rb_call0(), rb_check_id(), rb_eArgError, rb_eNoMethodError, rb_exc_raise(), rb_method_basic_definition_p(), rb_raise(), rb_to_id(), and RUBY_VM_PREVIOUS_CONTROL_FRAME.
Referenced by rb_f_public_send(), rb_f_send(), and vm_call0_body().
Definition at line 1560 of file vm_eval.c.
References eval_under(), NIL_P, NUM2INT, Qundef, rb_block_given_p(), rb_check_arity, SafeStringValue, StringValue, and yield_under().
Referenced by rb_mod_module_eval(), and rb_obj_instance_eval().
|
inlinestatic |
Definition at line 281 of file vm_eval.c.
References GET_THREAD(), RAISED_STACKOVERFLOW, rb_exc_raise(), rb_thread_raised_p, rb_thread_raised_set, ruby_stack_check(), and sysstack_error.
Referenced by raise_method_missing(), rb_call0(), rb_check_funcall(), and rb_check_funcall_with_hook().
|
static |
Definition at line 38 of file vm_eval.c.
References argc, rb_call_info_struct::argc, rb_call_info_struct::defined_class, rb_call_info_struct::flag, id, rb_call_info_struct::me, rb_call_info_struct::mid, rb_call_info_struct::recv, and vm_call0_body().
Referenced by check_funcall_respond_to(), rb_call0(), rb_check_funcall(), rb_check_funcall_with_hook(), rb_vm_call(), and vm_call_super().
|
static |
Definition at line 141 of file vm_eval.c.
References rb_call_info_struct::argc, rb_method_definition_struct::attr, rb_call_info_struct::blockptr, rb_method_definition_struct::body, CALL_FCALL, rb_thread_struct::cfp, CHECK_VM_STACK_OVERFLOW, rb_method_entry_struct::def, rb_call_info_struct::defined_class, rb_control_frame_struct::flag, GetProcPtr, rb_method_attr_struct::id, ID2SYM, rb_call_info_struct::me, method_missing(), rb_call_info_struct::mid, new_args, NOEX_SUPER, rb_method_definition_struct::optimize_type, rb_method_definition_struct::orig_me, rb_thread_struct::passed_block, Qnil, Qundef, RARRAY_PTR, rb_ary_new4, rb_ary_unshift(), rb_attr_get(), rb_bug(), rb_check_arity, rb_funcall2, RB_GC_GUARD, rb_ivar_set(), rb_method_entry(), rb_vm_invoke_proc(), RCLASS_SUPER, rb_call_info_struct::recv, RUBY_VM_CHECK_INTS, send_internal(), rb_control_frame_struct::sp, rb_method_definition_struct::type, vm_call0_cfunc(), vm_call_bmethod_body(), vm_call_iseq_setup(), vm_exec(), VM_FRAME_FLAG_FINISH, VM_METHOD_TYPE_ATTRSET, VM_METHOD_TYPE_BMETHOD, VM_METHOD_TYPE_CFUNC, VM_METHOD_TYPE_ISEQ, VM_METHOD_TYPE_IVAR, VM_METHOD_TYPE_MISSING, VM_METHOD_TYPE_NOTIMPLEMENTED, VM_METHOD_TYPE_OPTIMIZED, VM_METHOD_TYPE_REFINED, VM_METHOD_TYPE_UNDEF, and VM_METHOD_TYPE_ZSUPER.
Referenced by vm_call0().
|
static |
Definition at line 133 of file vm_eval.c.
References vm_call0_cfunc_with_frame().
Referenced by vm_call0_body().
|
static |
Definition at line 95 of file vm_eval.c.
References rb_method_cfunc_struct::argc, argc, rb_call_info_struct::argc, rb_call_info_struct::blockptr, rb_method_definition_struct::body, rb_thread_struct::cfp, rb_method_definition_struct::cfunc, rb_method_entry_struct::def, rb_call_info_struct::defined_class, EXEC_EVENT_HOOK, rb_method_cfunc_struct::func, rb_method_cfunc_struct::invoker, rb_call_info_struct::me, rb_call_info_struct::mid, Qnil, rb_bug(), rb_check_arity, rb_call_info_struct::recv, RUBY_DTRACE_CMETHOD_ENTRY_HOOK, RUBY_DTRACE_CMETHOD_RETURN_HOOK, RUBY_EVENT_C_CALL, RUBY_EVENT_C_RETURN, rb_control_frame_struct::sp, UNLIKELY, val, VM_ENVVAL_BLOCK_PTR, VM_FRAME_MAGIC_CFUNC, vm_pop_frame(), VM_PROFILE_UP, and vm_push_frame().
Referenced by vm_call0_cfunc().
|
inlinestatic |
Definition at line 251 of file vm_eval.c.
References rb_thread_struct::cfp, rb_method_entry_struct::def, id, rb_control_frame_struct::iseq, rb_control_frame_struct::klass, rb_control_frame_struct::me, method_missing(), NIL_P, NOEX_SUPER, rb_method_definition_struct::original_id, rb_bug(), rb_method_entry(), RCLASS_SUPER, rb_control_frame_struct::self, and vm_call0().
Referenced by rb_call_super().
|
static |
Referenced by rb_f_local_variables().
|
static |
Referenced by eval_under(), rb_yield_refine_block(), and yield_under().
|
static |
Referenced by eval_string_with_cref(), and vm_call0_body().
|
static |
Referenced by eval_string_with_cref().
|
inlinestatic |
Referenced by rb_yield_0().
|
inlinestatic |
Referenced by rb_yield_block().
|
inlinestatic |
Referenced by rb_yield_refine_block(), and yield_under().
Definition at line 1504 of file vm_eval.c.
References rb_thread_struct::cfp, RNode::flags, GET_THREAD(), NODE_FL_CREF_PUSHED_BY_EVAL, NOEX_PUBLIC, Qundef, RARRAY_CONST_PTR, RARRAY_LENINT, rb_block_struct::self, VM_CF_BLOCK_PTR(), VM_CF_LEP(), vm_cref_push(), VM_ENVVAL_BLOCK_PTR, and vm_yield_with_cref().
Referenced by rb_mod_module_exec(), rb_obj_instance_exec(), and specific_eval().
1.8.8