summaryrefslogtreecommitdiffhomepage
path: root/src
diff options
context:
space:
mode:
authorYukihiro "Matz" Matsumoto <[email protected]>2017-02-15 09:24:35 +0900
committerYukihiro "Matz" Matsumoto <[email protected]>2017-02-15 09:24:35 +0900
commit04296925ac81537e029af46ed7622471d8374ce8 (patch)
tree47c76e7bec254d2910bf66271126aac6856f08c0 /src
parentba812d25ad32df87a101c08d9c0a3632be0c1370 (diff)
downloadmruby-04296925ac81537e029af46ed7622471d8374ce8.tar.gz
mruby-04296925ac81537e029af46ed7622471d8374ce8.zip
Use mrb_funcall_argv() instead of mrb_funcall()
Diffstat (limited to 'src')
-rw-r--r--src/hash.c6
1 files changed, 4 insertions, 2 deletions
diff --git a/src/hash.c b/src/hash.c
index b7bd648c0..d15faa206 100644
--- a/src/hash.c
+++ b/src/hash.c
@@ -167,6 +167,7 @@ mrb_hash_get(mrb_state *mrb, mrb_value hash, mrb_value key)
{
khash_t(ht) *h = RHASH_TBL(hash);
khiter_t k;
+ mrb_sym mid;
if (h) {
k = kh_get(ht, mrb, h, key);
@@ -174,11 +175,12 @@ mrb_hash_get(mrb_state *mrb, mrb_value hash, mrb_value key)
return kh_value(h, k).v;
}
- if (mrb_func_basic_p(mrb, hash, mrb_intern_lit(mrb, "default"), mrb_hash_default)) {
+ mid = mrb_intern_lit(mrb, "default");
+ if (mrb_func_basic_p(mrb, hash, mid, mrb_hash_default)) {
return hash_default(mrb, hash, key);
}
/* xxx mrb_funcall_tailcall(mrb, hash, "default", 1, key); */
- return mrb_funcall(mrb, hash, "default", 1, key);
+ return mrb_funcall_argv(mrb, hash, mid, 1, &key);
}
MRB_API mrb_value