Skip to content
Open
Show file tree
Hide file tree
Changes from all commits
Commits
File filter

Filter by extension

Filter by extension

Conversations
Failed to load comments.
Loading
Jump to
Jump to file
Failed to load files.
Loading
Diff view
Diff view
7 changes: 4 additions & 3 deletions icu4c/source/i18n/transreg.cpp
Original file line number Diff line number Diff line change
Expand Up @@ -86,7 +86,7 @@ TransliteratorAlias::TransliteratorAlias(const UnicodeString& theAliasID,
ID(),
aliasesOrRules(theAliasID),
transes(nullptr),
compoundFilter(cpdFilter),
compoundFilter(cpdFilter ? cpdFilter->clone() : nullptr),
direction(UTRANS_FORWARD),
type(TransliteratorAlias::SIMPLE) {
}
Expand All @@ -98,7 +98,7 @@ TransliteratorAlias::TransliteratorAlias(const UnicodeString& theID,
ID(theID),
aliasesOrRules(idBlocks),
transes(adoptedTransliterators),
compoundFilter(cpdFilter),
compoundFilter(cpdFilter ? cpdFilter->clone() : nullptr),
direction(UTRANS_FORWARD),
type(TransliteratorAlias::COMPOUND) {
}
Expand All @@ -116,6 +116,7 @@ TransliteratorAlias::TransliteratorAlias(const UnicodeString& theID,

TransliteratorAlias::~TransliteratorAlias() {
delete transes;
delete compoundFilter;
}


Expand All @@ -132,7 +133,7 @@ Transliterator* TransliteratorAlias::create(UParseError& pe,
return nullptr;
}
if (compoundFilter != nullptr)
t->adoptFilter(compoundFilter->clone());
t->adoptFilter(static_cast<UnicodeSet*>(compoundFilter->clone()));
break;
case COMPOUND:
{
Expand Down
4 changes: 2 additions & 2 deletions icu4c/source/i18n/transreg.h
Original file line number Diff line number Diff line change
Expand Up @@ -105,14 +105,14 @@ class TransliteratorAlias : public UMemory {
// Here ID is the ID, aliasID is the idBlock, trans is the
// contained RBT, and idSplitPoint is the offset in aliasID
// where the contained RBT goes. compoundFilter is the
// compound filter, and it is _not_ owned.
// compound filter, and it is owned (cloned from entry).
// 3. Rules
// Here ID is the ID, aliasID is the rules string.
// idSplitPoint is the UTransDirection.
UnicodeString ID;
UnicodeString aliasesOrRules;
UVector* transes; // owned
const UnicodeSet* compoundFilter; // alias
UnicodeSet* compoundFilter; // owned
UTransDirection direction;
enum { SIMPLE, COMPOUND, RULES } type;

Expand Down