Chromium Code Reviews| Index: src/zone.cc |
| =================================================================== |
| --- src/zone.cc (revision 15496) |
| +++ src/zone.cc (working copy) |
| @@ -92,18 +92,15 @@ |
| #endif |
| // Find a segment with a suitable size to keep around. |
| - Segment* keep = segment_head_; |
| - while (keep != NULL && keep->size() > kMaximumKeptSegmentSize) { |
| - keep = keep->next(); |
| - } |
| - |
| + Segment* keep = NULL; |
| // Traverse the chained list of segments, zapping (in debug mode) |
| // and freeing every segment except the one we wish to keep. |
| for (Segment* current = segment_head_; current != NULL; ) { |
| Segment* next = current->next(); |
| - if (current == keep) { |
| + if (!keep && current->size() <= kMaximumKeptSegmentSize) { |
|
Benedikt Meurer
2013/07/05 05:50:56
Test for NULL using keep == NULL.
|
| // Unlink the segment we wish to keep from the list. |
| - current->clear_next(); |
| + keep = current; |
| + keep->clear_next(); |
| } else { |
| int size = current->size(); |
| #ifdef DEBUG |