| OLD | NEW | 
|     1 // Copyright 2012 the V8 project authors. All rights reserved. |     1 // Copyright 2012 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/v8.h" |     5 #include "src/v8.h" | 
|     6  |     6  | 
|     7 #include "src/accessors.h" |     7 #include "src/accessors.h" | 
|     8 #include "src/api.h" |     8 #include "src/api.h" | 
|     9 #include "src/base/platform/platform.h" |     9 #include "src/base/platform/platform.h" | 
|    10 #include "src/bootstrapper.h" |    10 #include "src/bootstrapper.h" | 
| (...skipping 2621 matching lines...) Expand 10 before | Expand all | Expand 10 after  Loading... | 
|  2632  |  2632  | 
|  2633   // Copy serialized data. |  2633   // Copy serialized data. | 
|  2634   CopyBytes(data_ + padded_payload_offset, payload.begin(), |  2634   CopyBytes(data_ + padded_payload_offset, payload.begin(), | 
|  2635             static_cast<size_t>(payload.length())); |  2635             static_cast<size_t>(payload.length())); | 
|  2636 } |  2636 } | 
|  2637  |  2637  | 
|  2638  |  2638  | 
|  2639 SerializedCodeData::SanityCheckResult SerializedCodeData::SanityCheck( |  2639 SerializedCodeData::SanityCheckResult SerializedCodeData::SanityCheck( | 
|  2640     Isolate* isolate, String* source) const { |  2640     Isolate* isolate, String* source) const { | 
|  2641   uint32_t magic_number = GetMagicNumber(); |  2641   uint32_t magic_number = GetMagicNumber(); | 
 |  2642   if (magic_number != ComputeMagicNumber(isolate)) return MAGIC_NUMBER_MISMATCH; | 
|  2642   uint32_t version_hash = GetHeaderValue(kVersionHashOffset); |  2643   uint32_t version_hash = GetHeaderValue(kVersionHashOffset); | 
|  2643   uint32_t source_hash = GetHeaderValue(kSourceHashOffset); |  2644   uint32_t source_hash = GetHeaderValue(kSourceHashOffset); | 
|  2644   uint32_t cpu_features = GetHeaderValue(kCpuFeaturesOffset); |  2645   uint32_t cpu_features = GetHeaderValue(kCpuFeaturesOffset); | 
|  2645   uint32_t flags_hash = GetHeaderValue(kFlagHashOffset); |  2646   uint32_t flags_hash = GetHeaderValue(kFlagHashOffset); | 
|  2646   uint32_t c1 = GetHeaderValue(kChecksum1Offset); |  2647   uint32_t c1 = GetHeaderValue(kChecksum1Offset); | 
|  2647   uint32_t c2 = GetHeaderValue(kChecksum2Offset); |  2648   uint32_t c2 = GetHeaderValue(kChecksum2Offset); | 
|  2648   if (magic_number != ComputeMagicNumber(isolate)) return MAGIC_NUMBER_MISMATCH; |  | 
|  2649   if (version_hash != Version::Hash()) return VERSION_MISMATCH; |  2649   if (version_hash != Version::Hash()) return VERSION_MISMATCH; | 
|  2650   if (source_hash != SourceHash(source)) return SOURCE_MISMATCH; |  2650   if (source_hash != SourceHash(source)) return SOURCE_MISMATCH; | 
|  2651   if (cpu_features != static_cast<uint32_t>(CpuFeatures::SupportedFeatures())) { |  2651   if (cpu_features != static_cast<uint32_t>(CpuFeatures::SupportedFeatures())) { | 
|  2652     return CPU_FEATURES_MISMATCH; |  2652     return CPU_FEATURES_MISMATCH; | 
|  2653   } |  2653   } | 
|  2654   if (flags_hash != FlagList::Hash()) return FLAGS_MISMATCH; |  2654   if (flags_hash != FlagList::Hash()) return FLAGS_MISMATCH; | 
|  2655   if (!Checksum(Payload()).Check(c1, c2)) return CHECKSUM_MISMATCH; |  2655   if (!Checksum(Payload()).Check(c1, c2)) return CHECKSUM_MISMATCH; | 
|  2656   return CHECK_SUCCESS; |  2656   return CHECK_SUCCESS; | 
|  2657 } |  2657 } | 
|  2658  |  2658  | 
| (...skipping 53 matching lines...) Expand 10 before | Expand all | Expand 10 after  Loading... | 
|  2712   SerializedCodeData* scd = new SerializedCodeData(cached_data); |  2712   SerializedCodeData* scd = new SerializedCodeData(cached_data); | 
|  2713   SanityCheckResult r = scd->SanityCheck(isolate, source); |  2713   SanityCheckResult r = scd->SanityCheck(isolate, source); | 
|  2714   if (r == CHECK_SUCCESS) return scd; |  2714   if (r == CHECK_SUCCESS) return scd; | 
|  2715   cached_data->Reject(); |  2715   cached_data->Reject(); | 
|  2716   source->GetIsolate()->counters()->code_cache_reject_reason()->AddSample(r); |  2716   source->GetIsolate()->counters()->code_cache_reject_reason()->AddSample(r); | 
|  2717   delete scd; |  2717   delete scd; | 
|  2718   return NULL; |  2718   return NULL; | 
|  2719 } |  2719 } | 
|  2720 }  // namespace internal |  2720 }  // namespace internal | 
|  2721 }  // namespace v8 |  2721 }  // namespace v8 | 
| OLD | NEW |