Index: src/snapshot/serialize.cc |
diff --git a/src/snapshot/serialize.cc b/src/snapshot/serialize.cc |
index 4be1da2c9a346f6f6f8d5acbb64837e227efe055..ace8225b8246caf958f3bf335b2c33c423e19576 100644 |
--- a/src/snapshot/serialize.cc |
+++ b/src/snapshot/serialize.cc |
@@ -2128,10 +2128,6 @@ int Serializer::ObjectSerializer::OutputRawData( |
if (is_code_object_) object_start = PrepareCode(); |
const char* description = is_code_object_ ? "Code" : "Byte"; |
-#ifdef MEMORY_SANITIZER |
- // Object sizes are usually rounded up with uninitialized padding space. |
- MSAN_MEMORY_IS_INITIALIZED(object_start + base, bytes_to_output); |
-#endif // MEMORY_SANITIZER |
sink_->PutRaw(object_start + base, bytes_to_output, description); |
} |
if (to_skip != 0 && return_skip == kIgnoringReturn) { |
@@ -2518,6 +2514,11 @@ Vector<const byte> SnapshotData::Payload() const { |
class Checksum { |
public: |
explicit Checksum(Vector<const byte> payload) { |
+#ifdef MEMORY_SANITIZER |
+ // Computing the checksum includes padding bytes for objects like strings. |
+ // Mark every object as initialized in the code serializer. |
+ MSAN_MEMORY_IS_INITIALIZED(payload.start(), payload.length()); |
+#endif // MEMORY_SANITIZER |
// Fletcher's checksum. Modified to reduce 64-bit sums to 32-bit. |
uintptr_t a = 1; |
uintptr_t b = 0; |