Lines Matching defs:status
76 SPUStringPool::SPUStringPool(UErrorCode &status) : fVec(nullptr), fHash(nullptr) {
77 LocalPointer<UVector> vec(new UVector(status), status);
78 if (U_FAILURE(status)) {
87 &status);
128 void SPUStringPool::sort(UErrorCode &status) {
129 fVec->sort(SPUStringCompare, status);
133 SPUString *SPUStringPool::addString(UnicodeString *src, UErrorCode &status) {
135 if (U_FAILURE(status)) {
142 LocalPointer<SPUString> spuStr(new SPUString(std::move(lpSrc)), status);
144 fVec->adoptElement(spuStr.orphan(), status);
145 if (U_FAILURE(status)) {
148 uhash_put(fHash, src, hashedString, &status);
154 ConfusabledataBuilder::ConfusabledataBuilder(SpoofImpl *spImpl, UErrorCode &status) :
167 if (U_FAILURE(status)) {
171 fTable = uhash_open(uhash_hashLong, uhash_compareLong, NULL, &status);
175 status = U_MEMORY_ALLOCATION_ERROR;
179 fKeyVec = new UVector(status);
181 status = U_MEMORY_ALLOCATION_ERROR;
185 fValueVec = new UVector(status);
187 status = U_MEMORY_ALLOCATION_ERROR;
191 stringPool = new SPUStringPool(status);
193 status = U_MEMORY_ALLOCATION_ERROR;
213 int32_t confusablesLen, int32_t *errorType, UParseError *pe, UErrorCode &status) {
215 if (U_FAILURE(status)) {
218 ConfusabledataBuilder builder(spImpl, status);
219 builder.build(confusables, confusablesLen, status);
220 if (U_FAILURE(status) && errorType != NULL) {
228 UErrorCode &status) {
232 if (U_FAILURE(status)) {
235 u_strFromUTF8(NULL, 0, &inputLen, confusables, confusablesLen, &status);
236 if (status != U_BUFFER_OVERFLOW_ERROR) {
239 status = U_ZERO_ERROR;
242 status = U_MEMORY_ALLOCATION_ERROR;
245 u_strFromUTF8(fInput, inputLen+1, NULL, confusables, confusablesLen, &status);
266 fParseLine = uregex_open(pattern.getBuffer(), pattern.length(), 0, NULL, &status);
271 fParseHexNum = uregex_open(pattern.getBuffer(), pattern.length(), 0, NULL, &status);
280 uregex_setText(fParseLine, fInput, inputLen, &status);
281 while (uregex_findNext(fParseLine, &status)) {
283 if (uregex_start(fParseLine, 7, &status) >= 0) {
287 if (uregex_start(fParseLine, 8, &status) >= 0) {
289 status = U_PARSE_ERROR;
295 UChar32 keyChar = SpoofImpl::ScanHex(fInput, uregex_start(fParseLine, 1, &status),
296 uregex_end(fParseLine, 1, &status), status);
298 int32_t mapStringStart = uregex_start(fParseLine, 2, &status);
299 int32_t mapStringLength = uregex_end(fParseLine, 2, &status) - mapStringStart;
300 uregex_setText(fParseHexNum, &fInput[mapStringStart], mapStringLength, &status);
304 status = U_MEMORY_ALLOCATION_ERROR;
307 while (uregex_findNext(fParseHexNum, &status)) {
308 UChar32 c = SpoofImpl::ScanHex(&fInput[mapStringStart], uregex_start(fParseHexNum, 1, &status),
309 uregex_end(fParseHexNum, 1, &status), status);
316 SPUString *smapString = stringPool->addString(mapString, status);
321 uhash_iput(fTable, keyChar, smapString, &status);
322 if (U_FAILURE(status)) { return; }
337 stringPool->sort(status);
378 status = U_ILLEGAL_ARGUMENT_ERROR;
386 fKeyVec->addElement(key, status);
387 fValueVec->addElement(value, status);
392 outputData(status);
408 void ConfusabledataBuilder::outputData(UErrorCode &status) {
418 static_cast<int32_t *>(fSpoofImpl->fSpoofData->reserveSpace(numKeys*sizeof(int32_t), status));
419 if (U_FAILURE(status)) {
443 static_cast<uint16_t *>(fSpoofImpl->fSpoofData->reserveSpace(numKeys*sizeof(uint16_t), status));
444 if (U_FAILURE(status)) {
463 static_cast<UChar *>(fSpoofImpl->fSpoofData->reserveSpace(stringsLength*sizeof(UChar)+2, status));
464 if (U_FAILURE(status)) {
467 fStringTable->extract(strings, stringsLength+1, status);