summaryrefslogtreecommitdiff
diff options
context:
space:
mode:
-rw-r--r--ChangeLog5
-rw-r--r--bignum.c12
-rw-r--r--version.h8
3 files changed, 15 insertions, 10 deletions
diff --git a/ChangeLog b/ChangeLog
index 9bd52b1eff..f6ad6f45fa 100644
--- a/ChangeLog
+++ b/ChangeLog
@@ -1,3 +1,8 @@
+Thu Jul 30 09:27:44 2009 Nobuyoshi Nakada <nobu@ruby-lang.org>
+
+ * bignum.c (big_lshift, big_rshift): return Bignum always withou
+ normalization. [ruby-dev:38680]
+
Wed Jul 29 11:19:47 2009 Yukihiro Matsumoto <matz@ruby-lang.org>
* io.c (argf_close): always call #close method. [ruby-core:23853]
diff --git a/bignum.c b/bignum.c
index 7f14aee709..8e27369090 100644
--- a/bignum.c
+++ b/bignum.c
@@ -2038,8 +2038,8 @@ rb_big_lshift(x, y)
y = rb_to_int(y);
}
- if (neg) return big_rshift(x, shift);
- return big_lshift(x, shift);
+ x = neg ? big_rshift(x, shift) : big_lshift(x, shift);
+ return bignorm(x);
}
static VALUE
@@ -2067,7 +2067,7 @@ big_lshift(x, shift)
num = BIGDN(num);
}
*zds = BIGLO(num);
- return bignorm(z);
+ return z;
}
/*
@@ -2107,8 +2107,8 @@ rb_big_rshift(x, y)
y = rb_to_int(y);
}
- if (neg) return big_lshift(x, shift);
- return big_rshift(x, shift);
+ x = neg ? big_lshift(x, shift) : big_rshift(x, shift);
+ return bignorm(x);
}
static VALUE
@@ -2153,7 +2153,7 @@ big_rshift(x, shift)
if (!RBIGNUM(x)->sign) {
get2comp(z);
}
- return bignorm(z);
+ return z;
}
/*
diff --git a/version.h b/version.h
index 7274bfdc3e..7c0ac210b6 100644
--- a/version.h
+++ b/version.h
@@ -1,15 +1,15 @@
#define RUBY_VERSION "1.8.7"
-#define RUBY_RELEASE_DATE "2009-07-29"
+#define RUBY_RELEASE_DATE "2009-07-30"
#define RUBY_VERSION_CODE 187
-#define RUBY_RELEASE_CODE 20090729
-#define RUBY_PATCHLEVEL 191
+#define RUBY_RELEASE_CODE 20090730
+#define RUBY_PATCHLEVEL 192
#define RUBY_VERSION_MAJOR 1
#define RUBY_VERSION_MINOR 8
#define RUBY_VERSION_TEENY 7
#define RUBY_RELEASE_YEAR 2009
#define RUBY_RELEASE_MONTH 7
-#define RUBY_RELEASE_DAY 29
+#define RUBY_RELEASE_DAY 30
#ifdef RUBY_EXTERN
RUBY_EXTERN const char ruby_version[];