ruby-changes:4182
From: ko1@a...
Date: Mon, 3 Mar 2008 16:14:56 +0900 (JST)
Subject: [ruby-changes:4182] nobu - Ruby:r15672 (trunk, ruby_1_8): * hash.c (rb_any_hash): shrinks all results in Fixnum range.
nobu 2008-03-03 16:14:27 +0900 (Mon, 03 Mar 2008)
New Revision: 15672
Modified files:
branches/ruby_1_8/ChangeLog
branches/ruby_1_8/hash.c
branches/ruby_1_8/version.h
trunk/ChangeLog
trunk/hash.c
trunk/version.h
Log:
* hash.c (rb_any_hash): shrinks all results in Fixnum range.
[ruby-core:15713]
http://svn.ruby-lang.org/cgi-bin/viewvc.cgi/trunk/version.h?r1=15672&r2=15671&diff_format=u
http://svn.ruby-lang.org/cgi-bin/viewvc.cgi/trunk/hash.c?r1=15672&r2=15671&diff_format=u
http://svn.ruby-lang.org/cgi-bin/viewvc.cgi/branches/ruby_1_8/ChangeLog?r1=15672&r2=15671&diff_format=u
http://svn.ruby-lang.org/cgi-bin/viewvc.cgi/trunk/ChangeLog?r1=15672&r2=15671&diff_format=u
http://svn.ruby-lang.org/cgi-bin/viewvc.cgi/branches/ruby_1_8/version.h?r1=15672&r2=15671&diff_format=u
http://svn.ruby-lang.org/cgi-bin/viewvc.cgi/branches/ruby_1_8/hash.c?r1=15672&r2=15671&diff_format=u
Index: ChangeLog
===================================================================
--- ChangeLog (revision 15671)
+++ ChangeLog (revision 15672)
@@ -1,3 +1,8 @@
+Mon Mar 3 16:14:24 2008 Nobuyoshi Nakada <nobu@r...>
+
+ * hash.c (rb_any_hash): shrinks all results in Fixnum range.
+ [ruby-core:15713]
+
Sun Mar 2 23:03:59 2008 Nobuyoshi Nakada <nobu@r...>
* io.c (rb_io_ungetc): reduce redundant call.
Index: hash.c
===================================================================
--- hash.c (revision 15671)
+++ hash.c (revision 15672)
@@ -75,15 +75,16 @@
rb_any_hash(VALUE a)
{
VALUE hval;
+ int hnum;
switch (TYPE(a)) {
case T_FIXNUM:
case T_SYMBOL:
- return (int)a;
+ hnum = (int)a;
break;
case T_STRING:
- return rb_str_hash(a);
+ hnum = rb_str_hash(a);
break;
default:
@@ -91,8 +92,10 @@
if (!FIXNUM_P(hval)) {
hval = rb_funcall(hval, '%', 1, INT2FIX(536870923));
}
- return (int)FIX2LONG(hval);
+ hnum = (int)FIX2LONG(hval);
}
+ hnum <<= 1;
+ return RSHIFT(hnum, 1);
}
static const struct st_hash_type objhash = {
Index: version.h
===================================================================
--- version.h (revision 15671)
+++ version.h (revision 15672)
@@ -1,7 +1,7 @@
#define RUBY_VERSION "1.9.0"
-#define RUBY_RELEASE_DATE "2008-03-02"
+#define RUBY_RELEASE_DATE "2008-03-03"
#define RUBY_VERSION_CODE 190
-#define RUBY_RELEASE_CODE 20080302
+#define RUBY_RELEASE_CODE 20080303
#define RUBY_PATCHLEVEL 0
#define RUBY_VERSION_MAJOR 1
@@ -9,7 +9,7 @@
#define RUBY_VERSION_TEENY 0
#define RUBY_RELEASE_YEAR 2008
#define RUBY_RELEASE_MONTH 3
-#define RUBY_RELEASE_DAY 2
+#define RUBY_RELEASE_DAY 3
#ifdef RUBY_EXTERN
RUBY_EXTERN const char ruby_version[];
Index: ruby_1_8/hash.c
===================================================================
--- ruby_1_8/hash.c (revision 15671)
+++ ruby_1_8/hash.c (revision 15672)
@@ -89,15 +89,16 @@
VALUE a;
{
VALUE hval;
+ int hnum;
switch (TYPE(a)) {
case T_FIXNUM:
case T_SYMBOL:
- return (int)a;
+ hnum = (int)a;
break;
case T_STRING:
- return rb_str_hash(a);
+ hnum = rb_str_hash(a);
break;
default:
@@ -105,8 +106,10 @@
if (!FIXNUM_P(hval)) {
hval = rb_funcall(hval, '%', 1, INT2FIX(536870923));
}
- return (int)FIX2LONG(hval);
+ hnum = (int)FIX2LONG(hval);
}
+ hnum <<= 1;
+ return RSHIFT(hnum, 1);
}
static struct st_hash_type objhash = {
Index: ruby_1_8/ChangeLog
===================================================================
--- ruby_1_8/ChangeLog (revision 15671)
+++ ruby_1_8/ChangeLog (revision 15672)
@@ -1,3 +1,8 @@
+Mon Mar 3 16:14:24 2008 Nobuyoshi Nakada <nobu@r...>
+
+ * hash.c (rb_any_hash): shrinks all results in Fixnum range.
+ [ruby-core:15713]
+
Sat Mar 1 02:35:08 2008 Nobuyoshi Nakada <nobu@r...>
* bignum.c (big2str_find_n1): check integer overflow.
Index: ruby_1_8/version.h
===================================================================
--- ruby_1_8/version.h (revision 15671)
+++ ruby_1_8/version.h (revision 15672)
@@ -1,7 +1,7 @@
#define RUBY_VERSION "1.8.6"
-#define RUBY_RELEASE_DATE "2008-03-01"
+#define RUBY_RELEASE_DATE "2008-03-03"
#define RUBY_VERSION_CODE 186
-#define RUBY_RELEASE_CODE 20080301
+#define RUBY_RELEASE_CODE 20080303
#define RUBY_PATCHLEVEL 5000
#define RUBY_VERSION_MAJOR 1
@@ -9,7 +9,7 @@
#define RUBY_VERSION_TEENY 6
#define RUBY_RELEASE_YEAR 2008
#define RUBY_RELEASE_MONTH 3
-#define RUBY_RELEASE_DAY 1
+#define RUBY_RELEASE_DAY 3
#ifdef RUBY_EXTERN
RUBY_EXTERN const char ruby_version[];
--
ML: ruby-changes@q...
Info: http://www.atdot.net/~ko1/quickml/