diff options
author | stephan <stephan@noemail.net> | 2025-07-11 19:34:30 +0000 |
---|---|---|
committer | stephan <stephan@noemail.net> | 2025-07-11 19:34:30 +0000 |
commit | c493e4516aa4b45f98c29e546bb424974839846a (patch) | |
tree | 8ee43ad02625cd9585415f186cd21bf21a8d55b6 /ext/wasm/tester1.c-pp.js | |
parent | 6fd9469a3281ae67929bfc518d0e80674ec15378 (diff) | |
download | sqlite-c493e4516aa4b45f98c29e546bb424974839846a.tar.gz sqlite-c493e4516aa4b45f98c29e546bb424974839846a.zip |
Correct a one-too-many-exclamation-points bug which caused the opposite of intended semantics in oo1.Stmt.pointer ownership.
FossilOrigin-Name: 91e709f36d36174534b4cf4ff548a558e66cca5e23a6c8c106bc43375fc3ce72
Diffstat (limited to 'ext/wasm/tester1.c-pp.js')
-rw-r--r-- | ext/wasm/tester1.c-pp.js | 9 |
1 files changed, 8 insertions, 1 deletions
diff --git a/ext/wasm/tester1.c-pp.js b/ext/wasm/tester1.c-pp.js index f2fdeebed..dd70024ab 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(); |