From 4e99e077dd977ad0b17c51278e97c808991a1de0 Mon Sep 17 00:00:00 2001 From: Tels Date: Fri, 15 Jun 2007 21:56:10 +0200 Subject: [PATCH] Re: Math::BigInt 1.87 problems? Re: FAIL DBI-1.56 i686-linux 2.4.27-3-686 [PATCH] Message-Id: <200706151956.11861@bloodgate.com> p4raw-id: //depot/perl@31413 --- ext/Math/BigInt/FastCalc/FastCalc.xs | 5 ++--- ext/Math/BigInt/FastCalc/t/bigintfc.t | 10 +++++++++- 2 files changed, 11 insertions(+), 4 deletions(-) diff --git a/ext/Math/BigInt/FastCalc/FastCalc.xs b/ext/Math/BigInt/FastCalc/FastCalc.xs index 9c2a4d3..3a6be8c 100644 --- a/ext/Math/BigInt/FastCalc/FastCalc.xs +++ b/ext/Math/BigInt/FastCalc/FastCalc.xs @@ -59,11 +59,10 @@ _new(class, x) /* create the array */ RETVAL = newAV(); sv_2mortal((SV*)RETVAL); - /* cur = SvPV(x, len); printf ("input '%s'\n", cur); */ - if (SvIOK(x) && SvIV(x) < XS_BASE) + if (SvIOK(x) && SvUV(x) < XS_BASE) { /* shortcut for integer arguments */ - av_push (RETVAL, newSViv( SvIV(x) )); + av_push (RETVAL, newSVuv( SvUV(x) )); } else { diff --git a/ext/Math/BigInt/FastCalc/t/bigintfc.t b/ext/Math/BigInt/FastCalc/t/bigintfc.t index a89ed91..2a13359 100644 --- a/ext/Math/BigInt/FastCalc/t/bigintfc.t +++ b/ext/Math/BigInt/FastCalc/t/bigintfc.t @@ -9,7 +9,7 @@ BEGIN chdir 't' if -d 't'; unshift @INC, '../lib'; # for running manually unshift @INC, '../blib/arch'; # for running manually - plan tests => 359; + plan tests => 361; } use Math::BigInt::FastCalc; @@ -32,6 +32,14 @@ my $x = $C->_new("123"); my $y = $C->_new("321"); ok (ref($x),'ARRAY'); ok ($C->_str($x),123); ok ($C->_str($y),321); ############################################################################### +# _new(0xffffffff) (the test is important for 32 bit Perls) + +my $ff = $C->_new(0xffffffff); + +ok ($C->_str($ff),"4294967295"); # must not be -1 +ok (scalar @{ $ff }, 2); # must be two parts + +############################################################################### # _add, _sub, _mul, _div ok ($C->_str($C->_add($x,$y)),444); ok ($C->_str($C->_sub($x,$y)),123); -- 2.7.4