diff options
| author | Yukihiro Matsumoto <[email protected]> | 2012-05-24 01:09:36 +0900 |
|---|---|---|
| committer | Yukihiro Matsumoto <[email protected]> | 2012-05-24 01:09:36 +0900 |
| commit | ad9e841c5359efdd37a132767e03ad7a2d5ae72e (patch) | |
| tree | 8e60edf2dce29e86d8b47d0b2e8dc8a2a2329ded /src/range.c | |
| parent | 4f012f578f22cca67af8c633845464abc79913f4 (diff) | |
| download | mruby-ad9e841c5359efdd37a132767e03ad7a2d5ae72e.tar.gz mruby-ad9e841c5359efdd37a132767e03ad7a2d5ae72e.zip | |
made mrb_get_args() better (optinal args, type checks); close #173 #176
Diffstat (limited to 'src/range.c')
| -rw-r--r-- | src/range.c | 17 |
1 files changed, 9 insertions, 8 deletions
diff --git a/src/range.c b/src/range.c index 06a0d0821..c1fb580b5 100644 --- a/src/range.c +++ b/src/range.c @@ -433,8 +433,8 @@ static mrb_value range_eql(mrb_state *mrb, mrb_value range) { mrb_value obj; - mrb_get_args(mrb, "o", &obj); + 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, RANGE_CLASS)) @@ -447,16 +447,17 @@ mrb_value range_initialize_copy(mrb_state *mrb, mrb_value copy) { mrb_value src; + mrb_get_args(mrb, "o", &src); - if (mrb_obj_equal(mrb, copy, src)) return copy; - //mrb_check_frozen(copy); - if (!mrb_obj_is_instance_of(mrb, src, mrb_obj_class(mrb, copy))) { - mrb_raise(mrb, E_TYPE_ERROR, "wrong argument class"); - } - memcpy(mrb_range_ptr(copy), mrb_range_ptr(src), sizeof(struct RRange)); + if (mrb_obj_equal(mrb, copy, src)) return copy; + //mrb_check_frozen(copy); + if (!mrb_obj_is_instance_of(mrb, src, mrb_obj_class(mrb, copy))) { + mrb_raise(mrb, E_TYPE_ERROR, "wrong argument class"); + } + memcpy(mrb_range_ptr(copy), mrb_range_ptr(src), sizeof(struct RRange)); - return copy; + return copy; } void |
