diff --git a/mrbgems/mruby-struct/src/struct.c b/mrbgems/mruby-struct/src/struct.c index 6aea137e0..98171755a 100644 --- a/mrbgems/mruby-struct/src/struct.c +++ b/mrbgems/mruby-struct/src/struct.c @@ -399,7 +399,8 @@ struct_index(mrb_state *mrb, mrb_int i, mrb_int len) static mrb_value struct_aref_int(mrb_state *mrb, mrb_value s, mrb_int i) { - mrb_int idx = struct_index(mrb, i, RSTRUCT_LEN(s)); + mrb_int idx = struct_index(mrb, i, num_members(mrb, s)); + if (idx >= RSTRUCT_LEN(s)) return mrb_nil_value(); return RSTRUCT_PTR(s)[idx]; }