Index: runtime/vm/dart_api_message.cc |
=================================================================== |
--- runtime/vm/dart_api_message.cc (revision 31864) |
+++ runtime/vm/dart_api_message.cc (working copy) |
@@ -395,16 +395,17 @@ |
Dart_CObject* ApiMessageReader::ReadObjectRef() { |
- int64_t value = Read<int64_t>(); |
- if ((value & kSmiTagMask) == 0) { |
- int64_t untagged_value = value >> kSmiTagShift; |
- if (kMinInt32 <= untagged_value && untagged_value <= kMaxInt32) { |
- return AllocateDartCObjectInt32(untagged_value); |
+ int64_t value64 = Read<int64_t>(); |
+ if ((value64 & kSmiTagMask) == 0) { |
+ int64_t untagged_value = value64 >> kSmiTagShift; |
+ if ((kMinInt32 <= untagged_value) && (untagged_value <= kMaxInt32)) { |
+ return AllocateDartCObjectInt32(static_cast<int32_t>(untagged_value)); |
} else { |
return AllocateDartCObjectInt64(untagged_value); |
} |
} |
- ASSERT((value <= kIntptrMax) && (value >= kIntptrMin)); |
+ ASSERT((value64 <= kIntptrMax) && (value64 >= kIntptrMin)); |
+ intptr_t value = static_cast<intptr_t>(value64); |
if (IsVMIsolateObject(value)) { |
return ReadVMIsolateObject(value); |
} |
@@ -512,12 +513,12 @@ |
return value; |
} |
case kMintCid: { |
- int64_t value = Read<int64_t>(); |
+ int64_t value64 = Read<int64_t>(); |
Dart_CObject* object; |
- if (kMinInt32 <= value && value <= kMaxInt32) { |
- object = AllocateDartCObjectInt32(value); |
+ if ((kMinInt32 <= value64) && (value64 <= kMaxInt32)) { |
+ object = AllocateDartCObjectInt32(static_cast<int32_t>(value64)); |
} else { |
- object = AllocateDartCObjectInt64(value); |
+ object = AllocateDartCObjectInt64(value64); |
} |
AddBackRef(object_id, object, kIsDeserialized); |
return object; |
@@ -718,16 +719,17 @@ |
Dart_CObject* ApiMessageReader::ReadObjectImpl() { |
- int64_t value = Read<int64_t>(); |
- if ((value & kSmiTagMask) == 0) { |
- int64_t untagged_value = value >> kSmiTagShift; |
- if (kMinInt32 <= untagged_value && untagged_value <= kMaxInt32) { |
- return AllocateDartCObjectInt32(untagged_value); |
+ int64_t value64 = Read<int64_t>(); |
+ if ((value64 & kSmiTagMask) == 0) { |
+ int64_t untagged_value = value64 >> kSmiTagShift; |
+ if ((kMinInt32 <= untagged_value) && (untagged_value <= kMaxInt32)) { |
+ return AllocateDartCObjectInt32(static_cast<int32_t>(untagged_value)); |
} else { |
return AllocateDartCObjectInt64(untagged_value); |
} |
} |
- ASSERT((value <= kIntptrMax) && (value >= kIntptrMin)); |
+ ASSERT((value64 <= kIntptrMax) && (value64 >= kIntptrMin)); |
+ intptr_t value = static_cast<intptr_t>(value64); |
if (IsVMIsolateObject(value)) { |
return ReadVMIsolateObject(value); |
} |
@@ -847,7 +849,7 @@ |
void ApiMessageWriter::WriteSmi(int64_t value) { |
ASSERT(Smi::IsValid64(value)); |
- Write<RawObject*>(Smi::New(value)); |
+ Write<RawObject*>(Smi::New(static_cast<intptr_t>(value))); |
} |