summaryrefslogtreecommitdiffhomepage
diff options
context:
space:
mode:
authorYukihiro "Matz" Matsumoto <[email protected]>2021-08-30 07:35:58 +0900
committerYukihiro "Matz" Matsumoto <[email protected]>2021-09-01 07:00:54 +0900
commite86c9cb57c0ee799ca66d18612e15c6c8983f872 (patch)
treef60224602ddf0cfb7bcca1546648b5d42d6e2a95
parent572a43de8406da89daeaa9b433761da762d7b1c4 (diff)
downloadmruby-e86c9cb57c0ee799ca66d18612e15c6c8983f872.tar.gz
mruby-e86c9cb57c0ee799ca66d18612e15c6c8983f872.zip
Do no use return values from `mrb_ensure_` functions.
They return the checking argument without modification, so the values are already there. Maybe we should change the return type to `void` but keep them unchanged for compatibility.
-rw-r--r--mrbgems/mruby-io/src/file.c4
-rw-r--r--mrbgems/mruby-kernel-ext/src/kernel.c3
-rw-r--r--mrbgems/mruby-string-ext/src/string.c8
-rw-r--r--src/class.c2
-rw-r--r--src/vm.c6
5 files changed, 13 insertions, 10 deletions
diff --git a/mrbgems/mruby-io/src/file.c b/mrbgems/mruby-io/src/file.c
index 6c62db662..a19858a63 100644
--- a/mrbgems/mruby-io/src/file.c
+++ b/mrbgems/mruby-io/src/file.c
@@ -116,14 +116,14 @@ static mrb_value
mrb_file_s_unlink(mrb_state *mrb, mrb_value obj)
{
const mrb_value *argv;
- mrb_value pathv;
mrb_int argc, i;
char *path;
mrb_get_args(mrb, "*", &argv, &argc);
for (i = 0; i < argc; i++) {
const char *utf8_path;
- pathv = mrb_ensure_string_type(mrb, argv[i]);
+ mrb_value pathv = argv[i];
+ mrb_ensure_string_type(mrb, pathv);
utf8_path = RSTRING_CSTR(mrb, pathv);
path = mrb_locale_from_utf8(utf8_path, -1);
if (UNLINK(path) < 0) {
diff --git a/mrbgems/mruby-kernel-ext/src/kernel.c b/mrbgems/mruby-kernel-ext/src/kernel.c
index 15b4c5f72..17692a801 100644
--- a/mrbgems/mruby-kernel-ext/src/kernel.c
+++ b/mrbgems/mruby-kernel-ext/src/kernel.c
@@ -202,7 +202,8 @@ mrb_f_hash(mrb_state *mrb, mrb_value self)
if (mrb_nil_p(arg) || (mrb_array_p(arg) && RARRAY_LEN(arg) == 0)) {
return mrb_hash_new(mrb);
}
- return mrb_ensure_hash_type(mrb, arg);
+ mrb_ensure_hash_type(mrb, arg);
+ return arg;
}
void
diff --git a/mrbgems/mruby-string-ext/src/string.c b/mrbgems/mruby-string-ext/src/string.c
index f5f46c082..39ab94c26 100644
--- a/mrbgems/mruby-string-ext/src/string.c
+++ b/mrbgems/mruby-string-ext/src/string.c
@@ -195,14 +195,14 @@ static mrb_value
mrb_str_start_with(mrb_state *mrb, mrb_value self)
{
const mrb_value *argv;
- mrb_value sub;
mrb_int argc, i;
mrb_get_args(mrb, "*", &argv, &argc);
for (i = 0; i < argc; i++) {
size_t len_l, len_r;
int ai = mrb_gc_arena_save(mrb);
- sub = mrb_ensure_string_type(mrb, argv[i]);
+ mrb_value sub = argv[i];
+ mrb_ensure_string_type(mrb, sub);
mrb_gc_arena_restore(mrb, ai);
len_l = RSTRING_LEN(self);
len_r = RSTRING_LEN(sub);
@@ -225,14 +225,14 @@ static mrb_value
mrb_str_end_with(mrb_state *mrb, mrb_value self)
{
const mrb_value *argv;
- mrb_value sub;
mrb_int argc, i;
mrb_get_args(mrb, "*", &argv, &argc);
for (i = 0; i < argc; i++) {
size_t len_l, len_r;
int ai = mrb_gc_arena_save(mrb);
- sub = mrb_ensure_string_type(mrb, argv[i]);
+ mrb_value sub = argv[i];
+ mrb_ensure_string_type(mrb, sub);
mrb_gc_arena_restore(mrb, ai);
len_l = RSTRING_LEN(self);
len_r = RSTRING_LEN(sub);
diff --git a/src/class.c b/src/class.c
index 855a7715c..b683deda0 100644
--- a/src/class.c
+++ b/src/class.c
@@ -2379,7 +2379,7 @@ mrb_mod_const_get(mrb_state *mrb, mrb_value mod)
}
/* const get with class path string */
- path = mrb_ensure_string_type(mrb, path);
+ mrb_ensure_string_type(mrb, path);
ptr = RSTRING_PTR(path);
len = RSTRING_LEN(path);
off = 0;
diff --git a/src/vm.c b/src/vm.c
index 50ad3b31d..a8120f5a5 100644
--- a/src/vm.c
+++ b/src/vm.c
@@ -2671,7 +2671,8 @@ RETRY_TRY_BLOCK:
int i;
int lim = a+b*2+1;
- hash = mrb_ensure_hash_type(mrb, regs[a]);
+ hash = regs[a];
+ mrb_ensure_hash_type(mrb, hash);
for (i=a+1; i<lim; i+=2) {
mrb_hash_set(mrb, hash, regs[i], regs[i+1]);
}
@@ -2679,8 +2680,9 @@ RETRY_TRY_BLOCK:
NEXT;
}
CASE(OP_HASHCAT, B) {
- mrb_value hash = mrb_ensure_hash_type(mrb, regs[a]);
+ mrb_value hash = regs[a];
+ mrb_ensure_hash_type(mrb, hash);
mrb_hash_merge(mrb, hash, regs[a+1]);
mrb_gc_arena_restore(mrb, ai);
NEXT;