@@ -447,32 +447,19 @@ SCUDO_TYPED_TEST(ScudoCombinedDeathTest, ReallocateSame) {
447
447
// returns the same chunk. This requires that all the sizes we iterate on use
448
448
// the same block size, but that should be the case for MaxSize - 64 with our
449
449
// default class size maps.
450
- constexpr scudo::uptr InitialSize =
450
+ constexpr scudo::uptr ReallocSize =
451
451
TypeParam::Primary::SizeClassMap::MaxSize - 64 ;
452
+ void *P = Allocator->allocate (ReallocSize, Origin);
452
453
const char Marker = ' A' ;
453
- Allocator->setFillContents (scudo::PatternOrZeroFill);
454
-
455
- void *P = Allocator->allocate (InitialSize, Origin);
456
- scudo::uptr CurrentSize = InitialSize;
454
+ memset (P, Marker, ReallocSize);
457
455
for (scudo::sptr Delta = -32 ; Delta < 32 ; Delta += 8 ) {
458
- memset (P, Marker, CurrentSize);
459
456
const scudo::uptr NewSize =
460
- static_cast <scudo::uptr>(static_cast <scudo::sptr>(InitialSize ) + Delta);
457
+ static_cast <scudo::uptr>(static_cast <scudo::sptr>(ReallocSize ) + Delta);
461
458
void *NewP = Allocator->reallocate (P, NewSize);
462
459
EXPECT_EQ (NewP, P);
463
-
464
- // Verify that existing contents have been preserved.
465
- for (scudo::uptr I = 0 ; I < scudo::Min (CurrentSize, NewSize); I++)
460
+ for (scudo::uptr I = 0 ; I < ReallocSize - 32 ; I++)
466
461
EXPECT_EQ ((reinterpret_cast <char *>(NewP))[I], Marker);
467
-
468
- // Verify that new bytes are set according to FillContentsMode.
469
- for (scudo::uptr I = CurrentSize; I < NewSize; I++) {
470
- EXPECT_EQ ((reinterpret_cast <unsigned char *>(NewP))[I],
471
- scudo::PatternFillByte);
472
- }
473
-
474
462
checkMemoryTaggingMaybe (Allocator, NewP, NewSize, 0 );
475
- CurrentSize = NewSize;
476
463
}
477
464
Allocator->deallocate (P, Origin);
478
465
}
0 commit comments