@@ -1455,25 +1455,26 @@ TEST(ArenaTest, RepeatedFieldOnArena) {
1455
1455
// newly allocated memory is approximately the size of the cleanups for the
1456
1456
// repeated messages.
1457
1457
RepeatedField<int32_t > repeated_int32 (&arena);
1458
- RepeatedPtrField<TestAllTypes> repeated_message (&arena);
1458
+ auto * repeated_message =
1459
+ Arena::Create<RepeatedPtrField<TestAllTypes>>(&arena);
1459
1460
for (int i = 0 ; i < 100 ; i++) {
1460
1461
repeated_int32.Add (42 );
1461
- repeated_message. Add ()->set_optional_int32 (42 );
1462
- EXPECT_EQ (&arena, repeated_message. Get (0 ).GetArena ());
1463
- const TestAllTypes* msg_in_repeated_field = &repeated_message. Get (0 );
1464
- TestAllTypes* msg = repeated_message. UnsafeArenaReleaseLast ();
1462
+ repeated_message-> Add ()->set_optional_int32 (42 );
1463
+ EXPECT_EQ (&arena, repeated_message-> Get (0 ).GetArena ());
1464
+ const TestAllTypes* msg_in_repeated_field = &repeated_message-> Get (0 );
1465
+ TestAllTypes* msg = repeated_message-> UnsafeArenaReleaseLast ();
1465
1466
EXPECT_EQ (msg_in_repeated_field, msg);
1466
1467
}
1467
1468
1468
1469
// UnsafeArenaExtractSubrange (i) should not leak and (ii) should return
1469
1470
// on-arena pointers.
1470
1471
for (int i = 0 ; i < 10 ; i++) {
1471
- repeated_message. Add ()->set_optional_int32 (42 );
1472
+ repeated_message-> Add ()->set_optional_int32 (42 );
1472
1473
}
1473
1474
TestAllTypes* extracted_messages[5 ];
1474
- repeated_message. UnsafeArenaExtractSubrange (0 , 5 , extracted_messages);
1475
- EXPECT_EQ (&arena, repeated_message. Get (0 ).GetArena ());
1476
- EXPECT_EQ (5 , repeated_message. size ());
1475
+ repeated_message-> UnsafeArenaExtractSubrange (0 , 5 , extracted_messages);
1476
+ EXPECT_EQ (&arena, repeated_message-> Get (0 ).GetArena ());
1477
+ EXPECT_EQ (5 , repeated_message-> size ());
1477
1478
// Upper bound of the size of the cleanups of new repeated messages.
1478
1479
const size_t upperbound_cleanup_size =
1479
1480
2 * 110 * sizeof (internal::cleanup::CleanupNode);
@@ -1483,14 +1484,15 @@ TEST(ArenaTest, RepeatedFieldOnArena) {
1483
1484
1484
1485
// Now test ExtractSubrange's copying semantics.
1485
1486
{
1486
- RepeatedPtrField<TestAllTypes> repeated_message (&arena);
1487
+ auto * repeated_message =
1488
+ Arena::Create<RepeatedPtrField<TestAllTypes>>(&arena);
1487
1489
for (int i = 0 ; i < 100 ; i++) {
1488
- repeated_message. Add ()->set_optional_int32 (42 );
1490
+ repeated_message-> Add ()->set_optional_int32 (42 );
1489
1491
}
1490
1492
1491
1493
TestAllTypes* extracted_messages[5 ];
1492
1494
// ExtractSubrange should copy to the heap.
1493
- repeated_message. ExtractSubrange (0 , 5 , extracted_messages);
1495
+ repeated_message-> ExtractSubrange (0 , 5 , extracted_messages);
1494
1496
EXPECT_EQ (nullptr , extracted_messages[0 ]->GetArena ());
1495
1497
// We need to free the heap-allocated messages to prevent a leak.
1496
1498
for (int i = 0 ; i < 5 ; i++) {
0 commit comments