summaryrefslogtreecommitdiff
diff options
context:
space:
mode:
authorakr <akr@b2dd03c8-39d4-4d8f-98ff-823fe69b080e>2013-06-28 03:35:39 +0000
committerakr <akr@b2dd03c8-39d4-4d8f-98ff-823fe69b080e>2013-06-28 03:35:39 +0000
commitb83b33eef025546d43f7e05895c06629e37edd34 (patch)
tree8aa77e09c34e5f8edcdf6ec8d7e65c879c344f98
parenta5fcce2820bd008b690ce39be86d82cb959f62f8 (diff)
* bignum.c (rb_big_and): Allocate new bignum with same size to shorter
argument if it's high bits are zero. git-svn-id: svn+ssh://ci.ruby-lang.org/ruby/trunk@41687 b2dd03c8-39d4-4d8f-98ff-823fe69b080e
-rw-r--r--ChangeLog5
-rw-r--r--bignum.c3
2 files changed, 8 insertions, 0 deletions
diff --git a/ChangeLog b/ChangeLog
index 622fc3c3bf..065dc035ef 100644
--- a/ChangeLog
+++ b/ChangeLog
@@ -1,3 +1,8 @@
+Fri Jun 28 12:26:53 2013 Tanaka Akira <akr@fsij.org>
+
+ * bignum.c (rb_big_and): Allocate new bignum with same size to shorter
+ argument if it's high bits are zero.
+
Fri Jun 28 12:14:04 2013 Tanaka Akira <akr@fsij.org>
* ext/socket/ipsocket.c (init_inetsock_internal): Don't use local
diff --git a/bignum.c b/bignum.c
index 6087d3a13b..2ec83b8077 100644
--- a/bignum.c
+++ b/bignum.c
@@ -4747,6 +4747,9 @@ rb_big_and(VALUE x, VALUE y)
hibits1 = hibitsx;
hibits2 = hibitsy;
+ if (!hibits1)
+ l2 = l1;
+
z = bignew(l2, 0);
zds = BDIGITS(z);