| Index: src/serialize.h
|
| diff --git a/src/serialize.h b/src/serialize.h
|
| index 264bd46f460015a392047afaeb9a478bcf0054a7..2b7f2ade9d79f6bbd02444feb0a40b4424cd4cec 100644
|
| --- a/src/serialize.h
|
| +++ b/src/serialize.h
|
| @@ -501,12 +501,13 @@ class SerializedData {
|
|
|
| protected:
|
| void SetHeaderValue(int offset, uint32_t value) {
|
| - memcpy(reinterpret_cast<uint32_t*>(data_) + offset, &value, sizeof(value));
|
| + uint32_t* address = reinterpret_cast<uint32_t*>(data_ + offset);
|
| + memcpy(reinterpret_cast<uint32_t*>(address), &value, sizeof(value));
|
| }
|
|
|
| uint32_t GetHeaderValue(int offset) const {
|
| uint32_t value;
|
| - memcpy(&value, reinterpret_cast<int*>(data_) + offset, sizeof(value));
|
| + memcpy(&value, reinterpret_cast<int*>(data_ + offset), sizeof(value));
|
| return value;
|
| }
|
|
|
| @@ -912,14 +913,16 @@ class SnapshotData : public SerializedData {
|
|
|
| private:
|
| bool IsSane();
|
| - // The data header consists of int-sized entries:
|
| + // The data header consists of uint32_t-sized entries:
|
| // [0] version hash
|
| // [1] number of reservation size entries
|
| // [2] payload length
|
| + // ... reservations
|
| + // ... serialized payload
|
| static const int kCheckSumOffset = 0;
|
| - static const int kReservationsOffset = 1;
|
| - static const int kPayloadLengthOffset = 2;
|
| - static const int kHeaderSize = (kPayloadLengthOffset + 1) * kIntSize;
|
| + static const int kNumReservationsOffset = kCheckSumOffset + kInt32Size;
|
| + static const int kPayloadLengthOffset = kNumReservationsOffset + kInt32Size;
|
| + static const int kHeaderSize = kPayloadLengthOffset + kInt32Size;
|
| };
|
|
|
|
|
| @@ -957,7 +960,7 @@ class SerializedCodeData : public SerializedData {
|
|
|
| uint32_t SourceHash(String* source) const { return source->length(); }
|
|
|
| - // The data header consists of int-sized entries:
|
| + // The data header consists of uint32_t-sized entries:
|
| // [0] version hash
|
| // [1] source hash
|
| // [2] cpu features
|
| @@ -966,18 +969,23 @@ class SerializedCodeData : public SerializedData {
|
| // [5] number of code stub keys
|
| // [6] number of reservation size entries
|
| // [7] payload length
|
| + // [8] payload checksum part 1
|
| + // [9] payload checksum part 2
|
| + // ... reservations
|
| + // ... code stub keys
|
| + // ... serialized payload
|
| static const int kVersionHashOffset = 0;
|
| - static const int kSourceHashOffset = 1;
|
| - static const int kCpuFeaturesOffset = 2;
|
| - static const int kFlagHashOffset = 3;
|
| - static const int kNumInternalizedStringsOffset = 4;
|
| - static const int kReservationsOffset = 5;
|
| - static const int kNumCodeStubKeysOffset = 6;
|
| - static const int kPayloadLengthOffset = 7;
|
| - static const int kChecksum1Offset = 8;
|
| - static const int kChecksum2Offset = 9;
|
| - static const int kHeaderSize =
|
| - POINTER_SIZE_ALIGN((kChecksum2Offset + 1) * kIntSize);
|
| + static const int kSourceHashOffset = kVersionHashOffset + kInt32Size;
|
| + static const int kCpuFeaturesOffset = kSourceHashOffset + kInt32Size;
|
| + static const int kFlagHashOffset = kCpuFeaturesOffset + kInt32Size;
|
| + static const int kNumInternalizedStringsOffset = kFlagHashOffset + kInt32Size;
|
| + static const int kNumReservationsOffset =
|
| + kNumInternalizedStringsOffset + kInt32Size;
|
| + static const int kNumCodeStubKeysOffset = kNumReservationsOffset + kInt32Size;
|
| + static const int kPayloadLengthOffset = kNumCodeStubKeysOffset + kInt32Size;
|
| + static const int kChecksum1Offset = kPayloadLengthOffset + kInt32Size;
|
| + static const int kChecksum2Offset = kChecksum1Offset + kInt32Size;
|
| + static const int kHeaderSize = kChecksum2Offset + kInt32Size;
|
| };
|
| } } // namespace v8::internal
|
|
|
|
|