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

Unified Diff: runtime/vm/snapshot.cc

Issue 2669543003: Use the app snapshot when testing with -cdartk. (Closed)
Patch Set: . Created 3 years, 11 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 side-by-side diff with in-line comments
Download patch
Index: runtime/vm/snapshot.cc
diff --git a/runtime/vm/snapshot.cc b/runtime/vm/snapshot.cc
index 97f0d847dcd9e5a7d89a2614a1cbcede2bab1937..84ef21f7c2af9df56e5cc8fff4f6ec4f8f81cc67 100644
--- a/runtime/vm/snapshot.cc
+++ b/runtime/vm/snapshot.cc
@@ -182,6 +182,59 @@ const Snapshot* Snapshot::SetupFromBuffer(const void* raw_memory) {
}
+const char* Snapshot::FeaturesString(Kind kind) {
+ TextBuffer buffer(64);
+
+// Different fields are included for DEBUG/RELEASE/PRODUCT.
+#if defined(DEBUG)
+ buffer.AddString("debug");
+#elif defined(PRODUCT)
+ buffer.AddString("product");
+#else
+ buffer.AddString("release");
+#endif
+
+ if (Snapshot::IncludesCode(kind)) {
+ // Checked mode affects deopt ids.
+ Isolate* isolate = Isolate::Current();
+ buffer.AddString(isolate->asserts() ? " asserts" : " no-asserts");
+ buffer.AddString(isolate->type_checks() ? " type-checks"
+ : " no-type-checks");
+
+// Generated code must match the host architecture and ABI.
+#if defined(TARGET_ARCH_ARM)
+#if defined(TARGET_ABI_IOS)
+ buffer.AddString(" arm-ios");
+#elif defined(TARGET_ABI_EABI)
+ buffer.AddString(" arm-eabi");
+#else
+#error Unknown ABI
+#endif
+ buffer.AddString(TargetCPUFeatures::hardfp_supported() ? " hardfp"
+ : " softfp");
+#elif defined(TARGET_ARCH_ARM64)
+ buffer.AddString(" arm64");
+#elif defined(TARGET_ARCH_MIPS)
+ buffer.AddString(" mips");
+#elif defined(TARGET_ARCH_IA32)
+ buffer.AddString(" ia32");
+#elif defined(TARGET_ARCH_X64)
+#if defined(_WIN64)
+ buffer.AddString(" x64-win");
+#else
+ buffer.AddString(" x64-sysv");
+#endif
+#elif defined(TARGET_ARCH_DBC)
+ buffer.AddString(" dbc");
+#elif defined(TARGET_ARCH_DBC64)
+ buffer.AddString(" dbc64");
+#endif
+ }
+
+ return buffer.Steal();
+}
+
+
RawSmi* BaseReader::ReadAsSmi() {
intptr_t value = Read<int32_t>();
ASSERT((value & kSmiTagMask) == kSmiTag);
@@ -639,7 +692,7 @@ RawApiError* SnapshotReader::VerifyVersionAndFeatures() {
}
Advance(version_len);
- const char* expected_features = Dart::FeaturesString(kind_);
+ const char* expected_features = Snapshot::FeaturesString(kind_);
ASSERT(expected_features != NULL);
const intptr_t expected_len = strlen(expected_features);
@@ -1842,7 +1895,7 @@ void SnapshotWriter::WriteVersionAndFeatures() {
const intptr_t version_len = strlen(expected_version);
WriteBytes(reinterpret_cast<const uint8_t*>(expected_version), version_len);
- const char* expected_features = Dart::FeaturesString(kind_);
+ const char* expected_features = Snapshot::FeaturesString(kind_);
ASSERT(expected_features != NULL);
const intptr_t features_len = strlen(expected_features);
WriteBytes(reinterpret_cast<const uint8_t*>(expected_features),

Powered by Google App Engine
This is Rietveld 408576698