Chromium Code Reviews| Index: src/zone/zone.cc |
| diff --git a/src/zone/zone.cc b/src/zone/zone.cc |
| index 91506dd6d206fbba28653483de5beca4011cc9d5..4272e17fd2eba2ef2389350b15ae05fd6abfed31 100644 |
| --- a/src/zone/zone.cc |
| +++ b/src/zone/zone.cc |
| @@ -92,11 +92,6 @@ void* Zone::New(size_t size) { |
| } |
| void Zone::DeleteAll() { |
| -#ifdef DEBUG |
| - // Constant byte value used for zapping dead memory in debug mode. |
| - static const unsigned char kZapDeadByte = 0xcd; |
| -#endif |
| - |
| // Find a segment with a suitable size to keep around. |
| Segment* keep = nullptr; |
| // Traverse the chained list of segments, zapping (in debug mode) |
| @@ -112,9 +107,8 @@ void Zone::DeleteAll() { |
| #ifdef DEBUG |
| // Un-poison first so the zapping doesn't trigger ASan complaints. |
| ASAN_UNPOISON_MEMORY_REGION(current, size); |
| - // Zap the entire current segment (including the header). |
| - memset(current, kZapDeadByte, size); |
| #endif |
| + current->ZapContents(); |
| segment_bytes_allocated_ -= size; |
| allocator_->FreeSegment(current); |
| } |
| @@ -131,10 +125,7 @@ void Zone::DeleteAll() { |
| limit_ = keep->end(); |
| // Un-poison so we can re-use the segment later. |
| ASAN_UNPOISON_MEMORY_REGION(start, keep->capacity()); |
|
Michael Lippautz
2016/09/29 09:44:47
All other unpoison operations are within #ifdef DE
|
| -#ifdef DEBUG |
| - // Zap the contents of the kept segment (but not the header). |
| - memset(start, kZapDeadByte, keep->capacity()); |
| -#endif |
| + keep->ZapContents(); |
| } else { |
| position_ = limit_ = 0; |
| } |
| @@ -145,20 +136,14 @@ void Zone::DeleteAll() { |
| } |
| void Zone::DeleteKeptSegment() { |
| -#ifdef DEBUG |
| - // Constant byte value used for zapping dead memory in debug mode. |
| - static const unsigned char kZapDeadByte = 0xcd; |
| -#endif |
| - |
| DCHECK(segment_head_ == nullptr || segment_head_->next() == nullptr); |
| if (segment_head_ != nullptr) { |
| size_t size = segment_head_->size(); |
| #ifdef DEBUG |
| // Un-poison first so the zapping doesn't trigger ASan complaints. |
| ASAN_UNPOISON_MEMORY_REGION(segment_head_, size); |
| - // Zap the entire kept segment (including the header). |
| - memset(segment_head_, kZapDeadByte, size); |
| #endif |
| + segment_head_->ZapContents(); |
| segment_bytes_allocated_ -= size; |
| allocator_->FreeSegment(segment_head_); |
| segment_head_ = nullptr; |