vm: adding more GC_BIGNUM to WIN64 path. See #599.

db4
John Benediktsson 2012-08-02 17:04:22 -07:00
parent 10642047e6
commit 426c449ee1
1 changed files with 5 additions and 0 deletions

View File

@ -1714,6 +1714,8 @@ int factor_vm::bignum_unsigned_logbitp(int shift, bignum * bignum)
/* Allocates memory */ /* Allocates memory */
bignum * factor_vm::bignum_gcd(bignum * a, bignum * b) bignum * factor_vm::bignum_gcd(bignum * a, bignum * b)
{ {
GC_BIGNUM(a);
GC_BIGNUM(b);
bignum * d; bignum * d;
bignum_length_type size_a, size_b; bignum_length_type size_a, size_b;
bignum_digit_type * scan_a, * scan_b, * scan_d, * a_end, * b_end; bignum_digit_type * scan_a, * scan_b, * scan_d, * a_end, * b_end;
@ -1723,6 +1725,7 @@ bignum * factor_vm::bignum_gcd(bignum * a, bignum * b)
size_a = BIGNUM_LENGTH (a); size_a = BIGNUM_LENGTH (a);
a_end = scan_a + size_a; a_end = scan_a + size_a;
d = allot_bignum (size_a, 0); d = allot_bignum (size_a, 0);
GC_BIGNUM(d);
scan_d = BIGNUM_START_PTR (d); scan_d = BIGNUM_START_PTR (d);
while (scan_a < a_end) while (scan_a < a_end)
(*scan_d++) = (*scan_a++); (*scan_d++) = (*scan_a++);
@ -1734,6 +1737,7 @@ bignum * factor_vm::bignum_gcd(bignum * a, bignum * b)
size_b = BIGNUM_LENGTH (b); size_b = BIGNUM_LENGTH (b);
b_end = scan_b + size_b; b_end = scan_b + size_b;
d = allot_bignum (size_b, 0); d = allot_bignum (size_b, 0);
GC_BIGNUM(d);
scan_d = BIGNUM_START_PTR (d); scan_d = BIGNUM_START_PTR (d);
while (scan_b < b_end) while (scan_b < b_end)
(*scan_d++) = (*scan_b++); (*scan_d++) = (*scan_b++);
@ -1748,6 +1752,7 @@ bignum * factor_vm::bignum_gcd(bignum * a, bignum * b)
while (BIGNUM_LENGTH (b) != 0) { while (BIGNUM_LENGTH (b) != 0) {
d = bignum_remainder (a, b); d = bignum_remainder (a, b);
GC_BIGNUM(d);
if (d == BIGNUM_OUT_OF_BAND) { if (d == BIGNUM_OUT_OF_BAND) {
return d; return d;
} }