Skip to content

Commit d2fb1ea

Browse files
author
rogerl%netscape.com
committed
Fix endian bug for BigInteger constructor.
1 parent ef45ff7 commit d2fb1ea

2 files changed

Lines changed: 6 additions & 2 deletions

File tree

org/mozilla/javascript/DToA.java

Lines changed: 3 additions & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -169,7 +169,7 @@ static void stuffBits(byte bits[], int offset, int val)
169169
* bits in b in bits. d must be finite and nonzero. */
170170
static BigInteger d2b(double d, int[] e, int[] bits)
171171
{
172-
byte dbl_bits[] = new byte[8];
172+
byte dbl_bits[];
173173
int i, k, y, z, de;
174174
long dBits = Double.doubleToLongBits(d);
175175
int d0 = (int)(dBits >>> 32);
@@ -182,6 +182,7 @@ static BigInteger d2b(double d, int[] e, int[] bits)
182182
z |= Exp_msk1;
183183

184184
if ((y = d1) != 0) {
185+
dbl_bits = new byte[8];
185186
k = lo0bits(y);
186187
y >>>= k;
187188
if (k != 0) {
@@ -195,6 +196,7 @@ static BigInteger d2b(double d, int[] e, int[] bits)
195196
}
196197
else {
197198
// JS_ASSERT(z);
199+
dbl_bits = new byte[4];
198200
k = lo0bits(z);
199201
z >>>= k;
200202
stuffBits(dbl_bits, 0, z);

src/org/mozilla/javascript/DToA.java

Lines changed: 3 additions & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -169,7 +169,7 @@ static void stuffBits(byte bits[], int offset, int val)
169169
* bits in b in bits. d must be finite and nonzero. */
170170
static BigInteger d2b(double d, int[] e, int[] bits)
171171
{
172-
byte dbl_bits[] = new byte[8];
172+
byte dbl_bits[];
173173
int i, k, y, z, de;
174174
long dBits = Double.doubleToLongBits(d);
175175
int d0 = (int)(dBits >>> 32);
@@ -182,6 +182,7 @@ static BigInteger d2b(double d, int[] e, int[] bits)
182182
z |= Exp_msk1;
183183

184184
if ((y = d1) != 0) {
185+
dbl_bits = new byte[8];
185186
k = lo0bits(y);
186187
y >>>= k;
187188
if (k != 0) {
@@ -195,6 +196,7 @@ static BigInteger d2b(double d, int[] e, int[] bits)
195196
}
196197
else {
197198
// JS_ASSERT(z);
199+
dbl_bits = new byte[4];
198200
k = lo0bits(z);
199201
z >>>= k;
200202
stuffBits(dbl_bits, 0, z);

0 commit comments

Comments
 (0)