From bbd4edc60745620d444ecda62274cbce28d60211 Mon Sep 17 00:00:00 2001 From: "Yukihiro \"Matz\" Matsumoto" Date: Sat, 29 Jul 2023 08:42:25 +0900 Subject: [PATCH] mruby-data/data.c (mrb_data_ref): remove code duplication --- mrbgems/mruby-data/src/data.c | 21 ++++++++------------- 1 file changed, 8 insertions(+), 13 deletions(-) diff --git a/mrbgems/mruby-data/src/data.c b/mrbgems/mruby-data/src/data.c index 1232f8fd1..791b49e97 100644 --- a/mrbgems/mruby-data/src/data.c +++ b/mrbgems/mruby-data/src/data.c @@ -94,13 +94,8 @@ mrb_data_members(mrb_state *mrb, mrb_value obj) } static mrb_value -mrb_data_ref(mrb_state *mrb, mrb_value obj) +data_ref(mrb_state *mrb, mrb_value obj, mrb_int i) { - mrb_int argc = mrb_get_argc(mrb); - if (argc != 0) { - mrb_argnum_error(mrb, argc, 0, 0); - } - mrb_int i = mrb_integer(mrb_proc_cfunc_env_get(mrb, 0)); mrb_int len = RDATA_LEN(obj); mrb_value *ptr = RDATA_PTR(obj); @@ -110,14 +105,14 @@ mrb_data_ref(mrb_state *mrb, mrb_value obj) } static mrb_value -data_ref(mrb_state *mrb, mrb_value obj, mrb_int i) +mrb_data_ref(mrb_state *mrb, mrb_value obj) { - mrb_int len = RDATA_LEN(obj); - mrb_value *ptr = RDATA_PTR(obj); - - if (!ptr || len <= i) - return mrb_nil_value(); - return ptr[i]; + mrb_int argc = mrb_get_argc(mrb); + if (argc != 0) { + mrb_argnum_error(mrb, argc, 0, 0); + } + mrb_int i = mrb_integer(mrb_proc_cfunc_env_get(mrb, 0)); + return data_ref(mrb, obj, i); } static mrb_value