function assumes case (1) and calls the underling C function
with:
- (pDb, sql, -1, ppStmt, null)
+ (pDb, sqlAsString, -1, ppStmt, null)
+
+ The pzTail argument is ignored in this case because its result
+ is meaningless when a string-type value is passed through
+ (because the string goes through another level of internal
+ conversion for WASM's sake and the result pointer would refer
+ to that conversion's memory, not the passed-in string).
If sql is not a string or Uint8Array, it must be a _pointer_ to
a string which was allocated via api.wasm.allocateUTF8OnStack()
for the C-side sqlite3_prepare_v2(). In case (2), the
underlying C function is called with:
- (pDb, sql, -1, ppStmt, pzTail)
+ (pDb, sqlAsPointer, -1, ppStmt, pzTail)
It returns its result and compiled statement as documented in
- the C API. Fetching the output pointer (4th argument) requires using
- api.wasm.getValue().
+ the C API. Fetching the output pointers (4th and 5th
+ parameters) requires using api.wasm.getValue().
*/
api.sqlite3_prepare_v2 = function(pDb, sql, sqlLen, ppStmt, pzTail){
if(sql instanceof Uint8Array) sql = uint8ToString(sql);
- /* ^^^ TODO: confirm whether this conversion is really
- necessary or whether passing on the array as-is will work
- as if it were a string. */
switch(typeof sql){
case 'string': return prepareMethods.basic(pDb, sql, -1, ppStmt, null);
case 'number': return prepareMethods.full(pDb, sql, -1, ppStmt, pzTail);
}
};
- /** Populate api.wasm... */
+ /** Populate api.wasm with several members of the module object... */
['getValue','setValue', 'stackSave', 'stackRestore', 'stackAlloc',
'allocateUTF8OnStack', '_malloc', '_free',
'addFunction', 'removeFunction'
-C wasm\sbinding:\sconsolidated\sthe\stwo\ssqlite3_prepare_v2()\sbindings\sbehind\sa\ssingle\sdispathcer.\sVarious\sinternal\scleanups\sand\srefactoring.\sBranched\sbecause\strunk\sis\sin\spencils-down\smode\sfor\spending\s3.39\srelease.
-D 2022-06-25T02:37:57.122
+C Minor\swasm\sdoc\stweaks.
+D 2022-06-25T02:54:20.783
F .fossil-settings/empty-dirs dbb81e8fc0401ac46a1491ab34a7f2c7c0452f2f06b54ebb845d024ca8283ef1
F .fossil-settings/ignore-glob 35175cdfcf539b2318cb04a9901442804be81cd677d8b889fcc9149c21f239ea
F LICENSE.md df5091916dbb40e6e9686186587125e1b2ff51f022cc334e886c19a0e9982724
F ext/fiddle/fiddle.html 550c5aafce40bd218de9bf26192749f69f9b10bc379423ecd2e162bcef885c08
F ext/fiddle/fiddle.js 812f9954cc7c4b191884ad171f36fcf2d0112d0a7ecfdf6087896833a0c079a8
F ext/fiddle/index.md d9c1c308d8074341bc3b11d1d39073cd77754cb3ca9aeb949f23fdd8323d81cf
-F ext/fiddle/sqlite3-api.js aff4fe5583d02cb7207cc27a92d2cc708fca8a0eba14339f519059298f6bbc5e
+F ext/fiddle/sqlite3-api.js c54f0ee6a65a59284e6b0184f556376b35f5996b6b82607d7275a95f759a380a
F ext/fiddle/sqlite3-worker.js a9c2b614beca187dbdd8c053ec2770cc61ec1ac9c0ec6398ceb49a79f705a421
F ext/fiddle/testing.css 750572dded671d2cf142bbcb27af5542522ac08db128245d0b9fe410aa1d7f2a
F ext/fiddle/testing1.html ea1f3be727f78e420007f823912c1a03b337ecbb8e79449abc2244ad4fe15d9a
F vsixtest/vsixtest.vcxproj.data 2ed517e100c66dc455b492e1a33350c1b20fbcdc
F vsixtest/vsixtest.vcxproj.filters 37e51ffedcdb064aad6ff33b6148725226cd608e
F vsixtest/vsixtest_TemporaryKey.pfx e5b1b036facdb453873e7084e1cae9102ccc67a0
-P e93fd170ce4ae91d572c46d03f68f55d00091d0188030517455017d90d212587
-R 3edce7228a2d729bf332a89ed3af6305
-T *branch * wasm-cleanups
-T *sym-wasm-cleanups *
-T -sym-trunk * Cancelled\sby\sbranch.
+P ab3e50dab4d71557ab5d179bbd6caf7fb61ab7c51dffc8e4714441c189ce3e5c
+R bbdb5fff926c789b277af363fc1aa00d
U stephan
-Z e1adc8db1d84e5f34db3da1c68e91f04
+Z 54385a773b385e5557f29a3390198b0f
# Remove this line to create a well-formed Fossil manifest.