~ chicken-core (chicken-5) 94fffe462df319afabb18d40527644919b1ec177
commit 94fffe462df319afabb18d40527644919b1ec177
Author: Christian Kellermann <ckeen@pestilenz.org>
AuthorDate: Fri Mar 16 11:35:57 2012 +0100
Commit: Peter Bex <peter.bex@xs4all.nl>
CommitDate: Fri Mar 16 14:08:08 2012 +0100
Check for isnan & isinf in C_u_i_fpintegerp
Signed-off-by: Peter Bex <peter.bex@xs4all.nl>
diff --git a/chicken.h b/chicken.h
index 9237e14a..cd73152a 100644
--- a/chicken.h
+++ b/chicken.h
@@ -2182,9 +2182,13 @@ C_inline C_word C_i_rationalp(C_word x)
C_inline C_word C_u_i_fpintegerp(C_word x)
{
- double dummy;
+ double dummy, val;
+
+ val = C_flonum_magnitude(x);
- return C_mk_bool(C_modf(C_flonum_magnitude(x), &dummy) == 0.0);
+ if(C_isnan(val) || C_isinf(val)) return C_SCHEME_FALSE;
+
+ return C_mk_bool(C_modf(val, &dummy) == 0.0);
}
Trap