From b83b33eef025546d43f7e05895c06629e37edd34 Mon Sep 17 00:00:00 2001 From: akr Date: Fri, 28 Jun 2013 03:35:39 +0000 Subject: * 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 --- ChangeLog | 5 +++++ bignum.c | 3 +++ 2 files changed, 8 insertions(+) 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 + + * 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 * 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); -- cgit v1.2.3