-RuleBasedCollator::adoptTailoring(CollationTailoring *t) {
- U_ASSERT(settings == NULL && data == NULL && tailoring == NULL);
+RuleBasedCollator::adoptTailoring(CollationTailoring *t, UErrorCode &errorCode) {
+ if(U_FAILURE(errorCode)) {
+ t->deleteIfZeroRefCount();
+ return;
+ }
+ U_ASSERT(settings == NULL && data == NULL && tailoring == NULL && cacheEntry == NULL);
+ cacheEntry = new CollationCacheEntry(t->actualLocale, t);
+ if(cacheEntry == NULL) {
+ errorCode = U_MEMORY_ALLOCATION_ERROR;
+ t->deleteIfZeroRefCount();
+ return;
+ }