Index: dart/runtime/vm/object.cc |
=================================================================== |
--- dart/runtime/vm/object.cc (revision 42037) |
+++ dart/runtime/vm/object.cc (working copy) |
@@ -15904,9 +15904,9 @@ |
return raw(); |
} |
{ // Check for overflow. |
- int cnt = Utils::HighestBit(left_value); |
- if ((cnt + right_value) >= Smi::kBits) { |
- if ((cnt + right_value) >= Mint::kBits) { |
+ int cnt = Utils::BitLength(left_value); |
+ if ((cnt + right_value) > Smi::kBits) { |
+ if ((cnt + right_value) > Mint::kBits) { |
return Bigint::NewFromShiftedInt64(left_value, right_value); |
} else { |
int64_t left_64 = left_value; |