mirror of
https://github.com/mruby/mruby
synced 2026-06-08 16:11:16 +00:00
Add mrb_get_arg1() that retrieves single (and only) argument.
`mrb_get_arg1()` raises `ArgumentError` if the method does not receive one argument. And replaces all `mrb_get_args(mrb, "o", &arg)` by the new function.
This commit is contained in:
@@ -959,8 +959,21 @@ mrb_get_mid(mrb_state *mrb) /* get method symbol */
|
||||
*/
|
||||
MRB_API mrb_int mrb_get_argc(mrb_state *mrb);
|
||||
|
||||
/**
|
||||
* Retrieve an array of arguments from mrb_state.
|
||||
*
|
||||
* Correctly handles *splat arguments.
|
||||
*/
|
||||
MRB_API mrb_value* mrb_get_argv(mrb_state *mrb);
|
||||
|
||||
/**
|
||||
* Retrieve the first and only argument from mrb_state.
|
||||
* Raises ArgumentError unless the number of arguments is exactly one.
|
||||
*
|
||||
* Correctly handles *splat arguments.
|
||||
*/
|
||||
MRB_API mrb_value mrb_get_arg1(mrb_state *mrb);
|
||||
|
||||
/* `strlen` for character string literals (use with caution or `strlen` instead)
|
||||
Adjacent string literals are concatenated in C/C++ in translation phase 6.
|
||||
If `lit` is not one, the compiler will report a syntax error:
|
||||
|
||||
@@ -28,9 +28,8 @@ static mrb_value
|
||||
mrb_ary_assoc(mrb_state *mrb, mrb_value ary)
|
||||
{
|
||||
mrb_int i;
|
||||
mrb_value v, k;
|
||||
|
||||
mrb_get_args(mrb, "o", &k);
|
||||
mrb_value v;
|
||||
mrb_value k = mrb_get_arg1(mrb);
|
||||
|
||||
for (i = 0; i < RARRAY_LEN(ary); ++i) {
|
||||
v = mrb_check_array_type(mrb, RARRAY_PTR(ary)[i]);
|
||||
@@ -59,9 +58,8 @@ static mrb_value
|
||||
mrb_ary_rassoc(mrb_state *mrb, mrb_value ary)
|
||||
{
|
||||
mrb_int i;
|
||||
mrb_value v, value;
|
||||
|
||||
mrb_get_args(mrb, "o", &value);
|
||||
mrb_value v;
|
||||
mrb_value value = mrb_get_arg1(mrb);
|
||||
|
||||
for (i = 0; i < RARRAY_LEN(ary); ++i) {
|
||||
v = RARRAY_PTR(ary)[i];
|
||||
|
||||
@@ -174,7 +174,7 @@ div_pair(struct float_pair *q, struct float_pair const *a,
|
||||
static mrb_value
|
||||
complex_div(mrb_state *mrb, mrb_value self)
|
||||
{
|
||||
mrb_value rhs;
|
||||
mrb_value rhs = mrb_get_arg1(mrb);
|
||||
struct mrb_complex *a, *b;
|
||||
struct float_pair ar, ai, br, bi;
|
||||
struct float_pair br2, bi2;
|
||||
@@ -183,7 +183,6 @@ complex_div(mrb_state *mrb, mrb_value self)
|
||||
struct float_pair ai_br, ar_bi;
|
||||
struct float_pair zr, zi;
|
||||
|
||||
mrb_get_args(mrb, "o", &rhs);
|
||||
a = complex_ptr(mrb, self);
|
||||
b = complex_ptr(mrb, rhs);
|
||||
|
||||
|
||||
@@ -291,8 +291,7 @@ mrb_fiber_alive_p(mrb_state *mrb, mrb_value self)
|
||||
static mrb_value
|
||||
fiber_eq(mrb_state *mrb, mrb_value self)
|
||||
{
|
||||
mrb_value other;
|
||||
mrb_get_args(mrb, "o", &other);
|
||||
mrb_value other = mrb_get_arg1(mrb);
|
||||
|
||||
if (!mrb_fiber_p(other)) {
|
||||
return mrb_false_value();
|
||||
|
||||
@@ -8,8 +8,7 @@ istruct_test_initialize(mrb_state *mrb, mrb_value self)
|
||||
{
|
||||
char *string = (char*)mrb_istruct_ptr(self);
|
||||
mrb_int size = mrb_istruct_size();
|
||||
mrb_value object;
|
||||
mrb_get_args(mrb, "o", &object);
|
||||
mrb_value object = mrb_get_arg1(mrb);
|
||||
|
||||
if (mrb_fixnum_p(object)) {
|
||||
strncpy(string, "fixnum", size-1);
|
||||
@@ -45,8 +44,8 @@ istruct_test_length(mrb_state *mrb, mrb_value self)
|
||||
static mrb_value
|
||||
istruct_test_test_receive(mrb_state *mrb, mrb_value self)
|
||||
{
|
||||
mrb_value object;
|
||||
mrb_get_args(mrb, "o", &object);
|
||||
mrb_value object = mrb_get_arg1(mrb);
|
||||
|
||||
if (mrb_obj_class(mrb, object) != mrb_class_get(mrb, "InlineStructTest"))
|
||||
{
|
||||
mrb_raise(mrb, E_TYPE_ERROR, "Expected InlineStructTest");
|
||||
|
||||
@@ -492,10 +492,9 @@ mrb_file_truncate(mrb_state *mrb, mrb_value self)
|
||||
{
|
||||
int fd;
|
||||
mrb_int length;
|
||||
mrb_value lenv;
|
||||
mrb_value lenv = mrb_get_arg1(mrb);
|
||||
|
||||
fd = mrb_io_fileno(mrb, self);
|
||||
mrb_get_args(mrb, "o", &lenv);
|
||||
length = mrb_int(mrb, lenv);
|
||||
if (mrb_ftruncate(fd, length) != 0) {
|
||||
mrb_raise(mrb, E_IO_ERROR, "ftruncate failed");
|
||||
|
||||
@@ -93,9 +93,7 @@ mrb_filetest_s_directory_p(mrb_state *mrb, mrb_value klass)
|
||||
#endif
|
||||
|
||||
struct stat st;
|
||||
mrb_value obj;
|
||||
|
||||
mrb_get_args(mrb, "o", &obj);
|
||||
mrb_value obj = mrb_get_arg1(mrb);
|
||||
|
||||
if (mrb_stat(mrb, obj, &st) < 0)
|
||||
return mrb_false_value();
|
||||
@@ -124,9 +122,7 @@ mrb_filetest_s_pipe_p(mrb_state *mrb, mrb_value klass)
|
||||
# endif
|
||||
|
||||
struct stat st;
|
||||
mrb_value obj;
|
||||
|
||||
mrb_get_args(mrb, "o", &obj);
|
||||
mrb_value obj = mrb_get_arg1(mrb);
|
||||
|
||||
if (mrb_stat(mrb, obj, &st) < 0)
|
||||
return mrb_false_value();
|
||||
@@ -167,9 +163,7 @@ mrb_filetest_s_symlink_p(mrb_state *mrb, mrb_value klass)
|
||||
|
||||
#ifdef S_ISLNK
|
||||
struct stat st;
|
||||
mrb_value obj;
|
||||
|
||||
mrb_get_args(mrb, "o", &obj);
|
||||
mrb_value obj = mrb_get_arg1(mrb);
|
||||
|
||||
if (mrb_lstat(mrb, obj, &st) == -1)
|
||||
return mrb_false_value();
|
||||
@@ -210,9 +204,7 @@ mrb_filetest_s_socket_p(mrb_state *mrb, mrb_value klass)
|
||||
|
||||
#ifdef S_ISSOCK
|
||||
struct stat st;
|
||||
mrb_value obj;
|
||||
|
||||
mrb_get_args(mrb, "o", &obj);
|
||||
mrb_value obj = mrb_get_arg1(mrb);
|
||||
|
||||
if (mrb_stat(mrb, obj, &st) < 0)
|
||||
return mrb_false_value();
|
||||
@@ -236,9 +228,8 @@ static mrb_value
|
||||
mrb_filetest_s_exist_p(mrb_state *mrb, mrb_value klass)
|
||||
{
|
||||
struct stat st;
|
||||
mrb_value obj;
|
||||
mrb_value obj = mrb_get_arg1(mrb);
|
||||
|
||||
mrb_get_args(mrb, "o", &obj);
|
||||
if (mrb_stat(mrb, obj, &st) < 0)
|
||||
return mrb_false_value();
|
||||
|
||||
@@ -261,9 +252,7 @@ mrb_filetest_s_file_p(mrb_state *mrb, mrb_value klass)
|
||||
#endif
|
||||
|
||||
struct stat st;
|
||||
mrb_value obj;
|
||||
|
||||
mrb_get_args(mrb, "o", &obj);
|
||||
mrb_value obj = mrb_get_arg1(mrb);
|
||||
|
||||
if (mrb_stat(mrb, obj, &st) < 0)
|
||||
return mrb_false_value();
|
||||
@@ -285,9 +274,7 @@ static mrb_value
|
||||
mrb_filetest_s_zero_p(mrb_state *mrb, mrb_value klass)
|
||||
{
|
||||
struct stat st;
|
||||
mrb_value obj;
|
||||
|
||||
mrb_get_args(mrb, "o", &obj);
|
||||
mrb_value obj = mrb_get_arg1(mrb);
|
||||
|
||||
if (mrb_stat(mrb, obj, &st) < 0)
|
||||
return mrb_false_value();
|
||||
@@ -310,9 +297,7 @@ static mrb_value
|
||||
mrb_filetest_s_size(mrb_state *mrb, mrb_value klass)
|
||||
{
|
||||
struct stat st;
|
||||
mrb_value obj;
|
||||
|
||||
mrb_get_args(mrb, "o", &obj);
|
||||
mrb_value obj = mrb_get_arg1(mrb);
|
||||
|
||||
if (mrb_stat(mrb, obj, &st) < 0)
|
||||
mrb_sys_fail(mrb, "mrb_stat");
|
||||
@@ -332,9 +317,7 @@ static mrb_value
|
||||
mrb_filetest_s_size_p(mrb_state *mrb, mrb_value klass)
|
||||
{
|
||||
struct stat st;
|
||||
mrb_value obj;
|
||||
|
||||
mrb_get_args(mrb, "o", &obj);
|
||||
mrb_value obj = mrb_get_arg1(mrb);
|
||||
|
||||
if (mrb_stat(mrb, obj, &st) < 0)
|
||||
return mrb_nil_value();
|
||||
|
||||
@@ -599,13 +599,12 @@ mrb_dup(mrb_state *mrb, int fd, mrb_bool *failed)
|
||||
static mrb_value
|
||||
mrb_io_initialize_copy(mrb_state *mrb, mrb_value copy)
|
||||
{
|
||||
mrb_value orig;
|
||||
mrb_value orig = mrb_get_arg1(mrb);
|
||||
mrb_value buf;
|
||||
struct mrb_io *fptr_copy;
|
||||
struct mrb_io *fptr_orig;
|
||||
mrb_bool failed = TRUE;
|
||||
|
||||
mrb_get_args(mrb, "o", &orig);
|
||||
fptr_orig = io_get_open_fptr(mrb, orig);
|
||||
fptr_copy = (struct mrb_io *)DATA_PTR(copy);
|
||||
if (fptr_orig == fptr_copy) return copy;
|
||||
|
||||
@@ -128,9 +128,8 @@ mrb_f_integer(mrb_state *mrb, mrb_value self)
|
||||
static mrb_value
|
||||
mrb_f_float(mrb_state *mrb, mrb_value self)
|
||||
{
|
||||
mrb_value arg;
|
||||
mrb_value arg = mrb_get_arg1(mrb);
|
||||
|
||||
mrb_get_args(mrb, "o", &arg);
|
||||
return mrb_Float(mrb, arg);
|
||||
}
|
||||
#endif
|
||||
@@ -149,9 +148,9 @@ mrb_f_float(mrb_state *mrb, mrb_value self)
|
||||
static mrb_value
|
||||
mrb_f_string(mrb_state *mrb, mrb_value self)
|
||||
{
|
||||
mrb_value arg, tmp;
|
||||
mrb_value arg = mrb_get_arg1(mrb);
|
||||
mrb_value tmp;
|
||||
|
||||
mrb_get_args(mrb, "o", &arg);
|
||||
tmp = mrb_convert_type(mrb, arg, MRB_TT_STRING, "String", "to_s");
|
||||
return tmp;
|
||||
}
|
||||
@@ -168,9 +167,9 @@ mrb_f_string(mrb_state *mrb, mrb_value self)
|
||||
static mrb_value
|
||||
mrb_f_array(mrb_state *mrb, mrb_value self)
|
||||
{
|
||||
mrb_value arg, tmp;
|
||||
mrb_value arg = mrb_get_arg1(mrb);
|
||||
mrb_value tmp;
|
||||
|
||||
mrb_get_args(mrb, "o", &arg);
|
||||
tmp = mrb_check_convert_type(mrb, arg, MRB_TT_ARRAY, "Array", "to_a");
|
||||
if (mrb_nil_p(tmp)) {
|
||||
return mrb_ary_new_from_values(mrb, 1, &arg);
|
||||
@@ -196,9 +195,8 @@ mrb_f_array(mrb_state *mrb, mrb_value self)
|
||||
static mrb_value
|
||||
mrb_f_hash(mrb_state *mrb, mrb_value self)
|
||||
{
|
||||
mrb_value arg;
|
||||
mrb_value arg = mrb_get_arg1(mrb);
|
||||
|
||||
mrb_get_args(mrb, "o", &arg);
|
||||
if (mrb_nil_p(arg) || (mrb_array_p(arg) && RARRAY_LEN(arg) == 0)) {
|
||||
return mrb_hash_new(mrb);
|
||||
}
|
||||
|
||||
@@ -33,9 +33,8 @@ unbound_method_bind(mrb_state *mrb, mrb_value self)
|
||||
mrb_value name = mrb_iv_get(mrb, self, mrb_intern_lit(mrb, "_name"));
|
||||
mrb_value proc = mrb_iv_get(mrb, self, mrb_intern_lit(mrb, "_proc"));
|
||||
mrb_value klass = mrb_iv_get(mrb, self, mrb_intern_lit(mrb, "_klass"));
|
||||
mrb_value recv;
|
||||
mrb_value recv = mrb_get_arg1(mrb);
|
||||
|
||||
mrb_get_args(mrb, "o", &recv);
|
||||
bind_check(mrb, recv, owner);
|
||||
me = method_object_alloc(mrb, mrb_class_get(mrb, "Method"));
|
||||
mrb_obj_iv_set(mrb, me, mrb_intern_lit(mrb, "_owner"), owner);
|
||||
@@ -51,11 +50,11 @@ unbound_method_bind(mrb_state *mrb, mrb_value self)
|
||||
static mrb_value
|
||||
method_eql(mrb_state *mrb, mrb_value self)
|
||||
{
|
||||
mrb_value other, receiver, orig_proc, other_proc;
|
||||
mrb_value other = mrb_get_arg1(mrb);
|
||||
mrb_value receiver, orig_proc, other_proc;
|
||||
struct RClass *owner, *klass;
|
||||
struct RProc *orig_rproc, *other_rproc;
|
||||
|
||||
mrb_get_args(mrb, "o", &other);
|
||||
if (!mrb_obj_is_instance_of(mrb, other, mrb_class(mrb, self)))
|
||||
return mrb_false_value();
|
||||
|
||||
|
||||
@@ -45,9 +45,8 @@ printstr(mrb_state *mrb, mrb_value obj)
|
||||
mrb_value
|
||||
mrb_printstr(mrb_state *mrb, mrb_value self)
|
||||
{
|
||||
mrb_value argv;
|
||||
mrb_value argv = mrb_get_arg1(mrb);
|
||||
|
||||
mrb_get_args(mrb, "o", &argv);
|
||||
printstr(mrb, argv);
|
||||
|
||||
return argv;
|
||||
|
||||
@@ -34,12 +34,10 @@ r_lt(mrb_state *mrb, mrb_value a, mrb_value b)
|
||||
static mrb_value
|
||||
range_cover(mrb_state *mrb, mrb_value range)
|
||||
{
|
||||
mrb_value val;
|
||||
struct RRange *r = mrb_range_ptr(mrb, range);
|
||||
mrb_value val = mrb_get_arg1(mrb);
|
||||
mrb_value beg, end;
|
||||
|
||||
mrb_get_args(mrb, "o", &val);
|
||||
|
||||
beg = RANGE_BEG(r);
|
||||
end = RANGE_END(r);
|
||||
|
||||
|
||||
@@ -164,9 +164,8 @@ mrb_str_swapcase(mrb_state *mrb, mrb_value self)
|
||||
static mrb_value
|
||||
mrb_str_concat_m(mrb_state *mrb, mrb_value self)
|
||||
{
|
||||
mrb_value str;
|
||||
mrb_value str = mrb_get_arg1(mrb);
|
||||
|
||||
mrb_get_args(mrb, "o", &str);
|
||||
if (mrb_fixnum_p(str) || mrb_float_p(str))
|
||||
#ifdef MRB_UTF8_STRING
|
||||
str = int_chr_utf8(mrb, str);
|
||||
|
||||
@@ -154,9 +154,8 @@ mrb_struct_set_m(mrb_state *mrb, mrb_value obj)
|
||||
{
|
||||
mrb_int i = mrb_fixnum(mrb_proc_cfunc_env_get(mrb, 0));
|
||||
mrb_value *ptr;
|
||||
mrb_value val;
|
||||
mrb_value val = mrb_get_arg1(mrb);
|
||||
|
||||
mrb_get_args(mrb, "o", &val);
|
||||
mrb_struct_modify(mrb, obj);
|
||||
ptr = RSTRUCT_PTR(obj);
|
||||
if (ptr == NULL || i >= RSTRUCT_LEN(obj)) {
|
||||
@@ -356,9 +355,7 @@ mrb_struct_initialize(mrb_state *mrb, mrb_value self)
|
||||
static mrb_value
|
||||
mrb_struct_init_copy(mrb_state *mrb, mrb_value copy)
|
||||
{
|
||||
mrb_value s;
|
||||
|
||||
mrb_get_args(mrb, "o", &s);
|
||||
mrb_value s = mrb_get_arg1(mrb);
|
||||
|
||||
if (mrb_obj_equal(mrb, copy, s)) return copy;
|
||||
if (!mrb_obj_is_instance_of(mrb, s, mrb_obj_class(mrb, copy))) {
|
||||
@@ -428,9 +425,8 @@ struct_aref_int(mrb_state *mrb, mrb_value s, mrb_int i)
|
||||
static mrb_value
|
||||
mrb_struct_aref(mrb_state *mrb, mrb_value s)
|
||||
{
|
||||
mrb_value idx;
|
||||
mrb_value idx = mrb_get_arg1(mrb);
|
||||
|
||||
mrb_get_args(mrb, "o", &idx);
|
||||
if (mrb_string_p(idx)) {
|
||||
mrb_value sym = mrb_check_intern_str(mrb, idx);
|
||||
|
||||
@@ -545,11 +541,10 @@ mrb_struct_aset(mrb_state *mrb, mrb_value s)
|
||||
static mrb_value
|
||||
mrb_struct_equal(mrb_state *mrb, mrb_value s)
|
||||
{
|
||||
mrb_value s2;
|
||||
mrb_value s2 = mrb_get_arg1(mrb);
|
||||
mrb_value *ptr, *ptr2;
|
||||
mrb_int i, len;
|
||||
|
||||
mrb_get_args(mrb, "o", &s2);
|
||||
if (mrb_obj_equal(mrb, s, s2)) {
|
||||
return mrb_true_value();
|
||||
}
|
||||
@@ -582,11 +577,10 @@ mrb_struct_equal(mrb_state *mrb, mrb_value s)
|
||||
static mrb_value
|
||||
mrb_struct_eql(mrb_state *mrb, mrb_value s)
|
||||
{
|
||||
mrb_value s2;
|
||||
mrb_value s2 = mrb_get_arg1(mrb);
|
||||
mrb_value *ptr, *ptr2;
|
||||
mrb_int i, len;
|
||||
|
||||
mrb_get_args(mrb, "o", &s2);
|
||||
if (mrb_obj_equal(mrb, s, s2)) {
|
||||
return mrb_true_value();
|
||||
}
|
||||
|
||||
@@ -515,11 +515,10 @@ time_get_ptr(mrb_state *mrb, mrb_value time)
|
||||
static mrb_value
|
||||
mrb_time_eq(mrb_state *mrb, mrb_value self)
|
||||
{
|
||||
mrb_value other;
|
||||
mrb_value other = mrb_get_arg1(mrb);
|
||||
struct mrb_time *tm1, *tm2;
|
||||
mrb_bool eq_p;
|
||||
|
||||
mrb_get_args(mrb, "o", &other);
|
||||
tm1 = DATA_GET_PTR(mrb, self, &mrb_time_type, struct mrb_time);
|
||||
tm2 = DATA_CHECK_GET_PTR(mrb, other, &mrb_time_type, struct mrb_time);
|
||||
eq_p = tm1 && tm2 && tm1->sec == tm2->sec && tm1->usec == tm2->usec;
|
||||
@@ -530,10 +529,9 @@ mrb_time_eq(mrb_state *mrb, mrb_value self)
|
||||
static mrb_value
|
||||
mrb_time_cmp(mrb_state *mrb, mrb_value self)
|
||||
{
|
||||
mrb_value other;
|
||||
mrb_value other = mrb_get_arg1(mrb);
|
||||
struct mrb_time *tm1, *tm2;
|
||||
|
||||
mrb_get_args(mrb, "o", &other);
|
||||
tm1 = DATA_GET_PTR(mrb, self, &mrb_time_type, struct mrb_time);
|
||||
tm2 = DATA_CHECK_GET_PTR(mrb, other, &mrb_time_type, struct mrb_time);
|
||||
if (!tm1 || !tm2) return mrb_nil_value();
|
||||
@@ -556,11 +554,10 @@ mrb_time_cmp(mrb_state *mrb, mrb_value self)
|
||||
static mrb_value
|
||||
mrb_time_plus(mrb_state *mrb, mrb_value self)
|
||||
{
|
||||
mrb_value o;
|
||||
mrb_value o = mrb_get_arg1(mrb);
|
||||
struct mrb_time *tm;
|
||||
time_t sec, usec;
|
||||
|
||||
mrb_get_args(mrb, "o", &o);
|
||||
tm = time_get_ptr(mrb, self);
|
||||
sec = mrb_to_time_t(mrb, o, &usec);
|
||||
return mrb_time_make_time(mrb, mrb_obj_class(mrb, self), tm->sec+sec, tm->usec+usec, tm->timezone);
|
||||
@@ -569,10 +566,9 @@ mrb_time_plus(mrb_state *mrb, mrb_value self)
|
||||
static mrb_value
|
||||
mrb_time_minus(mrb_state *mrb, mrb_value self)
|
||||
{
|
||||
mrb_value other;
|
||||
mrb_value other = mrb_get_arg1(mrb);
|
||||
struct mrb_time *tm, *tm2;
|
||||
|
||||
mrb_get_args(mrb, "o", &other);
|
||||
tm = time_get_ptr(mrb, self);
|
||||
tm2 = DATA_CHECK_GET_PTR(mrb, other, &mrb_time_type, struct mrb_time);
|
||||
if (tm2) {
|
||||
@@ -770,10 +766,9 @@ mrb_time_initialize(mrb_state *mrb, mrb_value self)
|
||||
static mrb_value
|
||||
mrb_time_initialize_copy(mrb_state *mrb, mrb_value copy)
|
||||
{
|
||||
mrb_value src;
|
||||
mrb_value src = mrb_get_arg1(mrb);
|
||||
struct mrb_time *t1, *t2;
|
||||
|
||||
mrb_get_args(mrb, "o", &src);
|
||||
if (mrb_obj_equal(mrb, copy, src)) return copy;
|
||||
if (!mrb_obj_is_instance_of(mrb, src, mrb_obj_class(mrb, copy))) {
|
||||
mrb_raise(mrb, E_TYPE_ERROR, "wrong argument class");
|
||||
|
||||
+4
-8
@@ -1038,10 +1038,9 @@ mrb_ary_last(mrb_state *mrb, mrb_value self)
|
||||
static mrb_value
|
||||
mrb_ary_index_m(mrb_state *mrb, mrb_value self)
|
||||
{
|
||||
mrb_value obj;
|
||||
mrb_value obj = mrb_get_arg1(mrb);
|
||||
mrb_int i;
|
||||
|
||||
mrb_get_args(mrb, "o", &obj);
|
||||
for (i = 0; i < RARRAY_LEN(self); i++) {
|
||||
if (mrb_equal(mrb, RARRAY_PTR(self)[i], obj)) {
|
||||
return mrb_fixnum_value(i);
|
||||
@@ -1053,10 +1052,9 @@ mrb_ary_index_m(mrb_state *mrb, mrb_value self)
|
||||
static mrb_value
|
||||
mrb_ary_rindex_m(mrb_state *mrb, mrb_value self)
|
||||
{
|
||||
mrb_value obj;
|
||||
mrb_value obj = mrb_get_arg1(mrb);
|
||||
mrb_int i, len;
|
||||
|
||||
mrb_get_args(mrb, "o", &obj);
|
||||
for (i = RARRAY_LEN(self) - 1; i >= 0; i--) {
|
||||
if (mrb_equal(mrb, RARRAY_PTR(self)[i], obj)) {
|
||||
return mrb_fixnum_value(i);
|
||||
@@ -1230,9 +1228,8 @@ mrb_ary_join_m(mrb_state *mrb, mrb_value ary)
|
||||
static mrb_value
|
||||
mrb_ary_eq(mrb_state *mrb, mrb_value ary1)
|
||||
{
|
||||
mrb_value ary2;
|
||||
mrb_value ary2 = mrb_get_arg1(mrb);
|
||||
|
||||
mrb_get_args(mrb, "o", &ary2);
|
||||
if (mrb_obj_equal(mrb, ary1, ary2)) return mrb_true_value();
|
||||
if (!mrb_array_p(ary2)) {
|
||||
return mrb_false_value();
|
||||
@@ -1245,9 +1242,8 @@ mrb_ary_eq(mrb_state *mrb, mrb_value ary1)
|
||||
static mrb_value
|
||||
mrb_ary_cmp(mrb_state *mrb, mrb_value ary1)
|
||||
{
|
||||
mrb_value ary2;
|
||||
mrb_value ary2 = mrb_get_arg1(mrb);
|
||||
|
||||
mrb_get_args(mrb, "o", &ary2);
|
||||
if (mrb_obj_equal(mrb, ary1, ary2)) return mrb_fixnum_value(0);
|
||||
if (!mrb_array_p(ary2)) {
|
||||
return mrb_nil_value();
|
||||
|
||||
+23
-13
@@ -549,6 +549,23 @@ mrb_get_argv(mrb_state *mrb)
|
||||
return array_argv;
|
||||
}
|
||||
|
||||
MRB_API mrb_value
|
||||
mrb_get_arg1(mrb_state *mrb)
|
||||
{
|
||||
mrb_int argc = mrb->c->ci->argc;
|
||||
mrb_value *array_argv = mrb->c->stack + 1;
|
||||
if (argc < 0) {
|
||||
struct RArray *a = mrb_ary_ptr(*array_argv);
|
||||
|
||||
argc = ARY_LEN(a);
|
||||
array_argv = ARY_PTR(a);
|
||||
}
|
||||
if (argc != 1) {
|
||||
mrb_raise(mrb, E_ARGUMENT_ERROR, "wrong number of arguments");
|
||||
}
|
||||
return array_argv[0];
|
||||
}
|
||||
|
||||
void mrb_hash_check_kdict(mrb_state *mrb, mrb_value self);
|
||||
|
||||
/*
|
||||
@@ -1212,10 +1229,9 @@ mrb_mod_ancestors(mrb_state *mrb, mrb_value self)
|
||||
static mrb_value
|
||||
mrb_mod_extend_object(mrb_state *mrb, mrb_value mod)
|
||||
{
|
||||
mrb_value obj;
|
||||
mrb_value obj = mrb_get_arg1(mrb);
|
||||
|
||||
mrb_check_type(mrb, mod, MRB_TT_MODULE);
|
||||
mrb_get_args(mrb, "o", &obj);
|
||||
mrb_include_module(mrb, mrb_class_ptr(mrb_singleton_class(mrb, obj)), mrb_class_ptr(mod));
|
||||
return mod;
|
||||
}
|
||||
@@ -1493,9 +1509,8 @@ static mrb_value
|
||||
attr_writer(mrb_state *mrb, mrb_value obj)
|
||||
{
|
||||
mrb_value name = mrb_proc_cfunc_env_get(mrb, 0);
|
||||
mrb_value val;
|
||||
mrb_value val = mrb_get_arg1(mrb);
|
||||
|
||||
mrb_get_args(mrb, "o", &val);
|
||||
mrb_iv_set(mrb, obj, to_sym(mrb, name), val);
|
||||
return val;
|
||||
}
|
||||
@@ -1663,18 +1678,16 @@ mrb_bob_not(mrb_state *mrb, mrb_value cv)
|
||||
mrb_value
|
||||
mrb_obj_equal_m(mrb_state *mrb, mrb_value self)
|
||||
{
|
||||
mrb_value arg;
|
||||
mrb_value arg = mrb_get_arg1(mrb);
|
||||
|
||||
mrb_get_args(mrb, "o", &arg);
|
||||
return mrb_bool_value(mrb_obj_equal(mrb, self, arg));
|
||||
}
|
||||
|
||||
static mrb_value
|
||||
mrb_obj_not_equal_m(mrb_state *mrb, mrb_value self)
|
||||
{
|
||||
mrb_value arg;
|
||||
mrb_value arg = mrb_get_arg1(mrb);
|
||||
|
||||
mrb_get_args(mrb, "o", &arg);
|
||||
return mrb_bool_value(!mrb_equal(mrb, self, arg));
|
||||
}
|
||||
|
||||
@@ -1975,13 +1988,11 @@ mrb_const_get_sym(mrb_state *mrb, mrb_value mod, mrb_sym id)
|
||||
static mrb_value
|
||||
mrb_mod_const_get(mrb_state *mrb, mrb_value mod)
|
||||
{
|
||||
mrb_value path;
|
||||
mrb_value path = mrb_get_arg1(mrb);
|
||||
mrb_sym id;
|
||||
char *ptr;
|
||||
mrb_int off, end, len;
|
||||
|
||||
mrb_get_args(mrb, "o", &path);
|
||||
|
||||
if (mrb_symbol_p(path)) {
|
||||
/* const get with symbol */
|
||||
id = mrb_symbol(path);
|
||||
@@ -2134,10 +2145,9 @@ top_define_method(mrb_state *mrb, mrb_value self)
|
||||
static mrb_value
|
||||
mrb_mod_eqq(mrb_state *mrb, mrb_value mod)
|
||||
{
|
||||
mrb_value obj;
|
||||
mrb_value obj = mrb_get_arg1(mrb);
|
||||
mrb_bool eqq;
|
||||
|
||||
mrb_get_args(mrb, "o", &obj);
|
||||
eqq = mrb_obj_is_kind_of(mrb, obj, mrb_class_ptr(mod));
|
||||
|
||||
return mrb_bool_value(eqq);
|
||||
|
||||
+1
-2
@@ -160,9 +160,8 @@ set_backtrace(mrb_state *mrb, mrb_value exc, mrb_value backtrace)
|
||||
static mrb_value
|
||||
exc_set_backtrace(mrb_state *mrb, mrb_value exc)
|
||||
{
|
||||
mrb_value backtrace;
|
||||
mrb_value backtrace = mrb_get_arg1(mrb);
|
||||
|
||||
mrb_get_args(mrb, "o", &backtrace);
|
||||
set_backtrace(mrb, exc, backtrace);
|
||||
return backtrace;
|
||||
}
|
||||
|
||||
+7
-14
@@ -641,12 +641,11 @@ static mrb_value hash_default(mrb_state *mrb, mrb_value hash, mrb_value key);
|
||||
static mrb_value
|
||||
mrb_hash_init_copy(mrb_state *mrb, mrb_value self)
|
||||
{
|
||||
mrb_value orig;
|
||||
mrb_value orig = mrb_get_arg1(mrb);
|
||||
struct RHash* copy;
|
||||
htable *orig_h;
|
||||
mrb_value ifnone, vret;
|
||||
|
||||
mrb_get_args(mrb, "o", &orig);
|
||||
if (mrb_obj_equal(mrb, self, orig)) return self;
|
||||
if ((mrb_type(self) != mrb_type(orig)) || (mrb_obj_class(mrb, self) != mrb_obj_class(mrb, orig))) {
|
||||
mrb_raise(mrb, E_TYPE_ERROR, "initialize_copy should take same class object");
|
||||
@@ -828,9 +827,8 @@ mrb_hash_init(mrb_state *mrb, mrb_value hash)
|
||||
static mrb_value
|
||||
mrb_hash_aget(mrb_state *mrb, mrb_value self)
|
||||
{
|
||||
mrb_value key;
|
||||
mrb_value key = mrb_get_arg1(mrb);
|
||||
|
||||
mrb_get_args(mrb, "o", &key);
|
||||
return mrb_hash_get(mrb, self, key);
|
||||
}
|
||||
|
||||
@@ -913,9 +911,8 @@ mrb_hash_default(mrb_state *mrb, mrb_value hash)
|
||||
static mrb_value
|
||||
mrb_hash_set_default(mrb_state *mrb, mrb_value hash)
|
||||
{
|
||||
mrb_value ifnone;
|
||||
mrb_value ifnone = mrb_get_arg1(mrb);
|
||||
|
||||
mrb_get_args(mrb, "o", &ifnone);
|
||||
mrb_hash_modify(mrb, hash);
|
||||
mrb_iv_set(mrb, hash, mrb_intern_lit(mrb, "ifnone"), ifnone);
|
||||
RHASH(hash)->flags &= ~MRB_HASH_PROC_DEFAULT;
|
||||
@@ -969,9 +966,8 @@ mrb_hash_default_proc(mrb_state *mrb, mrb_value hash)
|
||||
static mrb_value
|
||||
mrb_hash_set_default_proc(mrb_state *mrb, mrb_value hash)
|
||||
{
|
||||
mrb_value ifnone;
|
||||
mrb_value ifnone = mrb_get_arg1(mrb);
|
||||
|
||||
mrb_get_args(mrb, "o", &ifnone);
|
||||
mrb_hash_modify(mrb, hash);
|
||||
mrb_iv_set(mrb, hash, mrb_intern_lit(mrb, "ifnone"), ifnone);
|
||||
if (!mrb_nil_p(ifnone)) {
|
||||
@@ -1003,9 +999,8 @@ mrb_hash_delete_key(mrb_state *mrb, mrb_value hash, mrb_value key)
|
||||
static mrb_value
|
||||
mrb_hash_delete(mrb_state *mrb, mrb_value self)
|
||||
{
|
||||
mrb_value key;
|
||||
mrb_value key = mrb_get_arg1(mrb);
|
||||
|
||||
mrb_get_args(mrb, "o", &key);
|
||||
mrb_hash_modify(mrb, self);
|
||||
return mrb_hash_delete_key(mrb, self, key);
|
||||
}
|
||||
@@ -1288,10 +1283,9 @@ mrb_hash_key_p(mrb_state *mrb, mrb_value hash, mrb_value key)
|
||||
static mrb_value
|
||||
mrb_hash_has_key(mrb_state *mrb, mrb_value hash)
|
||||
{
|
||||
mrb_value key;
|
||||
mrb_value key = mrb_get_arg1(mrb);
|
||||
mrb_bool key_p;
|
||||
|
||||
mrb_get_args(mrb, "o", &key);
|
||||
key_p = mrb_hash_key_p(mrb, hash, key);
|
||||
return mrb_bool_value(key_p);
|
||||
}
|
||||
@@ -1331,10 +1325,9 @@ hash_has_value_i(mrb_state *mrb, mrb_value key, mrb_value val, void *p)
|
||||
static mrb_value
|
||||
mrb_hash_has_value(mrb_state *mrb, mrb_value hash)
|
||||
{
|
||||
mrb_value val;
|
||||
mrb_value val = mrb_get_arg1(mrb);
|
||||
struct has_v_arg arg;
|
||||
|
||||
mrb_get_args(mrb, "o", &val);
|
||||
arg.found = FALSE;
|
||||
arg.val = val;
|
||||
ht_foreach(mrb, RHASH_TBL(hash), hash_has_value_i, &arg);
|
||||
|
||||
+3
-6
@@ -71,9 +71,8 @@ mrb_obj_inspect(mrb_state *mrb, mrb_value obj)
|
||||
static mrb_value
|
||||
mrb_equal_m(mrb_state *mrb, mrb_value self)
|
||||
{
|
||||
mrb_value arg;
|
||||
mrb_value arg = mrb_get_arg1(mrb);
|
||||
|
||||
mrb_get_args(mrb, "o", &arg);
|
||||
return mrb_bool_value(mrb_equal(mrb, self, arg));
|
||||
}
|
||||
|
||||
@@ -471,9 +470,8 @@ mrb_obj_hash(mrb_state *mrb, mrb_value self)
|
||||
static mrb_value
|
||||
mrb_obj_init_copy(mrb_state *mrb, mrb_value self)
|
||||
{
|
||||
mrb_value orig;
|
||||
mrb_value orig = mrb_get_arg1(mrb);
|
||||
|
||||
mrb_get_args(mrb, "o", &orig);
|
||||
if (mrb_obj_equal(mrb, self, orig)) return self;
|
||||
if ((mrb_type(self) != mrb_type(orig)) || (mrb_obj_class(mrb, self) != mrb_obj_class(mrb, orig))) {
|
||||
mrb_raise(mrb, E_TYPE_ERROR, "initialize_copy should take same class object");
|
||||
@@ -744,12 +742,11 @@ obj_respond_to(mrb_state *mrb, mrb_value self)
|
||||
static mrb_value
|
||||
mrb_obj_ceqq(mrb_state *mrb, mrb_value self)
|
||||
{
|
||||
mrb_value v;
|
||||
mrb_value v = mrb_get_arg1(mrb);
|
||||
mrb_int i, len;
|
||||
mrb_sym eqq = mrb_intern_lit(mrb, "===");
|
||||
mrb_value ary = mrb_ary_splat(mrb, self);
|
||||
|
||||
mrb_get_args(mrb, "o", &v);
|
||||
len = RARRAY_LEN(ary);
|
||||
for (i=0; i<len; i++) {
|
||||
mrb_value c = mrb_funcall_argv(mrb, mrb_ary_entry(ary, i), eqq, 1, &v);
|
||||
|
||||
+28
-59
@@ -67,12 +67,11 @@ mrb_int_value(mrb_state *mrb, mrb_float f)
|
||||
static mrb_value
|
||||
integral_pow(mrb_state *mrb, mrb_value x)
|
||||
{
|
||||
mrb_value y;
|
||||
mrb_value y = mrb_get_arg1(mrb);
|
||||
#ifndef MRB_WITHOUT_FLOAT
|
||||
mrb_float d;
|
||||
#endif
|
||||
|
||||
mrb_get_args(mrb, "o", &y);
|
||||
if (mrb_fixnum_p(x) && mrb_fixnum_p(y)) {
|
||||
/* try ipow() */
|
||||
mrb_int base = mrb_fixnum(x);
|
||||
@@ -116,9 +115,8 @@ static mrb_value
|
||||
integral_idiv(mrb_state *mrb, mrb_value x)
|
||||
{
|
||||
#ifdef MRB_WITHOUT_FLOAT
|
||||
mrb_value y;
|
||||
mrb_value y = mrb_get_arg1(mrb);
|
||||
|
||||
mrb_get_args(mrb, "o", &y);
|
||||
if (!mrb_fixnum_p(y)) {
|
||||
mrb_raise(mrb, E_TYPE_ERROR, "non fixnum value");
|
||||
}
|
||||
@@ -154,9 +152,8 @@ static mrb_value
|
||||
integral_div(mrb_state *mrb, mrb_value x)
|
||||
{
|
||||
#ifdef MRB_WITHOUT_FLOAT
|
||||
mrb_value y;
|
||||
mrb_value y = mrb_get_arg1(mrb);
|
||||
|
||||
mrb_get_args(mrb, "o", &y);
|
||||
if (!mrb_fixnum_p(y)) {
|
||||
mrb_raise(mrb, E_TYPE_ERROR, "non fixnum value");
|
||||
}
|
||||
@@ -271,9 +268,8 @@ flo_to_s(mrb_state *mrb, mrb_value flt)
|
||||
static mrb_value
|
||||
flo_minus(mrb_state *mrb, mrb_value x)
|
||||
{
|
||||
mrb_value y;
|
||||
mrb_value y = mrb_get_arg1(mrb);
|
||||
|
||||
mrb_get_args(mrb, "o", &y);
|
||||
return mrb_float_value(mrb, mrb_float(x) - mrb_to_flo(mrb, y));
|
||||
}
|
||||
|
||||
@@ -289,9 +285,8 @@ flo_minus(mrb_state *mrb, mrb_value x)
|
||||
static mrb_value
|
||||
flo_mul(mrb_state *mrb, mrb_value x)
|
||||
{
|
||||
mrb_value y;
|
||||
mrb_value y = mrb_get_arg1(mrb);
|
||||
|
||||
mrb_get_args(mrb, "o", &y);
|
||||
return mrb_float_value(mrb, mrb_float(x) * mrb_to_flo(mrb, y));
|
||||
}
|
||||
|
||||
@@ -351,11 +346,9 @@ flodivmod(mrb_state *mrb, double x, double y, mrb_float *divp, mrb_float *modp)
|
||||
static mrb_value
|
||||
flo_mod(mrb_state *mrb, mrb_value x)
|
||||
{
|
||||
mrb_value y;
|
||||
mrb_value y = mrb_get_arg1(mrb);
|
||||
mrb_float mod;
|
||||
|
||||
mrb_get_args(mrb, "o", &y);
|
||||
|
||||
flodivmod(mrb, mrb_float(x), mrb_to_flo(mrb, y), 0, &mod);
|
||||
return mrb_float_value(mrb, mod);
|
||||
}
|
||||
@@ -376,9 +369,8 @@ flo_mod(mrb_state *mrb, mrb_value x)
|
||||
static mrb_value
|
||||
fix_eql(mrb_state *mrb, mrb_value x)
|
||||
{
|
||||
mrb_value y;
|
||||
mrb_value y = mrb_get_arg1(mrb);
|
||||
|
||||
mrb_get_args(mrb, "o", &y);
|
||||
if (!mrb_fixnum_p(y)) return mrb_false_value();
|
||||
return mrb_bool_value(mrb_fixnum(x) == mrb_fixnum(y));
|
||||
}
|
||||
@@ -387,9 +379,8 @@ fix_eql(mrb_state *mrb, mrb_value x)
|
||||
static mrb_value
|
||||
flo_eql(mrb_state *mrb, mrb_value x)
|
||||
{
|
||||
mrb_value y;
|
||||
mrb_value y = mrb_get_arg1(mrb);
|
||||
|
||||
mrb_get_args(mrb, "o", &y);
|
||||
if (!mrb_float_p(y)) return mrb_false_value();
|
||||
return mrb_bool_value(mrb_float(x) == mrb_float(y));
|
||||
}
|
||||
@@ -410,8 +401,7 @@ flo_eql(mrb_state *mrb, mrb_value x)
|
||||
static mrb_value
|
||||
flo_eq(mrb_state *mrb, mrb_value x)
|
||||
{
|
||||
mrb_value y;
|
||||
mrb_get_args(mrb, "o", &y);
|
||||
mrb_value y = mrb_get_arg1(mrb);
|
||||
|
||||
switch (mrb_type(y)) {
|
||||
case MRB_TT_FIXNUM:
|
||||
@@ -460,9 +450,8 @@ flo_rev(mrb_state *mrb, mrb_value x)
|
||||
static mrb_value
|
||||
flo_and(mrb_state *mrb, mrb_value x)
|
||||
{
|
||||
mrb_value y;
|
||||
mrb_value y = mrb_get_arg1(mrb);
|
||||
int64_t v1, v2;
|
||||
mrb_get_args(mrb, "o", &y);
|
||||
|
||||
v1 = (int64_t)mrb_float(x);
|
||||
v2 = value_int64(mrb, y);
|
||||
@@ -472,9 +461,8 @@ flo_and(mrb_state *mrb, mrb_value x)
|
||||
static mrb_value
|
||||
flo_or(mrb_state *mrb, mrb_value x)
|
||||
{
|
||||
mrb_value y;
|
||||
mrb_value y = mrb_get_arg1(mrb);
|
||||
int64_t v1, v2;
|
||||
mrb_get_args(mrb, "o", &y);
|
||||
|
||||
v1 = (int64_t)mrb_float(x);
|
||||
v2 = value_int64(mrb, y);
|
||||
@@ -484,9 +472,8 @@ flo_or(mrb_state *mrb, mrb_value x)
|
||||
static mrb_value
|
||||
flo_xor(mrb_state *mrb, mrb_value x)
|
||||
{
|
||||
mrb_value y;
|
||||
mrb_value y = mrb_get_arg1(mrb);
|
||||
int64_t v1, v2;
|
||||
mrb_get_args(mrb, "o", &y);
|
||||
|
||||
v1 = (int64_t)mrb_float(x);
|
||||
v2 = value_int64(mrb, y);
|
||||
@@ -847,9 +834,8 @@ mrb_num_mul(mrb_state *mrb, mrb_value x, mrb_value y)
|
||||
static mrb_value
|
||||
fix_mul(mrb_state *mrb, mrb_value x)
|
||||
{
|
||||
mrb_value y;
|
||||
mrb_value y = mrb_get_arg1(mrb);
|
||||
|
||||
mrb_get_args(mrb, "o", &y);
|
||||
return fixnum_mul(mrb, x, y);
|
||||
}
|
||||
|
||||
@@ -894,10 +880,9 @@ fixdivmod(mrb_state *mrb, mrb_int x, mrb_int y, mrb_int *divp, mrb_int *modp)
|
||||
static mrb_value
|
||||
fix_mod(mrb_state *mrb, mrb_value x)
|
||||
{
|
||||
mrb_value y;
|
||||
mrb_value y = mrb_get_arg1(mrb);
|
||||
mrb_int a, b;
|
||||
|
||||
mrb_get_args(mrb, "o", &y);
|
||||
a = mrb_fixnum(x);
|
||||
if (mrb_fixnum_p(y) && a != MRB_INT_MIN && (b=mrb_fixnum(y)) != MRB_INT_MIN) {
|
||||
mrb_int mod;
|
||||
@@ -936,9 +921,7 @@ fix_mod(mrb_state *mrb, mrb_value x)
|
||||
static mrb_value
|
||||
fix_divmod(mrb_state *mrb, mrb_value x)
|
||||
{
|
||||
mrb_value y;
|
||||
|
||||
mrb_get_args(mrb, "o", &y);
|
||||
mrb_value y = mrb_get_arg1(mrb);
|
||||
|
||||
if (mrb_fixnum_p(y)) {
|
||||
mrb_int div, mod;
|
||||
@@ -975,12 +958,10 @@ fix_divmod(mrb_state *mrb, mrb_value x)
|
||||
static mrb_value
|
||||
flo_divmod(mrb_state *mrb, mrb_value x)
|
||||
{
|
||||
mrb_value y;
|
||||
mrb_value y = mrb_get_arg1(mrb);
|
||||
mrb_float div, mod;
|
||||
mrb_value a, b;
|
||||
|
||||
mrb_get_args(mrb, "o", &y);
|
||||
|
||||
flodivmod(mrb, mrb_float(x), mrb_to_flo(mrb, y), &div, &mod);
|
||||
a = mrb_int_value(mrb, div);
|
||||
b = mrb_float_value(mrb, mod);
|
||||
@@ -1003,9 +984,8 @@ flo_divmod(mrb_state *mrb, mrb_value x)
|
||||
static mrb_value
|
||||
fix_equal(mrb_state *mrb, mrb_value x)
|
||||
{
|
||||
mrb_value y;
|
||||
mrb_value y = mrb_get_arg1(mrb);
|
||||
|
||||
mrb_get_args(mrb, "o", &y);
|
||||
switch (mrb_type(y)) {
|
||||
case MRB_TT_FIXNUM:
|
||||
return mrb_bool_value(mrb_fixnum(x) == mrb_fixnum(y));
|
||||
@@ -1062,9 +1042,8 @@ static mrb_value flo_xor(mrb_state *mrb, mrb_value x);
|
||||
static mrb_value
|
||||
fix_and(mrb_state *mrb, mrb_value x)
|
||||
{
|
||||
mrb_value y;
|
||||
mrb_value y = mrb_get_arg1(mrb);
|
||||
|
||||
mrb_get_args(mrb, "o", &y);
|
||||
bit_op(x, y, and, &);
|
||||
}
|
||||
|
||||
@@ -1079,9 +1058,8 @@ fix_and(mrb_state *mrb, mrb_value x)
|
||||
static mrb_value
|
||||
fix_or(mrb_state *mrb, mrb_value x)
|
||||
{
|
||||
mrb_value y;
|
||||
mrb_value y = mrb_get_arg1(mrb);
|
||||
|
||||
mrb_get_args(mrb, "o", &y);
|
||||
bit_op(x, y, or, |);
|
||||
}
|
||||
|
||||
@@ -1096,9 +1074,8 @@ fix_or(mrb_state *mrb, mrb_value x)
|
||||
static mrb_value
|
||||
fix_xor(mrb_state *mrb, mrb_value x)
|
||||
{
|
||||
mrb_value y;
|
||||
mrb_value y = mrb_get_arg1(mrb);
|
||||
|
||||
mrb_get_args(mrb, "o", &y);
|
||||
bit_op(x, y, or, ^);
|
||||
}
|
||||
|
||||
@@ -1320,9 +1297,8 @@ mrb_num_plus(mrb_state *mrb, mrb_value x, mrb_value y)
|
||||
static mrb_value
|
||||
fix_plus(mrb_state *mrb, mrb_value self)
|
||||
{
|
||||
mrb_value other;
|
||||
mrb_value other = mrb_get_arg1(mrb);
|
||||
|
||||
mrb_get_args(mrb, "o", &other);
|
||||
return fixnum_plus(mrb, self, other);
|
||||
}
|
||||
|
||||
@@ -1378,9 +1354,8 @@ mrb_num_minus(mrb_state *mrb, mrb_value x, mrb_value y)
|
||||
static mrb_value
|
||||
fix_minus(mrb_state *mrb, mrb_value self)
|
||||
{
|
||||
mrb_value other;
|
||||
mrb_value other = mrb_get_arg1(mrb);
|
||||
|
||||
mrb_get_args(mrb, "o", &other);
|
||||
return fixnum_minus(mrb, self, other);
|
||||
}
|
||||
|
||||
@@ -1497,10 +1472,9 @@ cmpnum(mrb_state *mrb, mrb_value v1, mrb_value v2)
|
||||
static mrb_value
|
||||
integral_cmp(mrb_state *mrb, mrb_value self)
|
||||
{
|
||||
mrb_value other;
|
||||
mrb_value other = mrb_get_arg1(mrb);
|
||||
mrb_int n;
|
||||
|
||||
mrb_get_args(mrb, "o", &other);
|
||||
n = cmpnum(mrb, self, other);
|
||||
if (n == -2) return mrb_nil_value();
|
||||
return mrb_fixnum_value(n);
|
||||
@@ -1515,10 +1489,9 @@ cmperr(mrb_state *mrb, mrb_value v1, mrb_value v2)
|
||||
static mrb_value
|
||||
integral_lt(mrb_state *mrb, mrb_value self)
|
||||
{
|
||||
mrb_value other;
|
||||
mrb_value other = mrb_get_arg1(mrb);
|
||||
mrb_int n;
|
||||
|
||||
mrb_get_args(mrb, "o", &other);
|
||||
n = cmpnum(mrb, self, other);
|
||||
if (n == -2) cmperr(mrb, self, other);
|
||||
if (n < 0) return mrb_true_value();
|
||||
@@ -1528,10 +1501,9 @@ integral_lt(mrb_state *mrb, mrb_value self)
|
||||
static mrb_value
|
||||
integral_le(mrb_state *mrb, mrb_value self)
|
||||
{
|
||||
mrb_value other;
|
||||
mrb_value other = mrb_get_arg1(mrb);
|
||||
mrb_int n;
|
||||
|
||||
mrb_get_args(mrb, "o", &other);
|
||||
n = cmpnum(mrb, self, other);
|
||||
if (n == -2) cmperr(mrb, self, other);
|
||||
if (n <= 0) return mrb_true_value();
|
||||
@@ -1541,10 +1513,9 @@ integral_le(mrb_state *mrb, mrb_value self)
|
||||
static mrb_value
|
||||
integral_gt(mrb_state *mrb, mrb_value self)
|
||||
{
|
||||
mrb_value other;
|
||||
mrb_value other = mrb_get_arg1(mrb);
|
||||
mrb_int n;
|
||||
|
||||
mrb_get_args(mrb, "o", &other);
|
||||
n = cmpnum(mrb, self, other);
|
||||
if (n == -2) cmperr(mrb, self, other);
|
||||
if (n > 0) return mrb_true_value();
|
||||
@@ -1554,10 +1525,9 @@ integral_gt(mrb_state *mrb, mrb_value self)
|
||||
static mrb_value
|
||||
integral_ge(mrb_state *mrb, mrb_value self)
|
||||
{
|
||||
mrb_value other;
|
||||
mrb_value other = mrb_get_arg1(mrb);
|
||||
mrb_int n;
|
||||
|
||||
mrb_get_args(mrb, "o", &other);
|
||||
n = cmpnum(mrb, self, other);
|
||||
if (n == -2) cmperr(mrb, self, other);
|
||||
if (n >= 0) return mrb_true_value();
|
||||
@@ -1609,9 +1579,8 @@ num_infinite_p(mrb_state *mrb, mrb_value self)
|
||||
static mrb_value
|
||||
flo_plus(mrb_state *mrb, mrb_value x)
|
||||
{
|
||||
mrb_value y;
|
||||
mrb_value y = mrb_get_arg1(mrb);
|
||||
|
||||
mrb_get_args(mrb, "o", &y);
|
||||
return mrb_float_value(mrb, mrb_float(x) + mrb_to_flo(mrb, y));
|
||||
}
|
||||
#endif
|
||||
|
||||
+1
-2
@@ -211,9 +211,8 @@ mrb_proc_s_new(mrb_state *mrb, mrb_value proc_class)
|
||||
static mrb_value
|
||||
mrb_proc_init_copy(mrb_state *mrb, mrb_value self)
|
||||
{
|
||||
mrb_value proc;
|
||||
mrb_value proc = mrb_get_arg1(mrb);
|
||||
|
||||
mrb_get_args(mrb, "o", &proc);
|
||||
if (!mrb_proc_p(proc)) {
|
||||
mrb_raise(mrb, E_ARGUMENT_ERROR, "not a proc");
|
||||
}
|
||||
|
||||
+4
-12
@@ -182,11 +182,9 @@ range_eq(mrb_state *mrb, mrb_value range)
|
||||
{
|
||||
struct RRange *rr;
|
||||
struct RRange *ro;
|
||||
mrb_value obj;
|
||||
mrb_value obj = mrb_get_arg1(mrb);
|
||||
mrb_bool v1, v2;
|
||||
|
||||
mrb_get_args(mrb, "o", &obj);
|
||||
|
||||
if (mrb_obj_equal(mrb, range, obj)) return mrb_true_value();
|
||||
if (!mrb_obj_is_instance_of(mrb, obj, mrb_obj_class(mrb, range))) { /* same class? */
|
||||
return mrb_false_value();
|
||||
@@ -211,13 +209,11 @@ range_eq(mrb_state *mrb, mrb_value range)
|
||||
static mrb_value
|
||||
range_include(mrb_state *mrb, mrb_value range)
|
||||
{
|
||||
mrb_value val;
|
||||
mrb_value val = mrb_get_arg1(mrb);
|
||||
struct RRange *r = mrb_range_ptr(mrb, range);
|
||||
mrb_value beg, end;
|
||||
mrb_bool include_p;
|
||||
|
||||
mrb_get_args(mrb, "o", &val);
|
||||
|
||||
beg = RANGE_BEG(r);
|
||||
end = RANGE_END(r);
|
||||
include_p = r_le(mrb, beg, val) && /* beg <= val */
|
||||
@@ -289,11 +285,9 @@ range_inspect(mrb_state *mrb, mrb_value range)
|
||||
static mrb_value
|
||||
range_eql(mrb_state *mrb, mrb_value range)
|
||||
{
|
||||
mrb_value obj;
|
||||
mrb_value obj = mrb_get_arg1(mrb);
|
||||
struct RRange *r, *o;
|
||||
|
||||
mrb_get_args(mrb, "o", &obj);
|
||||
|
||||
if (mrb_obj_equal(mrb, range, obj)) return mrb_true_value();
|
||||
if (!mrb_obj_is_kind_of(mrb, obj, mrb->range_class)) return mrb_false_value();
|
||||
if (!mrb_range_p(obj)) return mrb_false_value();
|
||||
@@ -312,11 +306,9 @@ range_eql(mrb_state *mrb, mrb_value range)
|
||||
static mrb_value
|
||||
range_initialize_copy(mrb_state *mrb, mrb_value copy)
|
||||
{
|
||||
mrb_value src;
|
||||
mrb_value src = mrb_get_arg1(mrb);
|
||||
struct RRange *r;
|
||||
|
||||
mrb_get_args(mrb, "o", &src);
|
||||
|
||||
if (mrb_obj_equal(mrb, copy, src)) return copy;
|
||||
if (!mrb_obj_is_instance_of(mrb, src, mrb_obj_class(mrb, copy))) {
|
||||
mrb_raise(mrb, E_TYPE_ERROR, "wrong argument class");
|
||||
|
||||
+3
-7
@@ -1061,10 +1061,9 @@ mrb_str_cmp(mrb_state *mrb, mrb_value str1, mrb_value str2)
|
||||
static mrb_value
|
||||
mrb_str_cmp_m(mrb_state *mrb, mrb_value str1)
|
||||
{
|
||||
mrb_value str2;
|
||||
mrb_value str2 = mrb_get_arg1(mrb);
|
||||
mrb_int result;
|
||||
|
||||
mrb_get_args(mrb, "o", &str2);
|
||||
if (!mrb_string_p(str2)) {
|
||||
return mrb_nil_value();
|
||||
}
|
||||
@@ -1106,9 +1105,7 @@ mrb_str_equal(mrb_state *mrb, mrb_value str1, mrb_value str2)
|
||||
static mrb_value
|
||||
mrb_str_equal_m(mrb_state *mrb, mrb_value str1)
|
||||
{
|
||||
mrb_value str2;
|
||||
|
||||
mrb_get_args(mrb, "o", &str2);
|
||||
mrb_value str2 = mrb_get_arg1(mrb);
|
||||
|
||||
return mrb_bool_value(mrb_str_equal(mrb, str1, str2));
|
||||
}
|
||||
@@ -1791,10 +1788,9 @@ mrb_str_empty_p(mrb_state *mrb, mrb_value self)
|
||||
static mrb_value
|
||||
mrb_str_eql(mrb_state *mrb, mrb_value self)
|
||||
{
|
||||
mrb_value str2;
|
||||
mrb_value str2 = mrb_get_arg1(mrb);
|
||||
mrb_bool eql_p;
|
||||
|
||||
mrb_get_args(mrb, "o", &str2);
|
||||
eql_p = (mrb_string_p(str2)) && str_eql(mrb, self, str2);
|
||||
|
||||
return mrb_bool_value(eql_p);
|
||||
|
||||
+1
-2
@@ -564,10 +564,9 @@ mrb_sym_dump(mrb_state *mrb, mrb_sym sym)
|
||||
static mrb_value
|
||||
sym_cmp(mrb_state *mrb, mrb_value s1)
|
||||
{
|
||||
mrb_value s2;
|
||||
mrb_value s2 = mrb_get_arg1(mrb);
|
||||
mrb_sym sym1, sym2;
|
||||
|
||||
mrb_get_args(mrb, "o", &s2);
|
||||
if (!mrb_symbol_p(s2)) return mrb_nil_value();
|
||||
sym1 = mrb_symbol(s1);
|
||||
sym2 = mrb_symbol(s2);
|
||||
|
||||
Reference in New Issue
Block a user