use more lightweight mrb_funcall_argv instead of mrb_funcall_id

This commit is contained in:
Yukihiro "Matz" Matsumoto
2023-06-11 23:21:49 +09:00
parent 39a29a7de1
commit 89f7bb1056
12 changed files with 20 additions and 20 deletions
@@ -68,7 +68,7 @@ mrb_debug_eval(mrb_state *mrb, mrb_debug_context *dbg, const char *expr, size_t
recv = dbg->regs[0];
v = mrb_funcall_id(mrb, recv, MRB_SYM(instance_eval), 1, ruby_code);
v = mrb_funcall_argv(mrb, recv, MRB_SYM(instance_eval), 1, &ruby_code);
}
if (exc) {
+1 -1
View File
@@ -117,7 +117,7 @@ p(mrb_state *mrb, mrb_value obj, int prompt)
mrb_value val;
char* msg;
val = mrb_funcall_id(mrb, obj, MRB_SYM(inspect), 0);
val = mrb_funcall_argv(mrb, obj, MRB_SYM(inspect), 0, NULL);
if (prompt) {
if (!mrb->exc) {
fputs(" => ", stdout);
+1 -1
View File
@@ -627,7 +627,7 @@ mrb_mod_remove_method(mrb_state *mrb, mrb_value mod)
mrb_check_frozen(mrb, c);
while (argc--) {
mrb_remove_method(mrb, c, mrb_obj_to_sym(mrb, *argv));
mrb_funcall_id(mrb, mod, MRB_SYM(method_removed), 1, *argv);
mrb_funcall_argv(mrb, mod, MRB_SYM(method_removed), 1, argv);
argv++;
}
return mod;
+3 -3
View File
@@ -485,7 +485,7 @@ rational_cmp(mrb_state *mrb, mrb_value x)
}
#endif
default:
x = mrb_funcall_id(mrb, y, MRB_OPSYM(cmp), 1, x);
x = mrb_funcall_argv(mrb, y, MRB_OPSYM(cmp), 1, &x);
if (mrb_integer_p(x)) {
mrb_int z = mrb_integer(x);
return mrb_fixnum_value(-z);
@@ -542,7 +542,7 @@ mrb_rational_add(mrb_state *mrb, mrb_value x, mrb_value y)
#endif
default:
return mrb_funcall_id(mrb, y, MRB_OPSYM(add), 1, x);
return mrb_funcall_argv(mrb, y, MRB_OPSYM(add), 1, &x);
}
}
@@ -640,7 +640,7 @@ mrb_rational_mul(mrb_state *mrb, mrb_value x, mrb_value y)
#endif
default:
return mrb_funcall_id(mrb, y, MRB_OPSYM(mul), 1, x);
return mrb_funcall_argv(mrb, y, MRB_OPSYM(mul), 1, &x);
}
}
+3 -3
View File
@@ -475,9 +475,9 @@ mrb_basicsocket_setsockopt(mrb_state *mrb, mrb_value self)
else if (argc == 1) {
if (strcmp(mrb_obj_classname(mrb, so), "Socket::Option") != 0)
mrb_raise(mrb, E_ARGUMENT_ERROR, "not an instance of Socket::Option");
level = mrb_as_int(mrb, mrb_funcall_id(mrb, so, MRB_SYM(level), 0));
optname = mrb_as_int(mrb, mrb_funcall_id(mrb, so, MRB_SYM(optname), 0));
optval = mrb_funcall_id(mrb, so, MRB_SYM(data), 0);
level = mrb_as_int(mrb, mrb_funcall_argv(mrb, so, MRB_SYM(level), 0, NULL));
optname = mrb_as_int(mrb, mrb_funcall_argv(mrb, so, MRB_SYM(optname), 0, NULL));
optval = mrb_funcall_argv(mrb, so, MRB_SYM(data), 0, NULL);
mrb_ensure_string_type(mrb, optval);
}
else {
+1 -1
View File
@@ -763,7 +763,7 @@ retry:
tmp = mrb_str_new(mrb, buf, 1);
}
else {
tmp = mrb_funcall_id(mrb, val, MRB_SYM(chr), 0);
tmp = mrb_funcall_argv(mrb, val, MRB_SYM(chr), 0, NULL);
mrb_check_type(mrb, tmp, MRB_TT_STRING);
}
#endif
+1 -1
View File
@@ -1176,7 +1176,7 @@ mrb_ary_splat(mrb_state *mrb, mrb_value v)
return mrb_ary_new_from_values(mrb, 1, &v);
}
ary = mrb_funcall_id(mrb, v, MRB_SYM(to_a), 0);
ary = mrb_funcall_argv(mrb, v, MRB_SYM(to_a), 0, NULL);
if (mrb_nil_p(ary)) {
return mrb_ary_new_from_values(mrb, 1, &v);
}
+3 -2
View File
@@ -2554,7 +2554,8 @@ mrb_method_added(mrb_state *mrb, struct RClass *c, mrb_sym mid)
added = MRB_SYM(method_added);
}
if (!mrb_func_basic_p(mrb, recv, added, mrb_do_nothing)) {
mrb_funcall_id(mrb, recv, added, 1, mrb_symbol_value(mid));
mrb_value sym = mrb_symbol_value(mid);
mrb_funcall_argv(mrb, recv, added, 1, &sym);
}
}
@@ -2784,7 +2785,7 @@ init_copy(mrb_state *mrb, mrb_value dest, mrb_value obj)
break;
}
if (!mrb_func_basic_p(mrb, dest, MRB_SYM(initialize_copy), mrb_obj_init_copy)) {
mrb_funcall_id(mrb, dest, MRB_SYM(initialize_copy), 1, obj);
mrb_funcall_argv(mrb, dest, MRB_SYM(initialize_copy), 1, &obj);
}
}
+1 -1
View File
@@ -507,7 +507,7 @@ mrb_obj_ceqq(mrb_state *mrb, mrb_value self)
return mrb_false_value();
}
else {
ary = mrb_funcall_id(mrb, self, MRB_SYM(to_a), 0);
ary = mrb_funcall_argv(mrb, self, MRB_SYM(to_a), 0, NULL);
if (mrb_nil_p(ary)) {
return mrb_funcall_argv(mrb, self, eqq, 1, &v);
}
+1 -1
View File
@@ -2174,7 +2174,7 @@ mrb_cmp(mrb_state *mrb, mrb_value obj1, mrb_value obj2)
return mrb_str_cmp(mrb, obj1, obj2);
default:
if (!mrb_respond_to(mrb, obj1, MRB_OPSYM(cmp))) return -2;
v = mrb_funcall_id(mrb, obj1, MRB_OPSYM(cmp), 1, obj2);
v = mrb_funcall_argv(mrb, obj1, MRB_OPSYM(cmp), 1, &obj2);
if (mrb_nil_p(v) || !mrb_integer_p(v))
return -2;
return mrb_integer(v);
+3 -3
View File
@@ -77,7 +77,7 @@ mrb_equal(mrb_state *mrb, mrb_value obj1, mrb_value obj2)
return FALSE;
}
#endif
result = mrb_funcall_id(mrb, obj1, MRB_OPSYM(eq), 1, obj2);
result = mrb_funcall_argv(mrb, obj1, MRB_OPSYM(eq), 1, &obj2);
if (mrb_test(result)) return TRUE;
return FALSE;
}
@@ -638,7 +638,7 @@ mrb_check_hash_type(mrb_state *mrb, mrb_value hash)
MRB_API mrb_value
mrb_inspect(mrb_state *mrb, mrb_value obj)
{
mrb_value v = mrb_funcall_id(mrb, obj, MRB_SYM(inspect), 0);
mrb_value v = mrb_funcall_argv(mrb, obj, MRB_SYM(inspect), 0, NULL);
if (!mrb_string_p(v)) {
v = mrb_obj_as_string(mrb, obj);
}
@@ -649,5 +649,5 @@ MRB_API mrb_bool
mrb_eql(mrb_state *mrb, mrb_value obj1, mrb_value obj2)
{
if (mrb_obj_eq(mrb, obj1, obj2)) return TRUE;
return mrb_test(mrb_funcall_id(mrb, obj1, MRB_SYM_Q(eql), 1, obj2));
return mrb_test(mrb_funcall_argv(mrb, obj1, MRB_SYM_Q(eql), 1, &obj2));
}
+1 -2
View File
@@ -769,7 +769,6 @@ const_get(mrb_state *mrb, struct RClass *base, mrb_sym sym, mrb_bool skip)
struct RClass *c = base;
mrb_value v;
mrb_bool retry = FALSE;
mrb_value name;
/* if skip then skip the current class (already searched) */
if (skip) c = c->super;
@@ -786,7 +785,7 @@ L_RETRY:
retry = TRUE;
goto L_RETRY;
}
name = mrb_symbol_value(sym);
mrb_value name = mrb_symbol_value(sym);
return mrb_funcall_argv(mrb, mrb_obj_value(base), MRB_SYM(const_missing), 1, &name);
}