mirror of
https://gitlab.winehq.org/wine/wine-gecko.git
synced 2024-09-13 09:24:08 -07:00
Bug 1208357 - Fix -Wshadow warnings in mfbt/decimal. r=Ms2ger sr=Waldo
This commit is contained in:
parent
46787db139
commit
69ac071e6d
@ -123,8 +123,8 @@ Decimal SpecialValueHandler::value() const
|
|||||||
// This class is used for 128 bit unsigned integer arithmetic.
|
// This class is used for 128 bit unsigned integer arithmetic.
|
||||||
class UInt128 {
|
class UInt128 {
|
||||||
public:
|
public:
|
||||||
UInt128(uint64_t low, uint64_t high)
|
UInt128(uint64_t aLow, uint64_t aHigh)
|
||||||
: m_high(high), m_low(low)
|
: m_high(aHigh), m_low(aLow)
|
||||||
{
|
{
|
||||||
}
|
}
|
||||||
|
|
||||||
@ -229,41 +229,41 @@ static uint64_t scaleUp(uint64_t x, int n)
|
|||||||
|
|
||||||
using namespace DecimalPrivate;
|
using namespace DecimalPrivate;
|
||||||
|
|
||||||
Decimal::EncodedData::EncodedData(Sign sign, FormatClass formatClass)
|
Decimal::EncodedData::EncodedData(Sign aSign, FormatClass aFormatClass)
|
||||||
: m_coefficient(0)
|
: m_coefficient(0)
|
||||||
, m_exponent(0)
|
, m_exponent(0)
|
||||||
, m_formatClass(formatClass)
|
, m_formatClass(aFormatClass)
|
||||||
, m_sign(sign)
|
, m_sign(aSign)
|
||||||
{
|
{
|
||||||
}
|
}
|
||||||
|
|
||||||
Decimal::EncodedData::EncodedData(Sign sign, int exponent, uint64_t coefficient)
|
Decimal::EncodedData::EncodedData(Sign aSign, int aExponent, uint64_t aCoefficient)
|
||||||
: m_formatClass(coefficient ? ClassNormal : ClassZero)
|
: m_formatClass(aCoefficient ? ClassNormal : ClassZero)
|
||||||
, m_sign(sign)
|
, m_sign(aSign)
|
||||||
{
|
{
|
||||||
if (exponent >= ExponentMin && exponent <= ExponentMax) {
|
if (aExponent >= ExponentMin && aExponent <= ExponentMax) {
|
||||||
while (coefficient > MaxCoefficient) {
|
while (aCoefficient > MaxCoefficient) {
|
||||||
coefficient /= 10;
|
aCoefficient /= 10;
|
||||||
++exponent;
|
++aExponent;
|
||||||
}
|
}
|
||||||
}
|
}
|
||||||
|
|
||||||
if (exponent > ExponentMax) {
|
if (aExponent > ExponentMax) {
|
||||||
m_coefficient = 0;
|
m_coefficient = 0;
|
||||||
m_exponent = 0;
|
m_exponent = 0;
|
||||||
m_formatClass = ClassInfinity;
|
m_formatClass = ClassInfinity;
|
||||||
return;
|
return;
|
||||||
}
|
}
|
||||||
|
|
||||||
if (exponent < ExponentMin) {
|
if (aExponent < ExponentMin) {
|
||||||
m_coefficient = 0;
|
m_coefficient = 0;
|
||||||
m_exponent = 0;
|
m_exponent = 0;
|
||||||
m_formatClass = ClassZero;
|
m_formatClass = ClassZero;
|
||||||
return;
|
return;
|
||||||
}
|
}
|
||||||
|
|
||||||
m_coefficient = coefficient;
|
m_coefficient = aCoefficient;
|
||||||
m_exponent = static_cast<int16_t>(exponent);
|
m_exponent = static_cast<int16_t>(aExponent);
|
||||||
}
|
}
|
||||||
|
|
||||||
bool Decimal::EncodedData::operator==(const EncodedData& another) const
|
bool Decimal::EncodedData::operator==(const EncodedData& another) const
|
||||||
@ -279,8 +279,8 @@ Decimal::Decimal(int32_t i32)
|
|||||||
{
|
{
|
||||||
}
|
}
|
||||||
|
|
||||||
Decimal::Decimal(Sign sign, int exponent, uint64_t coefficient)
|
Decimal::Decimal(Sign aSign, int aExponent, uint64_t aCoefficient)
|
||||||
: m_data(sign, coefficient ? exponent : 0, coefficient)
|
: m_data(aSign, aCoefficient ? aExponent : 0, aCoefficient)
|
||||||
{
|
{
|
||||||
}
|
}
|
||||||
|
|
||||||
@ -484,22 +484,22 @@ Decimal Decimal::operator/(const Decimal& rhs) const
|
|||||||
if (lhs.isZero())
|
if (lhs.isZero())
|
||||||
return Decimal(resultSign, resultExponent, 0);
|
return Decimal(resultSign, resultExponent, 0);
|
||||||
|
|
||||||
uint64_t remainder = lhs.m_data.coefficient();
|
uint64_t lhsRemainder = lhs.m_data.coefficient();
|
||||||
const uint64_t divisor = rhs.m_data.coefficient();
|
const uint64_t divisor = rhs.m_data.coefficient();
|
||||||
uint64_t result = 0;
|
uint64_t result = 0;
|
||||||
while (result < MaxCoefficient / 100) {
|
while (result < MaxCoefficient / 100) {
|
||||||
while (remainder < divisor) {
|
while (lhsRemainder < divisor) {
|
||||||
remainder *= 10;
|
lhsRemainder *= 10;
|
||||||
result *= 10;
|
result *= 10;
|
||||||
--resultExponent;
|
--resultExponent;
|
||||||
}
|
}
|
||||||
result += remainder / divisor;
|
result += lhsRemainder / divisor;
|
||||||
remainder %= divisor;
|
lhsRemainder %= divisor;
|
||||||
if (!remainder)
|
if (!lhsRemainder)
|
||||||
break;
|
break;
|
||||||
}
|
}
|
||||||
|
|
||||||
if (remainder > divisor / 2)
|
if (lhsRemainder > divisor / 2)
|
||||||
++result;
|
++result;
|
||||||
|
|
||||||
return Decimal(resultSign, resultExponent, result);
|
return Decimal(resultSign, resultExponent, result);
|
||||||
|
@ -93,7 +93,7 @@ public:
|
|||||||
bool isSpecial() const { return m_formatClass == ClassInfinity || m_formatClass == ClassNaN; }
|
bool isSpecial() const { return m_formatClass == ClassInfinity || m_formatClass == ClassNaN; }
|
||||||
bool isZero() const { return m_formatClass == ClassZero; }
|
bool isZero() const { return m_formatClass == ClassZero; }
|
||||||
Sign sign() const { return m_sign; }
|
Sign sign() const { return m_sign; }
|
||||||
void setSign(Sign sign) { m_sign = sign; }
|
void setSign(Sign aSign) { m_sign = aSign; }
|
||||||
|
|
||||||
private:
|
private:
|
||||||
enum FormatClass {
|
enum FormatClass {
|
||||||
|
171
mfbt/decimal/fix-wshadow-warnings.patch
Normal file
171
mfbt/decimal/fix-wshadow-warnings.patch
Normal file
@ -0,0 +1,171 @@
|
|||||||
|
diff --git a/mfbt/decimal/Decimal.cpp b/mfbt/decimal/Decimal.cpp
|
||||||
|
--- a/mfbt/decimal/Decimal.cpp
|
||||||
|
+++ b/mfbt/decimal/Decimal.cpp
|
||||||
|
@@ -118,18 +118,18 @@ Decimal SpecialValueHandler::value() con
|
||||||
|
ASSERT_NOT_REACHED();
|
||||||
|
return m_lhs;
|
||||||
|
}
|
||||||
|
}
|
||||||
|
|
||||||
|
// This class is used for 128 bit unsigned integer arithmetic.
|
||||||
|
class UInt128 {
|
||||||
|
public:
|
||||||
|
- UInt128(uint64_t low, uint64_t high)
|
||||||
|
- : m_high(high), m_low(low)
|
||||||
|
+ UInt128(uint64_t aLow, uint64_t aHigh)
|
||||||
|
+ : m_high(aHigh), m_low(aLow)
|
||||||
|
{
|
||||||
|
}
|
||||||
|
|
||||||
|
UInt128& operator/=(uint32_t);
|
||||||
|
|
||||||
|
uint64_t high() const { return m_high; }
|
||||||
|
uint64_t low() const { return m_low; }
|
||||||
|
|
||||||
|
@@ -224,68 +224,68 @@ static uint64_t scaleUp(uint64_t x, int
|
||||||
|
z = z * z;
|
||||||
|
}
|
||||||
|
}
|
||||||
|
|
||||||
|
} // namespace DecimalPrivate
|
||||||
|
|
||||||
|
using namespace DecimalPrivate;
|
||||||
|
|
||||||
|
-Decimal::EncodedData::EncodedData(Sign sign, FormatClass formatClass)
|
||||||
|
+Decimal::EncodedData::EncodedData(Sign aSign, FormatClass aFormatClass)
|
||||||
|
: m_coefficient(0)
|
||||||
|
, m_exponent(0)
|
||||||
|
- , m_formatClass(formatClass)
|
||||||
|
- , m_sign(sign)
|
||||||
|
+ , m_formatClass(aFormatClass)
|
||||||
|
+ , m_sign(aSign)
|
||||||
|
{
|
||||||
|
}
|
||||||
|
|
||||||
|
-Decimal::EncodedData::EncodedData(Sign sign, int exponent, uint64_t coefficient)
|
||||||
|
- : m_formatClass(coefficient ? ClassNormal : ClassZero)
|
||||||
|
- , m_sign(sign)
|
||||||
|
+Decimal::EncodedData::EncodedData(Sign aSign, int aExponent, uint64_t aCoefficient)
|
||||||
|
+ : m_formatClass(aCoefficient ? ClassNormal : ClassZero)
|
||||||
|
+ , m_sign(aSign)
|
||||||
|
{
|
||||||
|
- if (exponent >= ExponentMin && exponent <= ExponentMax) {
|
||||||
|
- while (coefficient > MaxCoefficient) {
|
||||||
|
- coefficient /= 10;
|
||||||
|
- ++exponent;
|
||||||
|
+ if (aExponent >= ExponentMin && aExponent <= ExponentMax) {
|
||||||
|
+ while (aCoefficient > MaxCoefficient) {
|
||||||
|
+ aCoefficient /= 10;
|
||||||
|
+ ++aExponent;
|
||||||
|
}
|
||||||
|
}
|
||||||
|
|
||||||
|
- if (exponent > ExponentMax) {
|
||||||
|
+ if (aExponent > ExponentMax) {
|
||||||
|
m_coefficient = 0;
|
||||||
|
m_exponent = 0;
|
||||||
|
m_formatClass = ClassInfinity;
|
||||||
|
return;
|
||||||
|
}
|
||||||
|
|
||||||
|
- if (exponent < ExponentMin) {
|
||||||
|
+ if (aExponent < ExponentMin) {
|
||||||
|
m_coefficient = 0;
|
||||||
|
m_exponent = 0;
|
||||||
|
m_formatClass = ClassZero;
|
||||||
|
return;
|
||||||
|
}
|
||||||
|
|
||||||
|
- m_coefficient = coefficient;
|
||||||
|
- m_exponent = static_cast<int16_t>(exponent);
|
||||||
|
+ m_coefficient = aCoefficient;
|
||||||
|
+ m_exponent = static_cast<int16_t>(aExponent);
|
||||||
|
}
|
||||||
|
|
||||||
|
bool Decimal::EncodedData::operator==(const EncodedData& another) const
|
||||||
|
{
|
||||||
|
return m_sign == another.m_sign
|
||||||
|
&& m_formatClass == another.m_formatClass
|
||||||
|
&& m_exponent == another.m_exponent
|
||||||
|
&& m_coefficient == another.m_coefficient;
|
||||||
|
}
|
||||||
|
|
||||||
|
Decimal::Decimal(int32_t i32)
|
||||||
|
: m_data(i32 < 0 ? Negative : Positive, 0, i32 < 0 ? static_cast<uint64_t>(-static_cast<int64_t>(i32)) : static_cast<uint64_t>(i32))
|
||||||
|
{
|
||||||
|
}
|
||||||
|
|
||||||
|
-Decimal::Decimal(Sign sign, int exponent, uint64_t coefficient)
|
||||||
|
- : m_data(sign, coefficient ? exponent : 0, coefficient)
|
||||||
|
+Decimal::Decimal(Sign aSign, int aExponent, uint64_t aCoefficient)
|
||||||
|
+ : m_data(aSign, aCoefficient ? aExponent : 0, aCoefficient)
|
||||||
|
{
|
||||||
|
}
|
||||||
|
|
||||||
|
Decimal::Decimal(const EncodedData& data)
|
||||||
|
: m_data(data)
|
||||||
|
{
|
||||||
|
}
|
||||||
|
|
||||||
|
@@ -479,32 +479,32 @@ Decimal Decimal::operator/(const Decimal
|
||||||
|
if (rhs.isZero())
|
||||||
|
return lhs.isZero() ? nan() : infinity(resultSign);
|
||||||
|
|
||||||
|
int resultExponent = lhs.exponent() - rhs.exponent();
|
||||||
|
|
||||||
|
if (lhs.isZero())
|
||||||
|
return Decimal(resultSign, resultExponent, 0);
|
||||||
|
|
||||||
|
- uint64_t remainder = lhs.m_data.coefficient();
|
||||||
|
+ uint64_t lhsRemainder = lhs.m_data.coefficient();
|
||||||
|
const uint64_t divisor = rhs.m_data.coefficient();
|
||||||
|
uint64_t result = 0;
|
||||||
|
while (result < MaxCoefficient / 100) {
|
||||||
|
- while (remainder < divisor) {
|
||||||
|
- remainder *= 10;
|
||||||
|
+ while (lhsRemainder < divisor) {
|
||||||
|
+ lhsRemainder *= 10;
|
||||||
|
result *= 10;
|
||||||
|
--resultExponent;
|
||||||
|
}
|
||||||
|
- result += remainder / divisor;
|
||||||
|
- remainder %= divisor;
|
||||||
|
- if (!remainder)
|
||||||
|
+ result += lhsRemainder / divisor;
|
||||||
|
+ lhsRemainder %= divisor;
|
||||||
|
+ if (!lhsRemainder)
|
||||||
|
break;
|
||||||
|
}
|
||||||
|
|
||||||
|
- if (remainder > divisor / 2)
|
||||||
|
+ if (lhsRemainder > divisor / 2)
|
||||||
|
++result;
|
||||||
|
|
||||||
|
return Decimal(resultSign, resultExponent, result);
|
||||||
|
}
|
||||||
|
|
||||||
|
bool Decimal::operator==(const Decimal& rhs) const
|
||||||
|
{
|
||||||
|
if (isNaN() || rhs.isNaN())
|
||||||
|
diff --git a/mfbt/decimal/Decimal.h b/mfbt/decimal/Decimal.h
|
||||||
|
--- a/mfbt/decimal/Decimal.h
|
||||||
|
+++ b/mfbt/decimal/Decimal.h
|
||||||
|
@@ -88,17 +88,17 @@ public:
|
||||||
|
int countDigits() const;
|
||||||
|
int exponent() const { return m_exponent; }
|
||||||
|
bool isFinite() const { return !isSpecial(); }
|
||||||
|
bool isInfinity() const { return m_formatClass == ClassInfinity; }
|
||||||
|
bool isNaN() const { return m_formatClass == ClassNaN; }
|
||||||
|
bool isSpecial() const { return m_formatClass == ClassInfinity || m_formatClass == ClassNaN; }
|
||||||
|
bool isZero() const { return m_formatClass == ClassZero; }
|
||||||
|
Sign sign() const { return m_sign; }
|
||||||
|
- void setSign(Sign sign) { m_sign = sign; }
|
||||||
|
+ void setSign(Sign aSign) { m_sign = aSign; }
|
||||||
|
|
||||||
|
private:
|
||||||
|
enum FormatClass {
|
||||||
|
ClassInfinity,
|
||||||
|
ClassNormal,
|
||||||
|
ClassNaN,
|
||||||
|
ClassZero,
|
||||||
|
};
|
@ -63,4 +63,4 @@ patch -p3 < zero-serialization.patch
|
|||||||
patch -p3 < comparison-with-nan.patch
|
patch -p3 < comparison-with-nan.patch
|
||||||
patch -p3 < mfbt-abi-markers.patch
|
patch -p3 < mfbt-abi-markers.patch
|
||||||
patch -p3 < to-moz-dependencies.patch
|
patch -p3 < to-moz-dependencies.patch
|
||||||
|
patch -p3 < fix-wshadow-warnings.patch
|
||||||
|
Loading…
Reference in New Issue
Block a user