From: stephan Date: Fri, 11 Jul 2025 19:34:30 +0000 (+0000) Subject: Correct a one-too-many-exclamation-points bug which caused the opposite of intended... X-Git-Url: http://git.ipfire.org/cgi-bin/gitweb.cgi?a=commitdiff_plain;h=c493e4516aa4b45f98c29e546bb424974839846a;p=thirdparty%2Fsqlite.git Correct a one-too-many-exclamation-points bug which caused the opposite of intended semantics in oo1.Stmt.pointer ownership. FossilOrigin-Name: 91e709f36d36174534b4cf4ff548a558e66cca5e23a6c8c106bc43375fc3ce72 --- diff --git a/ext/wasm/api/sqlite3-api-oo1.c-pp.js b/ext/wasm/api/sqlite3-api-oo1.c-pp.js index 1473e4e45e..f92dde48a7 100644 --- a/ext/wasm/api/sqlite3-api-oo1.c-pp.js +++ b/ext/wasm/api/sqlite3-api-oo1.c-pp.js @@ -532,7 +532,7 @@ globalThis.sqlite3ApiBootstrap.initializers.push(function(sqlite3){ } this.db = arguments[0]; __ptrMap.set(this, arguments[1]); - if( arguments.length>3 && !!arguments[3] ){ + if( arguments.length>3 && !arguments[3] ){ __doesNotOwnHandle.add(this); } }; diff --git a/ext/wasm/tester1.c-pp.js b/ext/wasm/tester1.c-pp.js index f2fdeebed6..dd70024abb 100644 --- a/ext/wasm/tester1.c-pp.js +++ b/ext/wasm/tester1.c-pp.js @@ -1273,15 +1273,22 @@ globalThis.sqlite3InitModule = sqlite3InitModule; } T.assert( dw===dw.exec("select 1") ); dw.affirmOpen(); - rc = capi.sqlite3_prepare_v2( dw, "select 1", -1, ppOut, 0 ); + const select1 = "select 1"; + rc = capi.sqlite3_prepare_v2( dw, select1, -1, ppOut, 0 ); T.assert( 0===rc, 'prepare_v2() rc='+rc ); pStmt = wasm.peekPtr(ppOut); + T.assert( pStmt && wasm.isPtr(pStmt), 'pStmt is valid?' ); try { + //log( "capi.sqlite3_sql() =",capi.sqlite3_sql(pStmt)); + T.assert( select1 === capi.sqlite3_sql(pStmt), 'SQL mismatch' ); q = sqlite3.oo1.Stmt.wrapHandle(dw, pStmt, false); + //log("q@"+pStmt+" does not own handle"); T.assert( q.step(), "step()" ) .assert( !q.step(), "!step()" ); q.finalize(); q = undefined; + T.assert( select1 === capi.sqlite3_sql(pStmt), 'SQL mismatch' + /* This will fail if we've mismanaged pStmt's lifetime */); q = sqlite3.oo1.Stmt.wrapHandle(dw, pStmt, true); pStmt = 0; q.reset(); diff --git a/manifest b/manifest index 20cc623889..cc57a87555 100644 --- a/manifest +++ b/manifest @@ -1,5 +1,5 @@ -C Minor\sJS\sdoc\stweaks. -D 2025-07-10T09:25:57.652 +C Correct\sa\sone-too-many-exclamation-points\sbug\swhich\scaused\sthe\sopposite\sof\sintended\ssemantics\sin\soo1.Stmt.pointer\sownership. +D 2025-07-11T19:34:30.706 F .fossil-settings/binary-glob 61195414528fb3ea9693577e1980230d78a1f8b0a54c78cf1b9b24d0a409ed6a x F .fossil-settings/empty-dirs dbb81e8fc0401ac46a1491ab34a7f2c7c0452f2f06b54ebb845d024ca8283ef1 F .fossil-settings/ignore-glob 35175cdfcf539b2318cb04a9901442804be81cd677d8b889fcc9149c21f239ea @@ -641,7 +641,7 @@ F ext/wasm/api/post-js-header.js 53740d824e5d9027eb1e6fd59e216abbd2136740ce260ea F ext/wasm/api/pre-js.c-pp.js a614a2c82b12c4d96d8e3ba77330329efc53c4d56a8a7e60ade900f341866cfb F ext/wasm/api/sqlite3-api-cleanup.js 3ac1786e461ada63033143be8c3b00b26b939540661f3e839515bb92f2e35359 F ext/wasm/api/sqlite3-api-glue.c-pp.js 0b76510f3650053bac67ca8947cb6ab9d050ad2218118a2e7796dd37be832ffa -F ext/wasm/api/sqlite3-api-oo1.c-pp.js bc472af6c3aada06ad94b332bf23cef2407932e5bb4c0c34c12a6ced343c2e51 +F ext/wasm/api/sqlite3-api-oo1.c-pp.js 19067fa3939d355db7bb5b02ee79dbb5e7ca4a8bd24216e24a2b4320b81ebb8d F ext/wasm/api/sqlite3-api-prologue.js 8708570165f5b4bce9a78ccd91bc9ddf8735970ac1c4d659e36c9a7d9a644bb4 F ext/wasm/api/sqlite3-api-worker1.c-pp.js f646a65257973b8c4481f8a6a216370b85644f23e64b126e7ae113570587c0ab F ext/wasm/api/sqlite3-license-version-header.js 0c807a421f0187e778dc1078f10d2994b915123c1223fe752b60afdcd1263f89 @@ -698,7 +698,7 @@ F ext/wasm/test-opfs-vfs.html 1f2d672f3f3fce810dfd48a8d56914aba22e45c6834e262555 F ext/wasm/test-opfs-vfs.js 1618670e466f424aa289859fe0ec8ded223e42e9e69b5c851f809baaaca1a00c F ext/wasm/tester1-worker.html ebc4b820a128963afce328ecf63ab200bd923309eb939f4110510ab449e9814c F ext/wasm/tester1.c-pp.html 1c1bc78b858af2019e663b1a31e76657b73dc24bede28ca92fbe917c3a972af2 -F ext/wasm/tester1.c-pp.js 830749ee21bde538f52e150878c0078a3f6d294ba183900efd8488a9e6debf4f +F ext/wasm/tester1.c-pp.js 0abba4bd54f6b22adaadf836c04d3163399f7a8a490fd60f20daac5f9c42b47d F ext/wasm/tests/opfs/concurrency/index.html 657578a6e9ce1e9b8be951549ed93a6a471f4520a99e5b545928668f4285fb5e F ext/wasm/tests/opfs/concurrency/test.js d08889a5bb6e61937d0b8cbb78c9efbefbf65ad09f510589c779b7cc6a803a88 F ext/wasm/tests/opfs/concurrency/worker.js 0a8c1a3e6ebb38aabbee24f122693f1fb29d599948915c76906681bb7da1d3d2 @@ -2208,8 +2208,8 @@ F tool/version-info.c 3b36468a90faf1bbd59c65fd0eb66522d9f941eedd364fabccd7227350 F tool/warnings-clang.sh bbf6a1e685e534c92ec2bfba5b1745f34fb6f0bc2a362850723a9ee87c1b31a7 F tool/warnings.sh 1ad0169b022b280bcaaf94a7fa231591be96b514230ab5c98fbf15cd7df842dd F tool/win/sqlite.vsix deb315d026cc8400325c5863eef847784a219a2f -P 0ee19db02a9b9320681d4393d9ba52889d149eac8ee114fc7b7f52a57271c139 -R 9671bcb7870e122ad1976f1fae21a064 +P 34d893b4837be8bb679e9809befd98201dd79c8d2054f41429b18793b77e840f +R 3857d6c93e170f8a2978e6a4274a481e U stephan -Z adaaff03d3b0b893bc2eaac10b306778 +Z 42d47a808b11dbced254adeb3041a5ca # Remove this line to create a well-formed Fossil manifest. diff --git a/manifest.uuid b/manifest.uuid index 963b157be5..2eca880dc5 100644 --- a/manifest.uuid +++ b/manifest.uuid @@ -1 +1 @@ -34d893b4837be8bb679e9809befd98201dd79c8d2054f41429b18793b77e840f +91e709f36d36174534b4cf4ff548a558e66cca5e23a6c8c106bc43375fc3ce72