Re: Math::BigInt 1.87 problems? Re: FAIL DBI-1.56 i686-linux 2.4.27-3-686 [PATCH]
Tels [Fri, 15 Jun 2007 19:56:10 +0000 (21:56 +0200)]
Message-Id: <200706151956.11861@bloodgate.com>

p4raw-id: //depot/perl@31413

ext/Math/BigInt/FastCalc/FastCalc.xs
ext/Math/BigInt/FastCalc/t/bigintfc.t

index 9c2a4d3..3a6be8c 100644 (file)
@@ -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
       {
index a89ed91..2a13359 100644 (file)
@@ -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);