Use proc_binding rather than rb_funcall

FIX
This commit is contained in:
Chris Seaton 2020-10-05 23:51:34 +01:00 коммит произвёл Aaron Patterson
Родитель ee7cc6ac35
Коммит fef52122b0
1 изменённых файлов: 2 добавлений и 1 удалений

3
proc.c
Просмотреть файл

@ -48,6 +48,7 @@ VALUE rb_cProc;
static rb_block_call_func bmcall;
static int method_arity(VALUE);
static int method_min_max_arity(VALUE, int *max);
static VALUE proc_binding(VALUE self);
#define attached id__attached__
@ -2743,7 +2744,7 @@ VALUE
rb_callable_receiver(VALUE callable)
{
if (rb_obj_is_proc(callable)) {
VALUE binding = rb_funcall(callable, rb_intern("binding"), 0);
VALUE binding = proc_binding(callable);
return rb_funcall(binding, rb_intern("receiver"), 0);
}
else if (rb_obj_is_method(callable)) {