[vm, gc] Don't double initialize typed data in compressed pointers mode.
Originally, memory in the compressed heap was recycled such that allocating a large page didn't guarentee the page was zeroed. Since 735f96d6a68190558518a1037ba4028029d85bcd, allocating a large page results in a freshly committed page that is zeroed.
TEST=ci
Change-Id: I1ab1fdf16fc3d498d676a228187162b2e669f692
Reviewed-on: https://dart-review.googlesource.com/c/sdk/+/246303
Reviewed-by: Liam Appelbe <liama@google.com>
Commit-Queue: Ryan Macnak <rmacnak@google.com>
diff --git a/runtime/vm/object.cc b/runtime/vm/object.cc
index 0b5f8bc..9e867c4 100644
--- a/runtime/vm/object.cc
+++ b/runtime/vm/object.cc
@@ -2628,12 +2628,8 @@
// If the size is greater than both kNewAllocatableSize and
// kAllocatablePageSize, the object must have been allocated to a new
// large page, which must already have been zero initialized by the OS.
-#if defined(DART_COMPRESSED_POINTERS)
- needs_init = true;
-#else
needs_init = Heap::IsAllocatableInNewSpace(size) ||
Heap::IsAllocatableViaFreeLists(size);
-#endif
} else {
initial_value = static_cast<uword>(null_);
#if defined(DART_COMPRESSED_POINTERS)