Reviewers: Hannes Payer,
Description:
Only refill free lists for spaces that are being swept
BUG=v8:3104
[email protected]
LOG=n
Please review this at https://codereview.chromium.org/143953005/
SVN Base: https://v8.googlecode.com/svn/branches/bleeding_edge
Affected files (+12, -3 lines):
M src/mark-compact.cc
Index: src/mark-compact.cc
diff --git a/src/mark-compact.cc b/src/mark-compact.cc
index
f62435ea9334c196fc2231bb6e6893e7d0320aa1..9670925045205c89ecfd49cd19714d6a1fd4d07c
100644
--- a/src/mark-compact.cc
+++ b/src/mark-compact.cc
@@ -591,9 +591,18 @@ void
MarkCompactCollector::WaitUntilSweepingCompleted() {
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.