From: Taylor R Campbell Date: Sat, 26 Apr 2014 21:00:01 +0000 (+0000) Subject: Correct types in BIGNUM_REDUCE_LENGTH and use output parameter as such. X-Git-Tag: release-9.2.0~15 X-Git-Url: https://birchwood-abbey.net/git?a=commitdiff_plain;h=b37ad88217f3048636ed0a029dc95a4442d200fe;p=mit-scheme.git Correct types in BIGNUM_REDUCE_LENGTH and use output parameter as such. --- diff --git a/src/microcode/bignmint.h b/src/microcode/bignmint.h index e644716b0..0f8e2414b 100644 --- a/src/microcode/bignmint.h +++ b/src/microcode/bignmint.h @@ -56,11 +56,11 @@ typedef long bignum_length_type; space when a bignum's length is reduced from its original value. */ #define BIGNUM_REDUCE_LENGTH(target, source, length) \ { \ - int new_gc_length = BIGNUM_LENGTH_TO_GC_LENGTH (length); \ - int old_gc_length = VECTOR_LENGTH (source); \ - int delta = old_gc_length - new_gc_length; \ - assert (delta >= 0); \ - assert ((target) == (source)); \ + unsigned long new_gc_length = (BIGNUM_LENGTH_TO_GC_LENGTH (length)); \ + unsigned long old_gc_length = (VECTOR_LENGTH (source)); \ + unsigned long delta; \ + assert (new_gc_length <= old_gc_length); \ + delta = (old_gc_length - new_gc_length); \ if (delta == 1) \ VECTOR_SET (source, new_gc_length, SHARP_F); \ else if (delta > 1) \ @@ -68,6 +68,7 @@ typedef long bignum_length_type; (MAKE_OBJECT (TC_MANIFEST_NM_VECTOR, delta - 1))); \ if (delta != 0) \ SET_VECTOR_LENGTH (source, new_gc_length); \ + (target) = (source); \ } #define BIGNUM_LENGTH_TO_GC_LENGTH(length) \