Revision: 18718
Author:   [email protected]
Date:     Tue Jan 21 16:19:04 2014 UTC
Log:      Only refill free lists for spaces that are being swept

BUG=v8:3104
[email protected]
LOG=n

Review URL: https://codereview.chromium.org/143953005
http://code.google.com/p/v8/source/detail?r=18718

Modified:
 /branches/bleeding_edge/src/mark-compact.cc

=======================================
--- /branches/bleeding_edge/src/mark-compact.cc Tue Jan 21 12:48:10 2014 UTC
+++ /branches/bleeding_edge/src/mark-compact.cc Tue Jan 21 16:19:04 2014 UTC
@@ -591,9 +591,18 @@


 intptr_t MarkCompactCollector::RefillFreeLists(PagedSpace* space) {
-  FreeList* free_list = space == heap()->old_pointer_space()
-                            ? free_list_old_pointer_space_.get()
-                            : free_list_old_data_space_.get();
+  FreeList* free_list;
+
+  if (space == heap()->old_pointer_space()) {
+    free_list = free_list_old_pointer_space_.get();
+  } else if (space == heap()->old_data_space()) {
+    free_list = free_list_old_data_space_.get();
+  } else {
+    // Any PagedSpace might invoke RefillFreeLists, so we need to make sure
+    // to only refill them for old data and pointer spaces.
+    return 0;
+  }
+
   intptr_t freed_bytes = space->free_list()->Concatenate(free_list);
   space->AddToAccountingStats(freed_bytes);
   space->DecrementUnsweptFreeBytes(freed_bytes);

--
--
v8-dev mailing list
[email protected]
http://groups.google.com/group/v8-dev
--- You received this message because you are subscribed to the Google Groups "v8-dev" group.
To unsubscribe from this group and stop receiving emails from it, send an email 
to [email protected].
For more options, visit https://groups.google.com/groups/opt_out.

Reply via email to