diff options
Diffstat (limited to 'third_party/base/allocator/partition_allocator/partition_alloc.cc')
-rw-r--r-- | third_party/base/allocator/partition_allocator/partition_alloc.cc | 9 |
1 files changed, 7 insertions, 2 deletions
diff --git a/third_party/base/allocator/partition_allocator/partition_alloc.cc b/third_party/base/allocator/partition_allocator/partition_alloc.cc index 9523e78d46..a33d7f1d13 100644 --- a/third_party/base/allocator/partition_allocator/partition_alloc.cc +++ b/third_party/base/allocator/partition_allocator/partition_alloc.cc @@ -1061,8 +1061,13 @@ void* PartitionReallocGeneric(PartitionRootGeneric* root, // determine it is a win. if (actual_new_size == actual_old_size) { // Trying to allocate a block of size new_size would give us a block of - // the same size as the one we've already got, so no point in doing - // anything here. + // the same size as the one we've already got, so re-use the allocation + // after updating statistics (and cookies, if present). + PartitionPageSetRawSize(page, PartitionCookieSizeAdjustAdd(new_size)); +#if DCHECK_IS_ON() + // Write a new trailing cookie. + PartitionCookieWriteValue(static_cast<char*>(ptr) + new_size); +#endif return ptr; } |