U_CAPI UCollator* U_EXPORT2 ucol_openBinary(const uint8_t *bin, int32_t length, const UCollator *base, UErrorCode *status) { if(U_FAILURE(*status)) { return NULL; } RuleBasedCollator *coll = new RuleBasedCollator( bin, length, RuleBasedCollator::rbcFromUCollator(base), *status); if(coll == NULL) { *status = U_MEMORY_ALLOCATION_ERROR; return NULL; } if(U_FAILURE(*status)) { delete coll; return NULL; } return coll->toUCollator(); }