@@ -86,7 +86,7 @@ TransliteratorAlias::TransliteratorAlias(const UnicodeString& theAliasID,
8686 ID(),
8787 aliasesOrRules(theAliasID),
8888 transes(nullptr ),
89- compoundFilter(cpdFilter),
89+ compoundFilter(cpdFilter ? cpdFilter-> clone () : nullptr ),
9090 direction(UTRANS_FORWARD),
9191 type(TransliteratorAlias::SIMPLE) {
9292}
@@ -98,7 +98,7 @@ TransliteratorAlias::TransliteratorAlias(const UnicodeString& theID,
9898 ID(theID),
9999 aliasesOrRules(idBlocks),
100100 transes(adoptedTransliterators),
101- compoundFilter(cpdFilter),
101+ compoundFilter(cpdFilter ? cpdFilter-> clone () : nullptr ),
102102 direction(UTRANS_FORWARD),
103103 type(TransliteratorAlias::COMPOUND) {
104104}
@@ -116,6 +116,7 @@ TransliteratorAlias::TransliteratorAlias(const UnicodeString& theID,
116116
117117TransliteratorAlias::~TransliteratorAlias () {
118118 delete transes;
119+ delete compoundFilter;
119120}
120121
121122
@@ -132,7 +133,7 @@ Transliterator* TransliteratorAlias::create(UParseError& pe,
132133 return nullptr ;
133134 }
134135 if (compoundFilter != nullptr )
135- t->adoptFilter (compoundFilter->clone ());
136+ t->adoptFilter (static_cast <UnicodeSet*>( compoundFilter->clone () ));
136137 break ;
137138 case COMPOUND:
138139 {
0 commit comments