summaryrefslogtreecommitdiff
path: root/deps/icu-small/source/i18n/plurrule_impl.h
diff options
context:
space:
mode:
Diffstat (limited to 'deps/icu-small/source/i18n/plurrule_impl.h')
-rw-r--r--deps/icu-small/source/i18n/plurrule_impl.h52
1 files changed, 28 insertions, 24 deletions
diff --git a/deps/icu-small/source/i18n/plurrule_impl.h b/deps/icu-small/source/i18n/plurrule_impl.h
index 3ab445d584..f23ae16856 100644
--- a/deps/icu-small/source/i18n/plurrule_impl.h
+++ b/deps/icu-small/source/i18n/plurrule_impl.h
@@ -181,7 +181,6 @@ private:
kRangeList,
kSamples
};
-
};
enum PluralOperand {
@@ -311,32 +310,36 @@ public:
NONE,
MOD
} RuleOp;
- RuleOp op;
- int32_t opNum; // for mod expressions, the right operand of the mod.
- int32_t value; // valid for 'is' rules only.
- UVector32 *rangeList; // for 'in', 'within' rules. Null otherwise.
- UBool negated; // TRUE for negated rules.
- UBool integerOnly; // TRUE for 'within' rules.
- tokenType digitsType; // n | i | v | f constraint.
- AndConstraint *next;
-
- AndConstraint();
+ RuleOp op = AndConstraint::NONE;
+ int32_t opNum = -1; // for mod expressions, the right operand of the mod.
+ int32_t value = -1; // valid for 'is' rules only.
+ UVector32 *rangeList = nullptr; // for 'in', 'within' rules. Null otherwise.
+ UBool negated = FALSE; // TRUE for negated rules.
+ UBool integerOnly = FALSE; // TRUE for 'within' rules.
+ tokenType digitsType = none; // n | i | v | f constraint.
+ AndConstraint *next = nullptr;
+ // Internal error status, used for errors that occur during the copy constructor.
+ UErrorCode fInternalStatus = U_ZERO_ERROR;
+
+ AndConstraint() = default;
AndConstraint(const AndConstraint& other);
virtual ~AndConstraint();
- AndConstraint* add();
+ AndConstraint* add(UErrorCode& status);
// UBool isFulfilled(double number);
UBool isFulfilled(const IFixedDecimal &number);
};
class OrConstraint : public UMemory {
public:
- AndConstraint *childNode;
- OrConstraint *next;
- OrConstraint();
+ AndConstraint *childNode = nullptr;
+ OrConstraint *next = nullptr;
+ // Internal error status, used for errors that occur during the copy constructor.
+ UErrorCode fInternalStatus = U_ZERO_ERROR;
+ OrConstraint() = default;
OrConstraint(const OrConstraint& other);
virtual ~OrConstraint();
- AndConstraint* add();
+ AndConstraint* add(UErrorCode& status);
// UBool isFulfilled(double number);
UBool isFulfilled(const IFixedDecimal &number);
};
@@ -344,15 +347,16 @@ public:
class RuleChain : public UMemory {
public:
UnicodeString fKeyword;
- RuleChain *fNext;
- OrConstraint *ruleHeader;
+ RuleChain *fNext = nullptr;
+ OrConstraint *ruleHeader = nullptr;
UnicodeString fDecimalSamples; // Samples strings from rule source
UnicodeString fIntegerSamples; // without @decimal or @integer, otherwise unprocessed.
- UBool fDecimalSamplesUnbounded;
- UBool fIntegerSamplesUnbounded;
-
+ UBool fDecimalSamplesUnbounded = FALSE;
+ UBool fIntegerSamplesUnbounded = FALSE;
+ // Internal error status, used for errors that occur during the copy constructor.
+ UErrorCode fInternalStatus = U_ZERO_ERROR;
- RuleChain();
+ RuleChain() = default;
RuleChain(const RuleChain& other);
virtual ~RuleChain();
@@ -386,8 +390,8 @@ class U_I18N_API PluralAvailableLocalesEnumeration: public StringEnumeration {
virtual int32_t count(UErrorCode& status) const;
private:
UErrorCode fOpenStatus;
- UResourceBundle *fLocales;
- UResourceBundle *fRes;
+ UResourceBundle *fLocales = nullptr;
+ UResourceBundle *fRes = nullptr;
};
U_NAMESPACE_END