@@ -458,37 +458,6 @@ TEST(RepeatedPtrField, ReserveDoesntLoseAllocated) {
458
458
EXPECT_EQ (first, field.Add ());
459
459
}
460
460
461
- // Clearing elements is tricky with RepeatedPtrFields since the memory for
462
- // the elements is retained and reused.
463
- TEST (RepeatedPtrField, ClearedElements) {
464
- PROTOBUF_IGNORE_DEPRECATION_START
465
- RepeatedPtrField<std::string> field;
466
-
467
- std::string* original = field.Add ();
468
- *original = " foo" ;
469
-
470
- EXPECT_EQ (field.ClearedCount (), 0 );
471
-
472
- field.RemoveLast ();
473
- EXPECT_TRUE (original->empty ());
474
- EXPECT_EQ (field.ClearedCount (), 1 );
475
-
476
- EXPECT_EQ (field.Add (),
477
- original); // Should return same string for reuse.
478
- EXPECT_EQ (field.UnsafeArenaReleaseLast (), original); // We take ownership.
479
- EXPECT_EQ (field.ClearedCount (), 0 );
480
-
481
- EXPECT_NE (field.Add (), original); // Should NOT return the same string.
482
- EXPECT_EQ (field.ClearedCount (), 0 );
483
-
484
- field.UnsafeArenaAddAllocated (original); // Give ownership back.
485
- EXPECT_EQ (field.ClearedCount (), 0 );
486
- EXPECT_EQ (field.Mutable (1 ), original);
487
-
488
- field.Clear ();
489
- EXPECT_EQ (field.ClearedCount (), 2 );
490
- PROTOBUF_IGNORE_DEPRECATION_STOP
491
- }
492
461
493
462
// Test all code paths in AddAllocated().
494
463
TEST (RepeatedPtrField, AddAllocated) {
@@ -512,7 +481,6 @@ TEST(RepeatedPtrField, AddAllocated) {
512
481
std::string* foo = new std::string (" foo" );
513
482
field.AddAllocated (foo);
514
483
EXPECT_EQ (index + 1 , field.size ());
515
- EXPECT_EQ (0 , field.ClearedCount ());
516
484
EXPECT_EQ (foo, &field.Get (index ));
517
485
518
486
// Last branch: Field is not at capacity and there are no cleared objects.
@@ -521,7 +489,6 @@ TEST(RepeatedPtrField, AddAllocated) {
521
489
field.AddAllocated (bar);
522
490
++index ;
523
491
EXPECT_EQ (index + 1 , field.size ());
524
- EXPECT_EQ (0 , field.ClearedCount ());
525
492
EXPECT_EQ (bar, &field.Get (index ));
526
493
527
494
// Third branch: Field is not at capacity and there are no cleared objects.
@@ -530,7 +497,6 @@ TEST(RepeatedPtrField, AddAllocated) {
530
497
std::string* baz = new std::string (" baz" );
531
498
field.AddAllocated (baz);
532
499
EXPECT_EQ (index + 1 , field.size ());
533
- EXPECT_EQ (1 , field.ClearedCount ());
534
500
EXPECT_EQ (baz, &field.Get (index ));
535
501
536
502
// Second branch: Field is at capacity but has some cleared objects.
@@ -541,7 +507,6 @@ TEST(RepeatedPtrField, AddAllocated) {
541
507
field.AddAllocated (moo);
542
508
EXPECT_EQ (index + 1 , field.size ());
543
509
// We should have discarded the cleared object.
544
- EXPECT_EQ (0 , field.ClearedCount ());
545
510
EXPECT_EQ (moo, &field.Get (index ));
546
511
}
547
512
@@ -937,7 +902,6 @@ TEST(RepeatedPtrField, ExtractSubrange) {
937
902
EXPECT_EQ (field.size (), sz + extra);
938
903
for (int i = 0 ; i < extra; ++i) field.RemoveLast ();
939
904
EXPECT_EQ (field.size (), sz);
940
- EXPECT_EQ (field.ClearedCount (), extra);
941
905
942
906
// Create a catcher array and call ExtractSubrange.
943
907
std::string* catcher[10 ];
@@ -959,9 +923,7 @@ TEST(RepeatedPtrField, ExtractSubrange) {
959
923
EXPECT_EQ (field.Mutable (i), subject[i + num]);
960
924
961
925
// Reinstate the cleared elements.
962
- EXPECT_EQ (field.ClearedCount (), extra);
963
926
for (int i = 0 ; i < extra; ++i) field.Add ();
964
- EXPECT_EQ (field.ClearedCount (), 0 );
965
927
EXPECT_EQ (field.size (), sz - num + extra);
966
928
967
929
// Make sure the extra elements are all there (in some order).
0 commit comments