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

Side by Side Diff: third_party/WebKit/Source/platform/Decimal.cpp

Issue 2846303002: Replace ASSERT with DCHECK in platform/ (Closed)
Patch Set: rebase Created 3 years, 7 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 unified diff | Download patch
OLDNEW
1 /* 1 /*
2 * Copyright (C) 2012 Google Inc. All rights reserved. 2 * Copyright (C) 2012 Google Inc. All rights reserved.
3 * 3 *
4 * Redistribution and use in source and binary forms, with or without 4 * Redistribution and use in source and binary forms, with or without
5 * modification, are permitted provided that the following conditions are 5 * modification, are permitted provided that the following conditions are
6 * met: 6 * met:
7 * 7 *
8 * * Redistributions of source code must retain the above copyright 8 * * Redistributions of source code must retain the above copyright
9 * notice, this list of conditions and the following disclaimer. 9 * notice, this list of conditions and the following disclaimer.
10 * * Redistributions in binary form must reproduce the above 10 * * Redistributions in binary form must reproduce the above
(...skipping 138 matching lines...) Expand 10 before | Expand all | Expand 10 after
149 return low | (static_cast<uint64_t>(high) << 32); 149 return low | (static_cast<uint64_t>(high) << 32);
150 } 150 }
151 151
152 static uint64_t MultiplyHigh(uint64_t, uint64_t); 152 static uint64_t MultiplyHigh(uint64_t, uint64_t);
153 153
154 uint64_t high_; 154 uint64_t high_;
155 uint64_t low_; 155 uint64_t low_;
156 }; 156 };
157 157
158 UInt128& UInt128::operator/=(const uint32_t divisor) { 158 UInt128& UInt128::operator/=(const uint32_t divisor) {
159 ASSERT(divisor); 159 DCHECK(divisor);
160 160
161 if (!high_) { 161 if (!high_) {
162 low_ /= divisor; 162 low_ /= divisor;
163 return *this; 163 return *this;
164 } 164 }
165 165
166 uint32_t dividend[4]; 166 uint32_t dividend[4];
167 dividend[0] = LowUInt32(low_); 167 dividend[0] = LowUInt32(low_);
168 dividend[1] = HighUInt32(low_); 168 dividend[1] = HighUInt32(low_);
169 dividend[2] = LowUInt32(high_); 169 dividend[2] = LowUInt32(high_);
(...skipping 277 matching lines...) Expand 10 before | Expand all | Expand 10 after
447 case SpecialValueHandler::kEitherNaN: 447 case SpecialValueHandler::kEitherNaN:
448 return handler.Value(); 448 return handler.Value();
449 449
450 case SpecialValueHandler::kLHSIsInfinity: 450 case SpecialValueHandler::kLHSIsInfinity:
451 return Infinity(result_sign); 451 return Infinity(result_sign);
452 452
453 case SpecialValueHandler::kRHSIsInfinity: 453 case SpecialValueHandler::kRHSIsInfinity:
454 return Zero(result_sign); 454 return Zero(result_sign);
455 } 455 }
456 456
457 ASSERT(lhs.IsFinite()); 457 DCHECK(lhs.IsFinite());
458 ASSERT(rhs.IsFinite()); 458 DCHECK(rhs.IsFinite());
459 459
460 if (rhs.IsZero()) 460 if (rhs.IsZero())
461 return lhs.IsZero() ? Nan() : Infinity(result_sign); 461 return lhs.IsZero() ? Nan() : Infinity(result_sign);
462 462
463 int result_exponent = lhs.Exponent() - rhs.Exponent(); 463 int result_exponent = lhs.Exponent() - rhs.Exponent();
464 464
465 if (lhs.IsZero()) 465 if (lhs.IsZero())
466 return Decimal(result_sign, result_exponent, 0); 466 return Decimal(result_sign, result_exponent, 0);
467 467
468 uint64_t remainder = lhs.data_.Coefficient(); 468 uint64_t remainder = lhs.data_.Coefficient();
(...skipping 68 matching lines...) Expand 10 before | Expand all | Expand 10 after
537 } 537 }
538 538
539 Decimal Decimal::Abs() const { 539 Decimal Decimal::Abs() const {
540 Decimal result(*this); 540 Decimal result(*this);
541 result.data_.SetSign(kPositive); 541 result.data_.SetSign(kPositive);
542 return result; 542 return result;
543 } 543 }
544 544
545 Decimal::AlignedOperands Decimal::AlignOperands(const Decimal& lhs, 545 Decimal::AlignedOperands Decimal::AlignOperands(const Decimal& lhs,
546 const Decimal& rhs) { 546 const Decimal& rhs) {
547 ASSERT(lhs.IsFinite()); 547 DCHECK(lhs.IsFinite());
548 ASSERT(rhs.IsFinite()); 548 DCHECK(rhs.IsFinite());
549 549
550 const int lhs_exponent = lhs.Exponent(); 550 const int lhs_exponent = lhs.Exponent();
551 const int rhs_exponent = rhs.Exponent(); 551 const int rhs_exponent = rhs.Exponent();
552 int exponent = std::min(lhs_exponent, rhs_exponent); 552 int exponent = std::min(lhs_exponent, rhs_exponent);
553 uint64_t lhs_coefficient = lhs.data_.Coefficient(); 553 uint64_t lhs_coefficient = lhs.data_.Coefficient();
554 uint64_t rhs_coefficient = rhs.data_.Coefficient(); 554 uint64_t rhs_coefficient = rhs.data_.Coefficient();
555 555
556 if (lhs_exponent > rhs_exponent) { 556 if (lhs_exponent > rhs_exponent) {
557 const int number_of_lhs_digits = CountDigits(lhs_coefficient); 557 const int number_of_lhs_digits = CountDigits(lhs_coefficient);
558 if (number_of_lhs_digits) { 558 if (number_of_lhs_digits) {
(...skipping 442 matching lines...) Expand 10 before | Expand all | Expand 10 after
1001 Decimal::EncodedData data = decimal.Value(); 1001 Decimal::EncodedData data = decimal.Value();
1002 return ostream << "encode(" 1002 return ostream << "encode("
1003 << String::Number(data.Coefficient()).Ascii().data() << ", " 1003 << String::Number(data.Coefficient()).Ascii().data() << ", "
1004 << String::Number(data.Exponent()).Ascii().data() << ", " 1004 << String::Number(data.Exponent()).Ascii().data() << ", "
1005 << (data.GetSign() == Decimal::kNegative ? "Negative" 1005 << (data.GetSign() == Decimal::kNegative ? "Negative"
1006 : "Positive") 1006 : "Positive")
1007 << ")=" << decimal.ToString().Ascii().data(); 1007 << ")=" << decimal.ToString().Ascii().data();
1008 } 1008 }
1009 1009
1010 } // namespace blink 1010 } // namespace blink
OLDNEW
« no previous file with comments | « third_party/WebKit/Source/platform/Decimal.h ('k') | third_party/WebKit/Source/platform/DecimalTest.cpp » ('j') | no next file with comments »

Powered by Google App Engine
This is Rietveld 408576698