Index: runtime/vm/dart_api_message.cc |
diff --git a/runtime/vm/dart_api_message.cc b/runtime/vm/dart_api_message.cc |
index cef65c67e1b7dcba785bc5d613ed87adaa6799f4..4aebfed858253df53cb3dc0f2aca0e3a77b7cc13 100644 |
--- a/runtime/vm/dart_api_message.cc |
+++ b/runtime/vm/dart_api_message.cc |
@@ -80,6 +80,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; |
@@ -167,6 +174,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>()); |