aboutsummaryrefslogtreecommitdiffstats
diff options
context:
space:
mode:
authorNobuyoshi Nakada <nobu@ruby-lang.org>2020-10-06 09:56:49 +0900
committerNobuyoshi Nakada <nobu@ruby-lang.org>2020-10-06 10:11:51 +0900
commit68d24bc04549f04f0bbc40121c115fbbb7caf716 (patch)
tree9a25d8edfaefe65be2926c9ed2a91cfdfd5e5374
parent29c54b5e03f2d96f1387f77f34f77b62caddbef4 (diff)
downloadruby-68d24bc04549f04f0bbc40121c115fbbb7caf716.tar.gz
Moved rb_callable_receiver internal
-rw-r--r--include/ruby/internal/intern/proc.h1
-rw-r--r--internal/proc.h1
-rw-r--r--proc.c9
3 files changed, 7 insertions, 4 deletions
diff --git a/include/ruby/internal/intern/proc.h b/include/ruby/internal/intern/proc.h
index 24336a6a66..d6f77cbd4d 100644
--- a/include/ruby/internal/intern/proc.h
+++ b/include/ruby/internal/intern/proc.h
@@ -46,7 +46,6 @@ VALUE rb_method_call_with_block(int, const VALUE *, VALUE, VALUE);
VALUE rb_method_call_with_block_kw(int, const VALUE *, VALUE, VALUE, int);
int rb_mod_method_arity(VALUE, ID);
int rb_obj_method_arity(VALUE, ID);
-VALUE rb_callable_receiver(VALUE);
VALUE rb_protect(VALUE (*)(VALUE), VALUE, int*);
RBIMPL_SYMBOL_EXPORT_END()
diff --git a/internal/proc.h b/internal/proc.h
index 3d4c611584..5628a1f1c7 100644
--- a/internal/proc.h
+++ b/internal/proc.h
@@ -21,6 +21,7 @@ int rb_block_pair_yield_optimizable(void);
int rb_block_arity(void);
int rb_block_min_max_arity(int *max);
VALUE rb_block_to_s(VALUE self, const struct rb_block *block, const char *additional_info);
+VALUE rb_callable_receiver(VALUE);
MJIT_SYMBOL_EXPORT_BEGIN
VALUE rb_func_proc_new(rb_block_call_func_t func, VALUE val);
diff --git a/proc.c b/proc.c
index 96c84d20a8..b6285b18c2 100644
--- a/proc.c
+++ b/proc.c
@@ -2740,13 +2740,16 @@ rb_obj_method_arity(VALUE obj, ID id)
}
VALUE
-rb_callable_receiver(VALUE callable) {
+rb_callable_receiver(VALUE callable)
+{
if (rb_obj_is_proc(callable)) {
VALUE binding = rb_funcall(callable, rb_intern("binding"), 0);
return rb_funcall(binding, rb_intern("receiver"), 0);
- } else if (rb_obj_is_method(callable)) {
+ }
+ else if (rb_obj_is_method(callable)) {
return method_receiver(callable);
- } else {
+ }
+ else {
return Qundef;
}
}