Index: Source/wtf/PartitionAllocTest.cpp |
diff --git a/Source/wtf/PartitionAllocTest.cpp b/Source/wtf/PartitionAllocTest.cpp |
index 9cbdce5652d9ac9c43b7046b41ae7c556f8bf633..f555e385e7ef5bebeb5d11be3ceeb379d0450f92 100644 |
--- a/Source/wtf/PartitionAllocTest.cpp |
+++ b/Source/wtf/PartitionAllocTest.cpp |
@@ -692,14 +692,13 @@ TEST(PartitionAllocTest, Realloc) |
partitionFreeGeneric(genericAllocator.root(), ptr); |
- // Test that shrinking a direct mapped allocation happens in-place (even |
- // though the new size is smaller than kGenericMaxBucketed). |
+ // Test that shrinking a direct mapped allocation happens in-place. |
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); |
+ ptr2 = partitionReallocGeneric(genericAllocator.root(), ptr, WTF::kGenericMaxBucketed + 8 * WTF::kSystemPageSize); |
EXPECT_EQ(ptr, ptr2); |
- EXPECT_EQ(actualSize - 32 * WTF::kSystemPageSize, partitionAllocGetSize(ptr2)); |
+ EXPECT_EQ(actualSize - 8 * WTF::kSystemPageSize, partitionAllocGetSize(ptr2)); |
// Test that a previously in-place shrunk direct mapped allocation can be |
// expanded up again within its original size. |
@@ -707,7 +706,12 @@ TEST(PartitionAllocTest, Realloc) |
EXPECT_EQ(ptr2, ptr); |
EXPECT_EQ(actualSize - WTF::kSystemPageSize, partitionAllocGetSize(ptr)); |
- partitionFreeGeneric(genericAllocator.root(), ptr); |
+ // Test that a direct mapped allocation is performed not in-place when the |
+ // new size is small enough. |
+ ptr2 = partitionReallocGeneric(genericAllocator.root(), ptr, WTF::kSystemPageSize); |
+ EXPECT_NE(ptr, ptr2); |
+ |
+ partitionFreeGeneric(genericAllocator.root(), ptr2); |
TestShutdown(); |
} |