mirror of
https://github.com/mruby/mruby
synced 2026-06-08 16:11:16 +00:00
use more lightweight mrb_funcall_argv instead of mrb_funcall_id
This commit is contained in:
@@ -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) {
|
||||
|
||||
@@ -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);
|
||||
|
||||
@@ -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;
|
||||
|
||||
@@ -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);
|
||||
}
|
||||
}
|
||||
|
||||
|
||||
@@ -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 {
|
||||
|
||||
@@ -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
@@ -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
@@ -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
@@ -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
@@ -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
@@ -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
@@ -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);
|
||||
}
|
||||
|
||||
|
||||
Reference in New Issue
Block a user