fix bad local point (3m problem)

svn: r1437
This commit is contained in:
Matthew Flatt 2005-11-29 14:42:15 +00:00
parent c7ee74b421
commit 9c06c927c4
2 changed files with 27 additions and 6 deletions

View File

@ -156,11 +156,22 @@ int scheme_eqv (Scheme_Object *obj1, Scheme_Object *obj2)
# ifdef NAN_EQUALS_ANYTHING
if (MZ_IS_NAN(b))
return 0;
else
else {
if (a == 0.0) {
if (b == 0.0) {
return scheme_minus_zero_p(a) == scheme_minus_zero_p(b);
}
}
return (a == b);
}
# else
return 0;
}
if (a == 0.0) {
if (b == 0.0) {
return scheme_minus_zero_p(a) == scheme_minus_zero_p(b);
}
}
return 1;
# endif
#endif
@ -182,13 +193,24 @@ int scheme_eqv (Scheme_Object *obj1, Scheme_Object *obj2)
# ifdef NAN_EQUALS_ANYTHING
if (MZ_IS_NAN(b))
return 0;
else
else {
if (a == 0.0) {
if (b == 0.0) {
return scheme_minus_zero_p(a) == scheme_minus_zero_p(b);
}
}
return (a == b);
}
# else
return 0;
}
# endif
if (a == 0.0) {
if (b == 0.0) {
return scheme_minus_zero_p(a) == scheme_minus_zero_p(b);
}
}
return 1;
# endif
} else if (t1 == scheme_bignum_type)
return scheme_bignum_eq(obj1, obj2);
else if (t1 == scheme_rational_type)

View File

@ -3986,14 +3986,13 @@ static Scheme_Object *write_case_lambda(Scheme_Object *obj)
{
Scheme_Case_Lambda *cl = (Scheme_Case_Lambda *)obj;
int i;
Scheme_Object **a, *l;
Scheme_Object *l;
i = cl->count;
a = cl->array;
l = scheme_null;
for (; i--; ) {
l = cons(a[i], l);
l = cons(cl->array[i], l);
}
return cons((cl->name ? cl->name : scheme_null),