diff options
author | Nobuyoshi Nakada <nobu@ruby-lang.org> | 2023-01-22 11:40:37 +0900 |
---|---|---|
committer | Nobuyoshi Nakada <nobu@ruby-lang.org> | 2023-10-26 17:28:50 +0900 |
commit | 1507118f0b70fc8002b4b0f186b464c64965cd1e (patch) | |
tree | f6675bc00514e1a3793e506d581aaafe10e9d42e /proc.c | |
parent | 7d159a87873d72027a8230d9cb63698d1f3c5cac (diff) |
[Feature #19362] Call `#initialize_dup` hook at `Proc#dup`
Diffstat (limited to 'proc.c')
-rw-r--r-- | proc.c | 12 |
1 files changed, 11 insertions, 1 deletions
@@ -152,6 +152,16 @@ proc_clone(VALUE self) { VALUE procval = rb_proc_dup(self); CLONESETUP(procval, self); + rb_check_funcall(procval, idInitialize_clone, 1, &self); + return procval; +} + +/* :nodoc: */ +static VALUE +proc_dup(VALUE self) +{ + VALUE procval = rb_proc_dup(self); + rb_check_funcall(procval, idInitialize_dup, 1, &self); return procval; } @@ -4258,7 +4268,7 @@ Init_Proc(void) rb_define_method(rb_cProc, "to_proc", proc_to_proc, 0); rb_define_method(rb_cProc, "arity", proc_arity, 0); rb_define_method(rb_cProc, "clone", proc_clone, 0); - rb_define_method(rb_cProc, "dup", rb_proc_dup, 0); + rb_define_method(rb_cProc, "dup", proc_dup, 0); rb_define_method(rb_cProc, "hash", proc_hash, 0); rb_define_method(rb_cProc, "to_s", proc_to_s, 0); rb_define_alias(rb_cProc, "inspect", "to_s"); |