[short circuit redirects in the garbage collector
John Meacham <john@repetae.net>**20100327044542
 Ignore-this: 836b0fd0c0e7c0999723b5f2648b89e3
] hunk ./src/data/rts/jhc_jgc.h 10
-#define JGC_STATUS 1
+#define JGC_STATUS 0
hunk ./src/data/rts/jhc_jgc.h 78
-#if 0
+#if JGC_STATUS > 1
hunk ./src/data/rts/jhc_jgc.h 149
+        unsigned number_redirects = 0;
+        unsigned number_stack = 0;
+        unsigned number_ptr = 0;
+        unsigned number_whnf = 0;
hunk ./src/data/rts/jhc_jgc.h 169
+                        number_stack++;
+                        if(IS_LAZY(gc->ptrs[i])) {
+                                if(!IS_LAZY(GETHEAD(FROM_SPTR(gc->ptrs[i])))) {
+                                        number_redirects++;
+                                        debugf(" *");
+                                        gc->ptrs[i] = GETHEAD(FROM_SPTR(gc->ptrs[i]));
+                                        number_whnf++;
+                                }
+                        } else {
+                                number_whnf++;
+                        }
hunk ./src/data/rts/jhc_jgc.h 184
+                        number_ptr++;
hunk ./src/data/rts/jhc_jgc.h 206
+                        if(P_LAZY == GET_PTYPE(e->ptrs[i])) {
+                                if(!IS_LAZY(GETHEAD(FROM_SPTR(e->ptrs[i])))) {
+                                        number_redirects++;
+                                        debugf(" *");
+                                        e->ptrs[i] = GETHEAD(FROM_SPTR(e->ptrs[i]));
+                                }
+                        }
hunk ./src/data/rts/jhc_jgc.h 238
+        fprintf(stderr, "Ss: %3u Ws: %3u Ps: %4u Rs: %3u\n", number_stack, number_whnf, number_ptr, number_redirects);