Ruby 2.7.7p221 (2022-11-24 revision 168ec2b1e5ad0e4688e963d9de019557c78feed9)
|
#include "eval_intern.h"
#include "internal.h"
#include "gc.h"
#include "vm_core.h"
#include "iseq.h"
Go to the source code of this file.
Data Structures | |
struct | METHOD |
struct | cfunc_proc_t |
Macros | |
#define | PROC_NEW_REQUIRES_BLOCK 0 |
#define | NO_CLOBBERED(v) (*(volatile VALUE *)&(v)) |
#define | UPDATE_TYPED_REFERENCE(_type, _ref) *(_type*)&_ref = (_type)rb_gc_location((VALUE)_ref) |
#define | UPDATE_REFERENCE(_ref) UPDATE_TYPED_REFERENCE(VALUE, _ref) |
#define | attached id__attached__ |
#define | IS_METHOD_PROC_IFUNC(ifunc) ((ifunc)->func == bmcall) |
#define | check_argc(argc) (argc) |
#define | MSG(s) rb_fstring_lit("undefined method `%1$s' for"s" `%2$s'") |
Variables | |
VALUE | rb_cUnboundMethod |
VALUE | rb_cMethod |
VALUE | rb_cBinding |
VALUE | rb_cProc |
const rb_data_type_t | ruby_binding_data_type |
#define attached id__attached__ |
#define IS_METHOD_PROC_IFUNC | ( | ifunc | ) | ((ifunc)->func == bmcall) |
#define MSG | ( | s | ) | rb_fstring_lit("undefined method `%1$s' for"s" `%2$s'") |
#define UPDATE_REFERENCE | ( | _ref | ) | UPDATE_TYPED_REFERENCE(VALUE, _ref) |
#define UPDATE_TYPED_REFERENCE | ( | _type, | |
_ref | |||
) | *(_type*)&_ref = (_type)rb_gc_location((VALUE)_ref) |
Definition at line 4066 of file proc.c.
References CLASS_OF, rb_cBinding, rb_cObject, rb_define_class(), rb_define_method(), rb_undef_alloc_func(), and rb_undef_method().
Definition at line 3916 of file proc.c.
References rb_cObject, rb_cProc, rb_define_class(), rb_define_singleton_method(), and rb_undef_alloc_func().
Definition at line 331 of file proc.c.
References klass, obj, ruby_binding_data_type, and TypedData_Make_Struct.
Definition at line 364 of file proc.c.
References rb_execution_context_struct::cfp, GET_EC, and rb_vm_make_binding().
Definition at line 837 of file proc.c.
Referenced by rb_f_trace_var(), rb_method_call(), and rb_method_call_kw().
Definition at line 1360 of file proc.c.
References PRIsVALUE, rb_obj_class(), rb_sprintf(), and str.
Definition at line 2798 of file vm_insnhelper.c.
References current_class, FL_TEST, klass, RB_TYPE_P, RBASIC_CLASS, RCLASS_SUPER, RICLASS_IS_ORIGIN, RTEST, T_ICLASS, and target_owner.
VALUE rb_func_lambda_new | ( | rb_block_call_func_t | func, |
VALUE | val, | ||
int | min_argc, | ||
int | max_argc | ||
) |
Definition at line 735 of file proc.c.
References vm_ifunc::func, max_argc, min_argc, and rb_vm_ifunc_new().
MJIT_FUNC_EXPORTED VALUE rb_func_proc_new | ( | rb_block_call_func_t | func, |
VALUE | val | ||
) |
st_index_t rb_hash_proc | ( | st_index_t | hash, |
VALUE | prc | ||
) |
MJIT_FUNC_EXPORTED VALUE rb_iseq_location | ( | const rb_iseq_t * | iseq | ) |
Definition at line 2273 of file proc.c.
References argc, argv, Qnil, rb_block_given_p(), rb_block_proc(), and rb_method_call_with_block().
Definition at line 2266 of file proc.c.
References argc, argv, Qnil, rb_block_given_p(), rb_block_proc(), and rb_method_call_with_block_kw().
VALUE rb_method_call_with_block | ( | int | argc, |
const VALUE * | argv, | ||
VALUE | method, | ||
VALUE | passed_procval | ||
) |
Definition at line 2309 of file proc.c.
References argc, argv, rb_method_call_with_block_kw(), and RB_NO_KEYWORDS.
Referenced by rb_method_call().
VALUE rb_method_call_with_block_kw | ( | int | argc, |
const VALUE * | argv, | ||
VALUE | method, | ||
VALUE | passed_procval, | ||
int | kw_splat | ||
) |
Definition at line 2296 of file proc.c.
References GET_EC, and TypedData_Get_Struct.
Referenced by rb_method_call_kw(), and rb_method_call_with_block().
const rb_method_definition_t * rb_method_def | ( | VALUE | method | ) |
Definition at line 2658 of file proc.c.
References TypedData_Get_Struct.
int rb_method_entry_arity | ( | const rb_method_entry_t * | me | ) |
VALUE rb_method_entry_location | ( | const rb_method_entry_t * | me | ) |
Definition at line 1778 of file proc.c.
References attached, BUILTIN_TYPE, FL_SINGLETON, FL_TEST, klass, MSG, obj, rb_ivar_get(), rb_name_err_raise_str, RB_TYPE_P, str, T_CLASS, and T_MODULE.
Definition at line 1459 of file proc.c.
References rb_typeddata_is_kind_of().
Definition at line 152 of file proc.c.
References rb_typeddata_is_kind_of().
Definition at line 2652 of file proc.c.
References CLASS_OF, obj, and rb_mod_method_arity().
Definition at line 1904 of file proc.c.
References klass, me, NIL_P, obj, rb_check_id(), rb_name_err_raise, rb_singleton_class_get(), and RCLASS_ORIGIN.
Definition at line 145 of file proc.c.
References klass, and TypedData_Make_Struct.
Definition at line 966 of file proc.c.
References check_argc, GET_EC, GetProcPtr, RARRAY_CONST_PTR, RARRAY_LEN, RB_GC_GUARD, RB_NO_KEYWORDS, rb_vm_invoke_proc(), and VM_BLOCK_HANDLER_NONE.
Referenced by rb_call_end_proc().
Definition at line 948 of file proc.c.
References argc, argv, check_argc, GET_EC, GetProcPtr, RARRAY_CONST_PTR, RARRAY_LEN, rb_adjust_argv_kw_splat(), rb_free_tmp_buffer(), RB_GC_GUARD, rb_vm_invoke_proc(), v, and VM_BLOCK_HANDLER_NONE.
Definition at line 1000 of file proc.c.
References argc, argv, GET_EC, GetProcPtr, RB_NO_KEYWORDS, and rb_vm_invoke_proc().
VALUE rb_proc_call_with_block_kw | ( | VALUE | self, |
int | argc, | ||
const VALUE * | argv, | ||
VALUE | passed_procval, | ||
int | kw_splat | ||
) |
Definition at line 986 of file proc.c.
References argc, argv, GET_EC, GetProcPtr, rb_adjust_argv_kw_splat(), rb_vm_invoke_proc(), and v.
Definition at line 1194 of file proc.c.
References GetProcPtr, and rb_block::proc.
Referenced by rb_resolve_me_location().
Definition at line 275 of file proc.c.
References GetProcPtr, rb_proc_t::is_lambda, Qfalse, and Qtrue.
VALUE rb_proc_new | ( | rb_block_call_func_t | func, |
VALUE | val | ||
) |
Definition at line 2991 of file proc.c.
References rb_iterate().
MJIT_FUNC_EXPORTED VALUE rb_sym_to_proc | ( | VALUE | sym | ) |
Definition at line 1312 of file proc.c.
References id, index, Qfalse, Qnil, RARRAY_AREF, rb_ary_store(), rb_ary_tmp_new(), rb_gc_register_mark_object(), sym, and SYM2ID.
Definition at line 1262 of file proc.c.
References CONST_ID, ID2SYM, n, OBJ_FREEZE, rb_ary_new2, rb_ary_new3, rb_ary_push(), and rb_ary_store().
Definition at line 1400 of file vm.c.
References rb_execution_context_struct::cfp, cfp, GET_EC, NULL, rb_vm_get_ruby_level_next_cfp(), and rb_control_frame_struct::self.
struct vm_ifunc * rb_vm_ifunc_new | ( | rb_block_call_func_t | func, |
const void * | data, | ||
int | min_argc, | ||
int | max_argc | ||
) |
Definition at line 699 of file proc.c.
References vm_ifunc::argc, CHAR_BIT, IFUNC_NEW, max_argc, min_argc, rb_eRangeError, rb_raise(), SIZEOF_INT, SIZEOF_VALUE, and UNLIMITED_ARGUMENTS.
Referenced by rb_func_lambda_new(), and rb_lambda_call().
const rb_data_type_t ruby_binding_data_type |
Definition at line 319 of file proc.c.
Referenced by rb_binding_alloc().