mirror of
https://github.com/mruby/mruby
synced 2026-06-08 16:11:16 +00:00
changed prototype mrb_ary_replace to (mrb_state*,mrb_value,mrb_value)
This commit is contained in:
@@ -37,8 +37,7 @@ mrb_value mrb_ary_aget(mrb_state *mrb, mrb_value self);
|
||||
mrb_value mrb_ary_ref(mrb_state *mrb, mrb_value ary, mrb_int n);
|
||||
void mrb_ary_set(mrb_state *mrb, mrb_value ary, mrb_int n, mrb_value val);
|
||||
int mrb_ary_len(mrb_state *mrb, mrb_value ary);
|
||||
mrb_value mrb_ary_replace_m(mrb_state *mrb, mrb_value self);
|
||||
void mrb_ary_replace(mrb_state *mrb, struct RArray *a, mrb_value *argv, size_t len);
|
||||
void mrb_ary_replace(mrb_state *mrb, mrb_value a, mrb_value b);
|
||||
mrb_value mrb_check_array_type(mrb_state *mrb, mrb_value self);
|
||||
mrb_value mrb_ary_unshift(mrb_state *mrb, mrb_value self, mrb_value item);
|
||||
mrb_value mrb_ary_new4(mrb_state *mrb, long n, const mrb_value *elts);
|
||||
|
||||
+13
-6
@@ -256,8 +256,8 @@ mrb_ary_cmp(mrb_state *mrb, mrb_value ary1)
|
||||
return mrb_fixnum_value((len == 0)? 0: (len > 0)? 1: -1);
|
||||
}
|
||||
|
||||
void
|
||||
mrb_ary_replace(mrb_state *mrb, struct RArray *a, mrb_value *argv, size_t len)
|
||||
static void
|
||||
ary_replace(mrb_state *mrb, struct RArray *a, mrb_value *argv, size_t len)
|
||||
{
|
||||
if (a->capa < len) mrb_ary_expand_capa(mrb, a, len);
|
||||
memcpy(a->buf, argv, sizeof(mrb_value)*len);
|
||||
@@ -265,14 +265,21 @@ mrb_ary_replace(mrb_state *mrb, struct RArray *a, mrb_value *argv, size_t len)
|
||||
a->len = len;
|
||||
}
|
||||
|
||||
void
|
||||
mrb_ary_replace(mrb_state *mrb, mrb_value self, mrb_value other)
|
||||
{
|
||||
struct RArray *a2 = mrb_ary_ptr(other);
|
||||
|
||||
ary_replace(mrb, mrb_ary_ptr(self), a2->buf, a2->len);
|
||||
}
|
||||
|
||||
mrb_value
|
||||
mrb_ary_replace_m(mrb_state *mrb, mrb_value self)
|
||||
{
|
||||
mrb_value *buf;
|
||||
int blen;
|
||||
mrb_value other;
|
||||
|
||||
mrb_get_args(mrb, "a", &buf, &blen);
|
||||
mrb_ary_replace(mrb, mrb_ary_ptr(self), buf, blen);
|
||||
mrb_get_args(mrb, "A", &other);
|
||||
mrb_ary_replace(mrb, self, other);
|
||||
|
||||
return self;
|
||||
}
|
||||
|
||||
Reference in New Issue
Block a user