From fd0df9c4fb36597e5e3f500670b29dbd77a14eca Mon Sep 17 00:00:00 2001 From: Benoit Daloze Date: Tue, 6 Jul 2021 18:52:29 +0200 Subject: 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] --- vm_eval.c | 17 ++++++++++++----- 1 file changed, 12 insertions(+), 5 deletions(-) (limited to 'vm_eval.c') 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 -- cgit v1.2.1