-----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

Reply via email to