| OLD | NEW |
| 1 // Copyright (c) 2016, the Dart project authors. Please see the AUTHORS file | 1 // Copyright (c) 2016, the Dart project authors. Please see the AUTHORS file |
| 2 // for details. All rights reserved. Use of this source code is governed by a | 2 // for details. All rights reserved. Use of this source code is governed by a |
| 3 // BSD-style license that can be found in the LICENSE file. | 3 // BSD-style license that can be found in the LICENSE file. |
| 4 | 4 |
| 5 #include "vm/clustered_snapshot.h" | 5 #include "vm/clustered_snapshot.h" |
| 6 | 6 |
| 7 #include "platform/assert.h" | 7 #include "platform/assert.h" |
| 8 #include "vm/bootstrap.h" | 8 #include "vm/bootstrap.h" |
| 9 #include "vm/class_finalizer.h" | 9 #include "vm/class_finalizer.h" |
| 10 #include "vm/dart.h" | 10 #include "vm/dart.h" |
| (...skipping 4629 matching lines...) Expand 10 before | Expand all | Expand 10 after Loading... |
| 4640 cluster->Trace(this, object); | 4640 cluster->Trace(this, object); |
| 4641 } | 4641 } |
| 4642 | 4642 |
| 4643 | 4643 |
| 4644 void Serializer::WriteVersionAndFeatures() { | 4644 void Serializer::WriteVersionAndFeatures() { |
| 4645 const char* expected_version = Version::SnapshotString(); | 4645 const char* expected_version = Version::SnapshotString(); |
| 4646 ASSERT(expected_version != NULL); | 4646 ASSERT(expected_version != NULL); |
| 4647 const intptr_t version_len = strlen(expected_version); | 4647 const intptr_t version_len = strlen(expected_version); |
| 4648 WriteBytes(reinterpret_cast<const uint8_t*>(expected_version), version_len); | 4648 WriteBytes(reinterpret_cast<const uint8_t*>(expected_version), version_len); |
| 4649 | 4649 |
| 4650 const char* expected_features = Dart::FeaturesString(kind_); | 4650 const char* expected_features = Snapshot::FeaturesString(kind_); |
| 4651 ASSERT(expected_features != NULL); | 4651 ASSERT(expected_features != NULL); |
| 4652 const intptr_t features_len = strlen(expected_features); | 4652 const intptr_t features_len = strlen(expected_features); |
| 4653 WriteBytes(reinterpret_cast<const uint8_t*>(expected_features), | 4653 WriteBytes(reinterpret_cast<const uint8_t*>(expected_features), |
| 4654 features_len + 1); | 4654 features_len + 1); |
| 4655 free(const_cast<char*>(expected_features)); | 4655 free(const_cast<char*>(expected_features)); |
| 4656 } | 4656 } |
| 4657 | 4657 |
| 4658 | 4658 |
| 4659 #if defined(DEBUG) | 4659 #if defined(DEBUG) |
| 4660 static const int32_t kSectionMarker = 0xABAB; | 4660 static const int32_t kSectionMarker = 0xABAB; |
| (...skipping 353 matching lines...) Expand 10 before | Expand all | Expand 10 after Loading... |
| 5014 (Snapshot::IsFull(kind_)) ? "full" : "script", expected_version, | 5014 (Snapshot::IsFull(kind_)) ? "full" : "script", expected_version, |
| 5015 actual_version); | 5015 actual_version); |
| 5016 free(actual_version); | 5016 free(actual_version); |
| 5017 // This can also fail while bringing up the VM isolate, so make sure to | 5017 // This can also fail while bringing up the VM isolate, so make sure to |
| 5018 // allocate the error message in old space. | 5018 // allocate the error message in old space. |
| 5019 const String& msg = String::Handle(String::New(message_buffer, Heap::kOld)); | 5019 const String& msg = String::Handle(String::New(message_buffer, Heap::kOld)); |
| 5020 return ApiError::New(msg, Heap::kOld); | 5020 return ApiError::New(msg, Heap::kOld); |
| 5021 } | 5021 } |
| 5022 Advance(version_len); | 5022 Advance(version_len); |
| 5023 | 5023 |
| 5024 const char* expected_features = Dart::FeaturesString(kind_); | 5024 const char* expected_features = Snapshot::FeaturesString(kind_); |
| 5025 ASSERT(expected_features != NULL); | 5025 ASSERT(expected_features != NULL); |
| 5026 const intptr_t expected_len = strlen(expected_features); | 5026 const intptr_t expected_len = strlen(expected_features); |
| 5027 | 5027 |
| 5028 const char* features = reinterpret_cast<const char*>(CurrentBufferAddress()); | 5028 const char* features = reinterpret_cast<const char*>(CurrentBufferAddress()); |
| 5029 ASSERT(features != NULL); | 5029 ASSERT(features != NULL); |
| 5030 intptr_t buffer_len = OS::StrNLen(features, PendingBytes()); | 5030 intptr_t buffer_len = OS::StrNLen(features, PendingBytes()); |
| 5031 if ((buffer_len != expected_len) || | 5031 if ((buffer_len != expected_len) || |
| 5032 strncmp(features, expected_features, expected_len)) { | 5032 strncmp(features, expected_features, expected_len)) { |
| 5033 const intptr_t kMessageBufferSize = 256; | 5033 const intptr_t kMessageBufferSize = 256; |
| 5034 char message_buffer[kMessageBufferSize]; | 5034 char message_buffer[kMessageBufferSize]; |
| (...skipping 475 matching lines...) Expand 10 before | Expand all | Expand 10 after Loading... |
| 5510 thread_->isolate()->SetupImagePage(data_buffer_, | 5510 thread_->isolate()->SetupImagePage(data_buffer_, |
| 5511 /* is_executable */ false); | 5511 /* is_executable */ false); |
| 5512 } | 5512 } |
| 5513 | 5513 |
| 5514 deserializer.ReadIsolateSnapshot(thread_->isolate()->object_store()); | 5514 deserializer.ReadIsolateSnapshot(thread_->isolate()->object_store()); |
| 5515 | 5515 |
| 5516 return ApiError::null(); | 5516 return ApiError::null(); |
| 5517 } | 5517 } |
| 5518 | 5518 |
| 5519 } // namespace dart | 5519 } // namespace dart |
| OLD | NEW |