tor-browser

The Tor Browser
git clone https://git.dasho.dev/tor-browser.git
Log | Files | Refs | README | LICENSE

comparison-with-nan.patch (1860B)


      1 diff --git a/mozglue/misc/decimal/Decimal.cpp b/mozglue/misc/decimal/Decimal.cpp
      2 --- a/mozglue/misc/decimal/Decimal.cpp
      3 +++ b/mozglue/misc/decimal/Decimal.cpp
      4 @@ -509,21 +509,25 @@ Decimal Decimal::operator/(const Decimal
      5     if (remainder > divisor / 2)
      6         ++result;
      7 
      8     return Decimal(resultSign, resultExponent, result);
      9 }
     10 
     11 bool Decimal::operator==(const Decimal& rhs) const
     12 {
     13 +    if (isNaN() || rhs.isNaN())
     14 +        return false;
     15     return m_data == rhs.m_data || compareTo(rhs).isZero();
     16 }
     17 
     18 bool Decimal::operator!=(const Decimal& rhs) const
     19 {
     20 +    if (isNaN() || rhs.isNaN())
     21 +        return true;
     22     if (m_data == rhs.m_data)
     23         return false;
     24     const Decimal result = compareTo(rhs);
     25     if (result.isNaN())
     26         return false;
     27     return !result.isZero();
     28 }
     29 
     30 @@ -532,16 +536,18 @@ bool Decimal::operator<(const Decimal& r
     31     const Decimal result = compareTo(rhs);
     32     if (result.isNaN())
     33         return false;
     34     return !result.isZero() && result.isNegative();
     35 }
     36 
     37 bool Decimal::operator<=(const Decimal& rhs) const
     38 {
     39 +    if (isNaN() || rhs.isNaN())
     40 +        return false;
     41     if (m_data == rhs.m_data)
     42         return true;
     43     const Decimal result = compareTo(rhs);
     44     if (result.isNaN())
     45         return false;
     46     return result.isZero() || result.isNegative();
     47 }
     48 
     49 @@ -550,16 +556,18 @@ bool Decimal::operator>(const Decimal& r
     50     const Decimal result = compareTo(rhs);
     51     if (result.isNaN())
     52         return false;
     53     return !result.isZero() && result.isPositive();
     54 }
     55 
     56 bool Decimal::operator>=(const Decimal& rhs) const
     57 {
     58 +    if (isNaN() || rhs.isNaN())
     59 +        return false;
     60     if (m_data == rhs.m_data)
     61         return true;
     62     const Decimal result = compareTo(rhs);
     63     if (result.isNaN())
     64         return false;
     65     return result.isZero() || !result.isNegative();
     66 }