hash.c: use rb_func_proc_new

* hash.c (rb_hash_to_proc): use rb_func_proc_new to make light
  weight proc.  [Feature #11653]

git-svn-id: svn+ssh://ci.ruby-lang.org/ruby/trunk@52524 b2dd03c8-39d4-4d8f-98ff-823fe69b080e
This commit is contained in:
nobu 2015-11-10 09:25:58 +00:00
parent bda0e2fd84
commit 16e7869ded
2 changed files with 8 additions and 2 deletions

View File

@ -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> Tue Nov 10 18:23:35 2015 Nobuyoshi Nakada <nobu@ruby-lang.org>
* proc.c (cfunc_proc_t): add room for me. * proc.c (cfunc_proc_t): add room for me.

5
hash.c
View File

@ -2769,13 +2769,14 @@ rb_hash_gt(VALUE hash, VALUE other)
static VALUE static VALUE
hash_proc_call(VALUE key, VALUE hash, int argc, const VALUE *argv, VALUE passed_proc) 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 static VALUE
rb_hash_to_proc(VALUE hash) 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; static int path_tainted = -1;