ruby-changes:4584
From: ko1@a...
Date: Sat, 19 Apr 2008 18:42:44 +0900 (JST)
Subject: [ruby-changes:4584] knu - Ruby:r16078 (ruby_1_8): * intern.h, hash.c (rb_hash_lookup): New internal function to
knu 2008-04-19 18:42:27 +0900 (Sat, 19 Apr 2008) New Revision: 16078 Modified files: branches/ruby_1_8/ChangeLog branches/ruby_1_8/hash.c branches/ruby_1_8/intern.h Log: * intern.h, hash.c (rb_hash_lookup): New internal function to check if a key exists in a hash, ignoring #default; backported from 1.9. http://svn.ruby-lang.org/cgi-bin/viewvc.cgi/branches/ruby_1_8/intern.h?r1=16078&r2=16077&diff_format=u http://svn.ruby-lang.org/cgi-bin/viewvc.cgi/branches/ruby_1_8/ChangeLog?r1=16078&r2=16077&diff_format=u http://svn.ruby-lang.org/cgi-bin/viewvc.cgi/branches/ruby_1_8/hash.c?r1=16078&r2=16077&diff_format=u Index: ruby_1_8/intern.h =================================================================== --- ruby_1_8/intern.h (revision 16077) +++ ruby_1_8/intern.h (revision 16078) @@ -270,6 +270,7 @@ VALUE rb_hash_new _((void)); VALUE rb_hash_freeze _((VALUE)); VALUE rb_hash_aref _((VALUE, VALUE)); +VALUE rb_hash_lookup _((VALUE, VALUE)); VALUE rb_hash_aset _((VALUE, VALUE, VALUE)); VALUE rb_hash_delete_if _((VALUE)); VALUE rb_hash_delete _((VALUE,VALUE)); Index: ruby_1_8/hash.c =================================================================== --- ruby_1_8/hash.c (revision 16077) +++ ruby_1_8/hash.c (revision 16078) @@ -454,6 +454,18 @@ return val; } +VALUE +rb_hash_lookup(hash, key) + VALUE hash, key; +{ + VALUE val; + + if (!st_lookup(RHASH(hash)->tbl, key, &val)) { + return Qnil; /* without Hash#default */ + } + return val; +} + /* * call-seq: * hsh.fetch(key [, default] ) => obj Index: ruby_1_8/ChangeLog =================================================================== --- ruby_1_8/ChangeLog (revision 16077) +++ ruby_1_8/ChangeLog (revision 16078) @@ -1,3 +1,9 @@ +Sat Apr 19 18:42:04 2008 Akinori MUSHA <knu@i...> + + * intern.h, hash.c (rb_hash_lookup): New internal function to + check if a key exists in a hash, ignoring #default; backported + from 1.9. + Fri Apr 18 18:56:57 2008 Akinori MUSHA <knu@i...> * ext/syck/rubyext.c (syck_genericresolver_node_import): should -- ML: ruby-changes@q... Info: http://www.atdot.net/~ko1/quickml/