Chromium Code Reviews
chromiumcodereview-hr@appspot.gserviceaccount.com (chromiumcodereview-hr) | Please choose your nickname with Settings | Help | Chromium Project | Gerrit Changes | Sign out
(155)

Side by Side Diff: src/snapshot/code-serializer.cc

Issue 2395793003: [wasm] Support recompilation if deserialization fails. (Closed)
Patch Set: Feedback Created 4 years, 2 months ago
Use n/p to move between diff chunks; N/P to move between comments. Draft comments are only viewable by you.
Jump to:
View unified diff | Download patch
OLDNEW
1 // Copyright 2016 the V8 project authors. All rights reserved. 1 // Copyright 2016 the V8 project authors. All rights reserved.
2 // Use of this source code is governed by a BSD-style license that can be 2 // Use of this source code is governed by a BSD-style license that can be
3 // found in the LICENSE file. 3 // found in the LICENSE file.
4 4
5 #include "src/snapshot/code-serializer.h" 5 #include "src/snapshot/code-serializer.h"
6 6
7 #include <memory> 7 #include <memory>
8 8
9 #include "src/code-stubs.h" 9 #include "src/code-stubs.h"
10 #include "src/log.h" 10 #include "src/log.h"
(...skipping 322 matching lines...) Expand 10 before | Expand all | Expand 10 after
333 CopyBytes(data_ + padded_payload_offset, payload->begin(), 333 CopyBytes(data_ + padded_payload_offset, payload->begin(),
334 static_cast<size_t>(payload->length())); 334 static_cast<size_t>(payload->length()));
335 335
336 Checksum checksum(DataWithoutHeader()); 336 Checksum checksum(DataWithoutHeader());
337 SetHeaderValue(kChecksum1Offset, checksum.a()); 337 SetHeaderValue(kChecksum1Offset, checksum.a());
338 SetHeaderValue(kChecksum2Offset, checksum.b()); 338 SetHeaderValue(kChecksum2Offset, checksum.b());
339 } 339 }
340 340
341 SerializedCodeData::SanityCheckResult SerializedCodeData::SanityCheck( 341 SerializedCodeData::SanityCheckResult SerializedCodeData::SanityCheck(
342 Isolate* isolate, uint32_t expected_source_hash) const { 342 Isolate* isolate, uint32_t expected_source_hash) const {
343 if (this->size_ < kHeaderSize) return INVALID_HEADER;
343 uint32_t magic_number = GetMagicNumber(); 344 uint32_t magic_number = GetMagicNumber();
344 if (magic_number != ComputeMagicNumber(isolate)) return MAGIC_NUMBER_MISMATCH; 345 if (magic_number != ComputeMagicNumber(isolate)) return MAGIC_NUMBER_MISMATCH;
345 uint32_t version_hash = GetHeaderValue(kVersionHashOffset); 346 uint32_t version_hash = GetHeaderValue(kVersionHashOffset);
346 uint32_t source_hash = GetHeaderValue(kSourceHashOffset); 347 uint32_t source_hash = GetHeaderValue(kSourceHashOffset);
347 uint32_t cpu_features = GetHeaderValue(kCpuFeaturesOffset); 348 uint32_t cpu_features = GetHeaderValue(kCpuFeaturesOffset);
348 uint32_t flags_hash = GetHeaderValue(kFlagHashOffset); 349 uint32_t flags_hash = GetHeaderValue(kFlagHashOffset);
349 uint32_t c1 = GetHeaderValue(kChecksum1Offset); 350 uint32_t c1 = GetHeaderValue(kChecksum1Offset);
350 uint32_t c2 = GetHeaderValue(kChecksum2Offset); 351 uint32_t c2 = GetHeaderValue(kChecksum2Offset);
351 if (version_hash != Version::Hash()) return VERSION_MISMATCH; 352 if (version_hash != Version::Hash()) return VERSION_MISMATCH;
352 if (source_hash != expected_source_hash) return SOURCE_MISMATCH; 353 if (source_hash != expected_source_hash) return SOURCE_MISMATCH;
(...skipping 56 matching lines...) Expand 10 before | Expand all | Expand 10 after
409 *rejection_result = scd.SanityCheck(isolate, expected_source_hash); 410 *rejection_result = scd.SanityCheck(isolate, expected_source_hash);
410 if (*rejection_result != CHECK_SUCCESS) { 411 if (*rejection_result != CHECK_SUCCESS) {
411 cached_data->Reject(); 412 cached_data->Reject();
412 return SerializedCodeData(nullptr, 0); 413 return SerializedCodeData(nullptr, 0);
413 } 414 }
414 return scd; 415 return scd;
415 } 416 }
416 417
417 } // namespace internal 418 } // namespace internal
418 } // namespace v8 419 } // namespace v8
OLDNEW

Powered by Google App Engine
This is Rietveld 408576698