Index: src/heap/slot-set.h |
diff --git a/src/heap/slot-set.h b/src/heap/slot-set.h |
index f374c1d684696213b3c7c9f3a7c1ad72c03d9a14..017667b48210781e15269bf038834964528beebc 100644 |
--- a/src/heap/slot-set.h |
+++ b/src/heap/slot-set.h |
@@ -401,20 +401,21 @@ class TypedSlotSet { |
} |
} |
+ Chunk* next = chunk->next.Value(); |
if (mode == PREFREE_EMPTY_CHUNKS && empty) { |
// We remove the chunk from the list but let it still point its next |
// chunk to allow concurrent iteration. |
if (previous) { |
- previous->next.SetValue(chunk->next.Value()); |
+ previous->next.SetValue(next); |
} else { |
- chunk_.SetValue(chunk->next.Value()); |
+ chunk_.SetValue(next); |
} |
base::LockGuard<base::Mutex> guard(&to_be_freed_chunks_mutex_); |
to_be_freed_chunks_.push(chunk); |
} else { |
previous = chunk; |
} |
- chunk = chunk->next.Value(); |
+ chunk = next; |
} |
return new_count; |
} |