From fd899481643feeed874c95060fa50cb75f9d993a Mon Sep 17 00:00:00 2001 From: dearblue Date: Mon, 15 Jul 2019 11:23:50 +0900 Subject: Fix empty array refers; ref #4556 For example, `"".unpack("")` evaluates to `[]`. --- mrbgems/mruby-pack/src/pack.c | 7 ++++++- 1 file changed, 6 insertions(+), 1 deletion(-) diff --git a/mrbgems/mruby-pack/src/pack.c b/mrbgems/mruby-pack/src/pack.c index 894c4555f..9f091194b 100644 --- a/mrbgems/mruby-pack/src/pack.c +++ b/mrbgems/mruby-pack/src/pack.c @@ -1299,7 +1299,12 @@ pack_unpack(mrb_state *mrb, mrb_value str, int single) if (single) break; } - if (single) return RARRAY_PTR(result)[0]; + if (single) { + if (RARRAY_LEN(result) > 0) { + return RARRAY_PTR(result)[0]; + } + return mrb_nil_value(); + } return result; } -- cgit v1.2.3