From 057198c4d85b974d0fe4e318f0a557bbd9f2c6d6 Mon Sep 17 00:00:00 2001 From: Alex Shinn Date: Tue, 6 Sep 2011 07:50:35 +0900 Subject: [PATCH] Fixing careless returns without GC release in sexp_ratio_normalize. --- sexp.c | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/sexp.c b/sexp.c index b72d9f59..37cbd889 100644 --- a/sexp.c +++ b/sexp.c @@ -1801,12 +1801,12 @@ sexp sexp_make_ratio (sexp ctx, sexp num, sexp den) { sexp sexp_ratio_normalize (sexp ctx, sexp rat, sexp in) { sexp tmp; sexp_gc_var2(num, den); - sexp_gc_preserve2(ctx, num, den); num = sexp_ratio_numerator(rat), den = sexp_ratio_denominator(rat); if (den == SEXP_ZERO) return sexp_read_error(ctx, "zero denominator in ratio", rat, in); else if (num == SEXP_ZERO) return SEXP_ZERO; + sexp_gc_preserve2(ctx, num, den); while (den != SEXP_ZERO) { tmp = sexp_remainder(ctx, num, den); if (sexp_exceptionp(tmp)) {