fix wrong error message bug in tstrerror

This commit is contained in:
localvar 2020-02-20 11:35:59 +08:00
parent 23693d9c53
commit 01db0de801
1 changed files with 19 additions and 11 deletions

View File

@ -39,7 +39,13 @@ int32_t* taosGetErrno() {
static int tsCompareTaosError(const void* a, const void* b) { static int tsCompareTaosError(const void* a, const void* b) {
const STaosError* x = (const STaosError*)a; const STaosError* x = (const STaosError*)a;
const STaosError* y = (const STaosError*)b; const STaosError* y = (const STaosError*)b;
return x->val - y->val; if (x->val < y->val) {
return -1;
}
if (x->val > y->val) {
return 1;
}
return 0;
} }
static pthread_once_t tsErrorInit = PTHREAD_ONCE_INIT; static pthread_once_t tsErrorInit = PTHREAD_ONCE_INIT;
@ -56,18 +62,20 @@ const char* tstrerror(int32_t err) {
return strerror(err & 0x0000ffff); return strerror(err & 0x0000ffff);
} }
int s = 0, e = sizeof(errors)/sizeof(errors[0]); size_t s = 0, e = sizeof(errors)/sizeof(errors[0]);
while (s < e) { while (s < e) {
int mid = (s + e) / 2; size_t mid = (s + e) / 2;
if (err > errors[mid].val) { int32_t val = errors[mid].val;
if (err > val) {
s = mid + 1; s = mid + 1;
} else if (err < errors[mid].val) { } else if (err < val) {
e = mid; e = mid;
} else if (err == errors[mid].val) { } else if (err == val) {
return errors[mid].str; return errors[mid].str;
} } else {
break; break;
} }
}
return ""; return "";
} }