~ 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