Performance optimization on sqlite3_vsnprintf().

FossilOrigin-Name: 4430e6e96dbf3d0b464776c132838dd3e456716e0ae5972fc7e0ece13b56ea25
This commit is contained in:
drh
2023-02-25 12:50:54 +00:00
parent 96705c1d7a
commit 0f8aebbfcf
3 changed files with 20 additions and 10 deletions
+13 -3
View File
@@ -1361,12 +1361,22 @@ char *sqlite3_vsnprintf(int n, char *zBuf, const char *zFormat, va_list ap){
return zBuf;
}
char *sqlite3_snprintf(int n, char *zBuf, const char *zFormat, ...){
char *z;
StrAccum acc;
va_list ap;
if( n<=0 ) return zBuf;
#ifdef SQLITE_ENABLE_API_ARMOR
if( zBuf==0 || zFormat==0 ) {
(void)SQLITE_MISUSE_BKPT;
if( zBuf ) zBuf[0] = 0;
return zBuf;
}
#endif
sqlite3StrAccumInit(&acc, 0, zBuf, n, 0);
va_start(ap,zFormat);
z = sqlite3_vsnprintf(n, zBuf, zFormat, ap);
sqlite3_str_vappendf(&acc, zFormat, ap);
va_end(ap);
return z;
zBuf[acc.nChar] = 0;
return zBuf;
}
/*