void CompoundTransliterator::setTransliterators(Transliterator* const transliterators[], int32_t transCount) { Transliterator** a = (Transliterator **)uprv_malloc(transCount * sizeof(Transliterator *)); if (a == NULL) { return; } int32_t i = 0; UBool failed = FALSE; for (i=0; i<transCount; ++i) { a[i] = transliterators[i]->clone(); if (a[i] == NULL) { failed = TRUE; break; } } if (failed && i > 0) { int32_t n; for (n = i-1; n >= 0; n--) { uprv_free(a[n]); a[n] = NULL; } return; } adoptTransliterators(a, transCount); }
void CompoundTransliterator::setTransliterators(Transliterator* const transliterators[], int32_t transCount) { Transliterator** a = (Transliterator **)uprv_malloc(transCount * sizeof(Transliterator *)); for (int32_t i=0; i<transCount; ++i) { a[i] = transliterators[i]->clone(); } adoptTransliterators(a, transCount); }