- int32_t length = reorderCodes.size();
- if(length == 1 && reorderCodes.elementAti(0) == UCOL_REORDER_CODE_DEFAULT) {
- // The root collator does not have a reordering, by definition.
- settings->resetReordering();
- return;
- }
- uint8_t table[256];
- baseData->makeReorderTable(reorderCodes.getBuffer(), length, table, errorCode);
- if(U_FAILURE(errorCode)) { return; }
- if(!settings->setReordering(reorderCodes.getBuffer(), length, table)) {
- errorCode = U_MEMORY_ALLOCATION_ERROR;
- }
+ settings->setReordering(*baseData, reorderCodes.getBuffer(), reorderCodes.size(), errorCode);