]> git.llucax.com Git - software/dgc/cdgc.git/commitdiff
Clean the cache in the sweep phase
authorLeandro Lucarella <llucax@gmail.com>
Sat, 4 Sep 2010 01:07:30 +0000 (22:07 -0300)
committerLeandro Lucarella <llucax@gmail.com>
Sat, 4 Sep 2010 01:07:30 +0000 (22:07 -0300)
rt/gc/cdgc/gc.d

index a728af991550738f4b693f31c24a0f9c3a0bb109..59d9f55496e4cd0e0638250b601988ceeba0cea6 100644 (file)
@@ -824,9 +824,6 @@ void mark(void *stackTop)
 {
     debug(COLLECT_PRINTF) printf("\tmark()\n");
 
-    gc.p_cache = null;
-    gc.size_cache = 0;
-
     gc.any_changes = false;
     for (size_t n = 0; n < gc.pools.length; n++)
     {
@@ -972,6 +969,8 @@ size_t sweep()
 {
     // Free up everything not marked
     debug(COLLECT_PRINTF) printf("\tsweep\n");
+    gc.p_cache = null;
+    gc.size_cache = 0;
     size_t freedpages = 0;
     size_t freed = 0;
     for (size_t n = 0; n < gc.pools.length; n++)