aboutsummaryrefslogtreecommitdiff
path: root/src/util.c
diff options
context:
space:
mode:
authordrh <>2023-04-12 18:57:50 +0000
committerdrh <>2023-04-12 18:57:50 +0000
commit6b507423a0a67a589a85e007da1b21dfb9e2ba9b (patch)
treea79e9ab9d6548cea1f156667ffa77e55c0b0fa20 /src/util.c
parent7877dca93f56da8c541c8952eba6938ed8984877 (diff)
downloadsqlite-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.c14
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;
}
/*