aboutsummaryrefslogtreecommitdiff
path: root/ext/wasm/tester1.c-pp.js
diff options
context:
space:
mode:
authorstephan <stephan@noemail.net>2025-07-11 19:34:30 +0000
committerstephan <stephan@noemail.net>2025-07-11 19:34:30 +0000
commitc493e4516aa4b45f98c29e546bb424974839846a (patch)
tree8ee43ad02625cd9585415f186cd21bf21a8d55b6 /ext/wasm/tester1.c-pp.js
parent6fd9469a3281ae67929bfc518d0e80674ec15378 (diff)
downloadsqlite-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.js9
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();