summaryrefslogtreecommitdiff
path: root/vm_eval.c
diff options
context:
space:
mode:
authorBenoit Daloze <eregontp@gmail.com>2021-07-06 18:52:29 +0200
committerBenoit Daloze <eregontp@gmail.com>2021-07-16 12:11:24 +0200
commitfd0df9c4fb36597e5e3f500670b29dbd77a14eca (patch)
tree5efd7ac323cc17519fbfd04104c1fc3be034fe5a /vm_eval.c
parent301d194ee3b49e6b078eccb999dd538e9bfa8c7c (diff)
downloadruby-fd0df9c4fb36597e5e3f500670b29dbd77a14eca.tar.gz
Emit deprecatation warnings for rb_iterate()
* It is obsolete since 1.9, see https://github.com/ruby/ruby/blob/master/doc/extension.rdoc#label-Control+Structure and [Misc #18025]
Diffstat (limited to 'vm_eval.c')
-rw-r--r--vm_eval.c17
1 files changed, 12 insertions, 5 deletions
diff --git a/vm_eval.c b/vm_eval.c
index bf5581cacf..bc40c15b6c 100644
--- a/vm_eval.c
+++ b/vm_eval.c
@@ -1557,15 +1557,22 @@ rb_iterate0(VALUE (* it_proc) (VALUE), VALUE data1,
return retval;
}
-VALUE
-rb_iterate(VALUE (* it_proc)(VALUE), VALUE data1,
- rb_block_call_func_t bl_proc, VALUE data2)
+static VALUE
+rb_iterate_internal(VALUE (* it_proc)(VALUE), VALUE data1,
+ rb_block_call_func_t bl_proc, VALUE data2)
{
return rb_iterate0(it_proc, data1,
bl_proc ? rb_vm_ifunc_proc_new(bl_proc, (void *)data2) : 0,
GET_EC());
}
+VALUE
+rb_iterate(VALUE (* it_proc)(VALUE), VALUE data1,
+ rb_block_call_func_t bl_proc, VALUE data2)
+{
+ return rb_iterate_internal(it_proc, data1, bl_proc, data2);
+}
+
struct iter_method_arg {
VALUE obj;
ID mid;
@@ -1603,7 +1610,7 @@ rb_block_call_kw(VALUE obj, ID mid, int argc, const VALUE * argv,
arg.argc = argc;
arg.argv = argv;
arg.kw_splat = kw_splat;
- return rb_iterate(iterate_method, (VALUE)&arg, bl_proc, data2);
+ return rb_iterate_internal(iterate_method, (VALUE)&arg, bl_proc, data2);
}
VALUE
@@ -1644,7 +1651,7 @@ rb_check_block_call(VALUE obj, ID mid, int argc, const VALUE *argv,
arg.argc = argc;
arg.argv = argv;
arg.kw_splat = 0;
- return rb_iterate(iterate_check_method, (VALUE)&arg, bl_proc, data2);
+ return rb_iterate_internal(iterate_check_method, (VALUE)&arg, bl_proc, data2);
}
VALUE