diff options
-rw-r--r-- | ChangeLog | 5 | ||||
-rw-r--r-- | hash.c | 5 |
2 files changed, 8 insertions, 2 deletions
@@ -1,3 +1,8 @@ +Tue Nov 10 18:25:56 2015 Nobuyoshi Nakada <nobu@ruby-lang.org> + + * hash.c (rb_hash_to_proc): use rb_func_proc_new to make light + weight proc. [Feature #11653] + Tue Nov 10 18:23:35 2015 Nobuyoshi Nakada <nobu@ruby-lang.org> * proc.c (cfunc_proc_t): add room for me. @@ -2769,13 +2769,14 @@ rb_hash_gt(VALUE hash, VALUE other) static VALUE hash_proc_call(VALUE key, VALUE hash, int argc, const VALUE *argv, VALUE passed_proc) { - return rb_hash_aref(hash, key); + rb_check_arity(argc, 1, 1); + return rb_hash_aref(hash, *argv); } static VALUE rb_hash_to_proc(VALUE hash) { - return rb_proc_new(hash_proc_call, hash); + return rb_func_proc_new(hash_proc_call, hash); } static int path_tainted = -1; |