-----BEGIN PGP SIGNED MESSAGE-----
Hash: SHA1
(CC to the Classpath list)
Busy night :)
The BigInteger.euclidInv bug has to do with the transition between the
BigInteger-based version of the function to the int-based one. See:
LINE 1104:
~ if (a.words == null)
~ {
~ int[] xyInt = euclidInv(b.ival, a.ival % b.ival, a.ival / b.ival);
~ xy = new BigInteger[3];
~ xy[0] = new BigInteger(xyInt[0]);
~ xy[1] = new BigInteger(xyInt[1]);
~ }
This conditional does not consider if (b.words == null), which means it
may recurse with a value of `b==1' (not good!). It may be the case that
always `a > b' for this algorithm (is this so?), but it is not the case
right now that `b' is stored as int-only if `a' is.
So a fix involves changing line 1104 to read:
~ if (a.words == null && b.words == null)
Cheers,
- --
Casey Marshall < [EMAIL PROTECTED] > http://metastatic.org/
-----BEGIN PGP SIGNATURE-----
Version: GnuPG v1.0.7 (GNU/Linux)
Comment: Using GnuPG with Mozilla - http://enigmail.mozdev.org
iD8DBQE9+ZqEgAuWMgRGsWsRAtRAAJ0dUY1T8iZuJK/9LwFddGHU8P5tsQCfYXD0
IAEKvw5BJ31XOLYw7Z6qM0w=
=4N44
-----END PGP SIGNATURE-----
_______________________________________________
Classpath mailing list
[EMAIL PROTECTED]
http://mail.gnu.org/mailman/listinfo/classpath