Index: runtime/vm/dart_api_message.cc |
diff --git a/runtime/vm/dart_api_message.cc b/runtime/vm/dart_api_message.cc |
index d5f2e69d77bd4af57603a0de4fb1e5e0daa59104..3624242d25aab309b5bec2ead99351ed60b64600 100644 |
--- a/runtime/vm/dart_api_message.cc |
+++ b/runtime/vm/dart_api_message.cc |
@@ -81,6 +81,13 @@ Dart_CObject* ApiMessageReader::AllocateDartCObjectInt32(int32_t val) { |
} |
+Dart_CObject* ApiMessageReader::AllocateDartCObjectInt64(int64_t val) { |
+ Dart_CObject* value = AllocateDartCObject(Dart_CObject::kInt64); |
+ value->value.as_int64 = val; |
+ return value; |
+} |
+ |
+ |
Dart_CObject* ApiMessageReader::AllocateDartCObjectDouble(double val) { |
Dart_CObject* value = AllocateDartCObject(Dart_CObject::kDouble); |
value->value.as_double = val; |
@@ -190,6 +197,15 @@ Dart_CObject* ApiMessageReader::ReadInlinedObject(intptr_t object_id) { |
return value; |
break; |
} |
+ case ObjectStore::kMintClass: { |
+ int64_t value = Read<int64_t>(); |
+ if (kMinInt32 <= value && value <= kMaxInt32) { |
+ return AllocateDartCObjectInt32(value); |
+ } else { |
+ return AllocateDartCObjectInt64(value); |
+ } |
+ break; |
+ } |
case ObjectStore::kDoubleClass: { |
// Read the double value for the object. |
Dart_CObject* object = AllocateDartCObjectDouble(Read<double>()); |