diff --git a/icu4c/source/common/ucnv_io.c b/icu4c/source/common/ucnv_io.c index 26a064852be..1081fea4c37 100644 --- a/icu4c/source/common/ucnv_io.c +++ b/icu4c/source/common/ucnv_io.c @@ -469,12 +469,9 @@ ucnv_io_getAvailableConverter(uint16_t n, UErrorCode *pErrorCode) { U_CFUNC void ucnv_io_fillAvailableConverters(const char **aliases, UErrorCode *pErrorCode) { if(haveAliasData(pErrorCode)) { - const uint16_t *p=converterTable; - uint16_t count=*p++; - while(count>0) { - *aliases++=(const char *)aliasTable+*p; - p+=2; - --count; + uint16_t count = 0; + while (count < availableConverterCount) { + *aliases++=availableConverters[count++]; } } }