ruby-changes:22674
From: nobu <ko1@a...>
Date: Tue, 21 Feb 2012 20:24:07 +0900 (JST)
Subject: [ruby-changes:22674] nobu:r34723 (trunk): * hash.c (rb_any_hash): treat Qundef like as other special constants.
nobu 2012-02-21 20:23:50 +0900 (Tue, 21 Feb 2012) New Revision: 34723 http://svn.ruby-lang.org/cgi-bin/viewvc.cgi?view=rev&revision=34723 Log: * hash.c (rb_any_hash): treat Qundef like as other special constants. Modified files: trunk/ChangeLog trunk/hash.c Index: ChangeLog =================================================================== --- ChangeLog (revision 34722) +++ ChangeLog (revision 34723) @@ -1,5 +1,7 @@ -Tue Feb 21 20:22:43 2012 Nobuyoshi Nakada <nobu@r...> +Tue Feb 21 20:23:47 2012 Nobuyoshi Nakada <nobu@r...> + * hash.c (rb_any_hash): treat Qundef like as other special constants. + * hash.c (hash_foreach_iter): fix signature. Tue Feb 21 19:39:34 2012 Tanaka Akira <akr@f...> Index: hash.c =================================================================== --- hash.c (revision 34722) +++ hash.c (revision 34723) @@ -80,20 +80,14 @@ VALUE hval; st_index_t hnum; - switch (TYPE(a)) { - case T_FIXNUM: - case T_SYMBOL: - case T_NIL: - case T_FALSE: - case T_TRUE: - hnum = rb_hash_end(rb_hash_start((unsigned int)a)); - break; - - case T_STRING: + if (SPECIAL_CONST_P(a)) { + if (a == Qundef) return 0; + hnum = rb_hash_end(rb_hash_start((st_index_t)a)); + } + else if (BUILTIN_TYPE(a) == T_STRING) { hnum = rb_str_hash(a); - break; - - default: + } + else { hval = rb_hash(a); hnum = FIX2LONG(hval); } -- ML: ruby-changes@q... Info: http://www.atdot.net/~ko1/quickml/