From: drh <> Date: Wed, 25 Mar 2026 21:23:23 +0000 (+0000) Subject: Fix an off-by-one error that cause a loop to (harmlessly) run more times X-Git-Tag: major-release~46 X-Git-Url: http://git.ipfire.org/gitweb.cgi?a=commitdiff_plain;h=3d58f022a80378f38b48b8c409a2e0592aaea87a;p=thirdparty%2Fsqlite.git Fix an off-by-one error that cause a loop to (harmlessly) run more times than necessary. Performance optimization, not a bug fix. FossilOrigin-Name: 58f4e058f1cbb798b8a48208c6310fd10ca9cd1fc7c550f3ed283cf38ae45c2f --- diff --git a/manifest b/manifest index ae52e9f573..a00ab7cee0 100644 --- a/manifest +++ b/manifest @@ -1,5 +1,5 @@ -C Performance\soptimization\swhen\szero-padding\sin\sprintf(). -D 2026-03-25T21:05:18.704 +C Fix\san\soff-by-one\serror\sthat\scause\sa\sloop\sto\s(harmlessly)\srun\smore\stimes\nthan\snecessary.\s\sPerformance\soptimization,\snot\sa\sbug\sfix. +D 2026-03-25T21:23:23.021 F .fossil-settings/binary-glob 61195414528fb3ea9693577e1980230d78a1f8b0a54c78cf1b9b24d0a409ed6a x F .fossil-settings/empty-dirs dbb81e8fc0401ac46a1491ab34a7f2c7c0452f2f06b54ebb845d024ca8283ef1 F .fossil-settings/ignore-glob 35175cdfcf539b2318cb04a9901442804be81cd677d8b889fcc9149c21f239ea @@ -798,7 +798,7 @@ F src/trigger.c 4bf3bfb3851d165e4404a9f9e69357345f3f7103378c07e07139fdd8aeb7bd20 F src/update.c 3e5e7ff66fa19ebe4d1b113d480639a24cc1175adbefabbd1a948a07f28e37cf F src/upsert.c 215328c3f91623c520ec8672c44323553f12caeb4f01b1090ebdca99fdf7b4f1 F src/utf.c 7267c3fb9e2467020507601af3354c2446c61f444387e094c779dccd5ca62165 -F src/util.c 2e5433101a395eda9e465fb7387436a6b06b95ba6b20a8f5ae372228d3d647e2 +F src/util.c 47245522b755618abd6aeb2c51e25339331b6f24eb6520ee6ad2c7bd73fd4eca F src/vacuum.c d3d35d8ae893d419ade5fa196d761a83bddcbb62137a1a157ae751ef38b26e82 F src/vdbe.c dbafc6f5762f9ae90d9dc9ed065a31743a8ceafbdbfb1a0a3a228921fb3cc36a F src/vdbe.h 70e862ac8a11b590f8c1eaac17a0078429d42bc4ea3f757a9af0f451dd966a71 @@ -2195,8 +2195,8 @@ F tool/warnings-clang.sh bbf6a1e685e534c92ec2bfba5b1745f34fb6f0bc2a362850723a9ee F tool/warnings.sh a554d13f6e5cf3760f041b87939e3d616ec6961859c3245e8ef701d1eafc2ca2 F tool/win/sqlite.vsix deb315d026cc8400325c5863eef847784a219a2f F tool/winmain.c 00c8fb88e365c9017db14c73d3c78af62194d9644feaf60e220ab0f411f3604c -P c818165fd709b813ab07788662bf69205ece2dcea41346609b3439950f900057 -R 5784240f99f10ba69ee88ee168660db5 +P dbd81abdc6633124e72999321db6fc8640851fa5eb063e6317a4c3e57b48dbaa +R 83396870d61c46958fe0688ee28ba9e3 U drh -Z 148dd6c39616c6fe7322257317ab64e5 +Z 852f9de7fcb576f54e2f0cced0d6affa # Remove this line to create a well-formed Fossil manifest. diff --git a/manifest.uuid b/manifest.uuid index ea5ab12780..ddcd37e68e 100644 --- a/manifest.uuid +++ b/manifest.uuid @@ -1 +1 @@ -dbd81abdc6633124e72999321db6fc8640851fa5eb063e6317a4c3e57b48dbaa +58f4e058f1cbb798b8a48208c6310fd10ca9cd1fc7c550f3ed283cf38ae45c2f diff --git a/src/util.c b/src/util.c index 896f25d7d3..75d6cc97ba 100644 --- a/src/util.c +++ b/src/util.c @@ -1406,7 +1406,7 @@ void sqlite3FpDecode(FpDecode *p, double r, int iRound, int mxRound){ int jj, kk; u64 v2; assert( z[0]!='0' ); - for(jj=14; z[jj-1]=='0'; jj--){} + for(jj=13; z[jj-1]=='0'; jj--){} v2 = z[0] - '0'; for(kk=1; kk