| Index: Source/wtf/PartitionAllocTest.cpp
|
| diff --git a/Source/wtf/PartitionAllocTest.cpp b/Source/wtf/PartitionAllocTest.cpp
|
| index 531fcd4f70a4547e4d6ee1ace34097ab26b30527..28b955e95794e2f39eceb7f338ad80a53474e33e 100644
|
| --- a/Source/wtf/PartitionAllocTest.cpp
|
| +++ b/Source/wtf/PartitionAllocTest.cpp
|
| @@ -692,6 +692,23 @@ TEST(WTF_PartitionAlloc, Realloc)
|
|
|
| partitionFreeGeneric(genericAllocator.root(), ptr);
|
|
|
| + // Test that shrinking a direct mapped allocation happens in-place (even
|
| + // though the new size is smaller than kGenericMaxBucketed).
|
| + size = WTF::kGenericMaxBucketed + 16 * WTF::kSystemPageSize;
|
| + ptr = partitionAllocGeneric(genericAllocator.root(), size);
|
| + size_t actualSize = partitionAllocGetSize(ptr);
|
| + ptr2 = partitionReallocGeneric(genericAllocator.root(), ptr, WTF::kGenericMaxBucketed - 16 * WTF::kSystemPageSize);
|
| + EXPECT_EQ(ptr, ptr2);
|
| + EXPECT_EQ(actualSize - 32 * WTF::kSystemPageSize, partitionAllocGetSize(ptr2));
|
| +
|
| + // Test that a previously in-place shrunk direct mapped allocation can be
|
| + // expanded up again within its original size.
|
| + ptr = partitionReallocGeneric(genericAllocator.root(), ptr2, size - WTF::kSystemPageSize);
|
| + EXPECT_EQ(ptr2, ptr);
|
| + EXPECT_EQ(actualSize - WTF::kSystemPageSize, partitionAllocGetSize(ptr));
|
| +
|
| + partitionFreeGeneric(genericAllocator.root(), ptr);
|
| +
|
| TestShutdown();
|
| }
|
|
|
|
|