diff options
Diffstat (limited to 'src/array.c')
| -rw-r--r-- | src/array.c | 5 |
1 files changed, 4 insertions, 1 deletions
diff --git a/src/array.c b/src/array.c index 2ef29dcf5..e97aaa1c9 100644 --- a/src/array.c +++ b/src/array.c @@ -1074,7 +1074,10 @@ mrb_ary_entry(mrb_value ary, mrb_int offset) if (offset < 0) { offset += RARRAY_LEN(ary); } - return ary_elt(ary, offset); + if (offset < 0 || RARRAY_LEN(ary) <= offset) { + return mrb_nil_value(); + } + return RARRAY_PTR(ary)[offset]; } static mrb_value |
