~ chicken-core (chicken-5) d61c82e1a301115f99090eb0a4f6e48942f6f1b3


commit d61c82e1a301115f99090eb0a4f6e48942f6f1b3
Author:     felix <felix@call-with-current-continuation.org>
AuthorDate: Sat Sep 18 13:13:51 2010 +0200
Commit:     felix <felix@call-with-current-continuation.org>
CommitDate: Sat Sep 18 13:13:51 2010 +0200

    I don't quite understand why this causes GC faults

diff --git a/runtime.c b/runtime.c
index 5a65af89..60ecf35f 100644
--- a/runtime.c
+++ b/runtime.c
@@ -2574,8 +2574,7 @@ C_regparm C_word C_fcall C_mutate(C_word *slot, C_word val)
 {
   int mssize;
 
-  if(*slot == val) return val;
-  else if(!C_immediatep(val)) {
+  if(!C_immediatep(val)) {
 #ifdef C_GC_HOOKS
     if(C_gc_mutation_hook != NULL && C_gc_mutation_hook(slot, val)) return val;
 #endif
Trap