fix wrong error message bug in tstrerror
This commit is contained in:
parent
23693d9c53
commit
01db0de801
|
@ -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 "";
|
||||||
}
|
}
|
||||||
|
|
Loading…
Reference in New Issue