diff options
author | drh <> | 2023-04-12 18:57:50 +0000 |
---|---|---|
committer | drh <> | 2023-04-12 18:57:50 +0000 |
commit | 6b507423a0a67a589a85e007da1b21dfb9e2ba9b (patch) | |
tree | a79e9ab9d6548cea1f156667ffa77e55c0b0fa20 /src/util.c | |
parent | 7877dca93f56da8c541c8952eba6938ed8984877 (diff) | |
download | sqlite-6b507423a0a67a589a85e007da1b21dfb9e2ba9b.tar.gz sqlite-6b507423a0a67a589a85e007da1b21dfb9e2ba9b.zip |
Small performance enhancement to integer-to-text conversion.
FossilOrigin-Name: cfb3dba9b015ce7a75857978bfd2540b4d5be985d9d2ec4a5842b3089ed3da60
Diffstat (limited to 'src/util.c')
-rw-r--r-- | src/util.c | 14 |
1 files changed, 8 insertions, 6 deletions
diff --git a/src/util.c b/src/util.c index 632d317e3..8e3c6c9db 100644 --- a/src/util.c +++ b/src/util.c @@ -670,13 +670,15 @@ int sqlite3Int64ToText(i64 v, char *zOut){ } i = sizeof(zTemp)-2; zTemp[sizeof(zTemp)-1] = 0; - do{ - zTemp[i--] = (x%10) + '0'; + while( 1 /*exit-by-break*/ ){ + zTemp[i] = (x%10) + '0'; x = x/10; - }while( x ); - if( v<0 ) zTemp[i--] = '-'; - memcpy(zOut, &zTemp[i+1], sizeof(zTemp)-1-i); - return sizeof(zTemp)-2-i; + if( x==0 ) break; + i--; + }; + if( v<0 ) zTemp[--i] = '-'; + memcpy(zOut, &zTemp[i], sizeof(zTemp)-i); + return sizeof(zTemp)-1-i; } /* |