~ chicken-core (chicken-5) 95834010ad8f7724a3aca5016958c4ff37ec8cfa
commit 95834010ad8f7724a3aca5016958c4ff37ec8cfa
Author: felix <felix@call-with-current-continuation.org>
AuthorDate: Tue Jan 18 00:49:49 2011 +0100
Commit: felix <felix@call-with-current-continuation.org>
CommitDate: Tue Jan 18 00:49:49 2011 +0100
incorrect closure test in equal? - thanks to ckeen
diff --git a/runtime.c b/runtime.c
index 45107fa6..fa4c10a5 100644
--- a/runtime.c
+++ b/runtime.c
@@ -3892,7 +3892,7 @@ C_regparm C_word C_fcall C_equalp(C_word x, C_word y)
if(bits & C_SPECIALBLOCK_BIT) {
/* do not recurse into closures */
- if((bits & C_CLOSURE_TYPE) != 0)
+ if(C_header_bits(x) == C_CLOSURE_TYPE)
return !C_memcmp((void *)x, (void *)y, n * sizeof(C_word));
else if(C_block_item(x, 0) != C_block_item(y, 0)) return 0;
else ++i;
Trap