diff --git a/src/mzscheme/src/rational.c b/src/mzscheme/src/rational.c index ef87c6d424..9fc0fe4db6 100644 --- a/src/mzscheme/src/rational.c +++ b/src/mzscheme/src/rational.c @@ -202,7 +202,7 @@ static int rational_lt(const Scheme_Object *a, const Scheme_Object *b, int or_eq /* Avoid multiplication in simple cases: */ if (scheme_bin_lt_eq(ra->num, rb->num) - && scheme_bin_gt_eq(ra->num, rb->num)) { + && scheme_bin_gt_eq(ra->denom, rb->denom)) { if (!or_eq) { if (scheme_rational_eq(a, b)) return 0; diff --git a/src/mzscheme/src/schemef.h b/src/mzscheme/src/schemef.h index 4a5199c698..585899b05d 100644 --- a/src/mzscheme/src/schemef.h +++ b/src/mzscheme/src/schemef.h @@ -930,7 +930,7 @@ MZ_EXTERN Scheme_Object *scheme_make_struct_exptime(Scheme_Object **names, int c Scheme_Object *super_exptime, int flags); -MZ_EXTERN int scheme_is_struct_instance(Scheme_Object *type, Scheme_Object *v); +XFORM_NONGCING MZ_EXTERN int scheme_is_struct_instance(Scheme_Object *type, Scheme_Object *v); MZ_EXTERN Scheme_Object *scheme_struct_ref(Scheme_Object *s, int pos); MZ_EXTERN void scheme_struct_set(Scheme_Object *s, int pos, Scheme_Object *v);