From: stephan Date: Sun, 23 Nov 2025 16:54:16 +0000 (+0000) Subject: Get the kvvfs v2 working in 64-bit wasm builds (a 0 vs null vs BigInt issue). X-Git-Url: http://git.ipfire.org/cgi-bin/gitweb.cgi?a=commitdiff_plain;h=da0d872270f64d4fc8792c4fd0ccd5f1f4b574fe;p=thirdparty%2Fsqlite.git Get the kvvfs v2 working in 64-bit wasm builds (a 0 vs null vs BigInt issue). FossilOrigin-Name: 4811742688bd8ae847c0a13ca9b395b2d2edd24ce4e7760a5d1b0adf1c7f332d --- diff --git a/ext/wasm/api/sqlite3-vfs-kvvfs.c-pp.js b/ext/wasm/api/sqlite3-vfs-kvvfs.c-pp.js index 04ce27ffb5..08b67116cb 100644 --- a/ext/wasm/api/sqlite3-vfs-kvvfs.c-pp.js +++ b/ext/wasm/api/sqlite3-vfs-kvvfs.c-pp.js @@ -288,7 +288,7 @@ globalThis.sqlite3ApiBootstrap.initializers.push(function(sqlite3){ const keyForStorage = (store, zClass, zKey)=>{ //debug("keyForStorage(",store, wasm.cstrToJs(zClass), wasm.cstrToJs(zKey)); return wasm.exports.sqlite3__wasm_kvvfsMakeKeyOnPstack( - store.keyPrefix ? zClass : null, zKey + store.keyPrefix ? zClass : wasm.ptr.null, zKey ); }; /* We use this for the many small key allocations we need. @@ -502,7 +502,7 @@ globalThis.sqlite3ApiBootstrap.initializers.push(function(sqlite3){ /* this messes up the recordHandler methods. They have only the key, not the sqlite3_file object, so cannot map a prefixless key to a storage object. */ - f.$zClass = null; + f.$zClass = wasm.ptr.null; } }else{ /* TODO: a url flag which tells it to keep the storage @@ -510,7 +510,7 @@ globalThis.sqlite3ApiBootstrap.initializers.push(function(sqlite3){ Storage-ish objects. We can accomplish that by simply increasing the refcount once more. */ util.assert( !f.$isJournal, "Opening a journal before its db? "+jzClass ); - //breaks stuff f.$zClass = null /* causes the "kvvfs-" prefix to be elided from keys */; + //breaks stuff f.$zClass = wasm.ptr.null /* causes the "kvvfs-" prefix to be elided from keys */; const other = f.$isJournal ? jzClass.replace(cache.rxJournalSuffix,'') : jzClass + '-journal'; diff --git a/manifest b/manifest index a3a5535444..73065f8e2c 100644 --- a/manifest +++ b/manifest @@ -1,5 +1,5 @@ -C Eliminate\sthe\ssuperfluous\s'kvvfs-'\spart\sof\skeys\sfor\stransient\sstorage\sand\scleanup\stheir\sexport\sa\sbit.\sReminder\sfor\slater:\swe\scould\spotentially\suse\sthe\sdbpage\svtab\sto\sserialize\sany\sdb\sto\sthis\sJSON-friendly\sform. -D 2025-11-23T16:35:18.976 +C Get\sthe\skvvfs\sv2\sworking\sin\s64-bit\swasm\sbuilds\s(a\s0\svs\snull\svs\sBigInt\sissue). +D 2025-11-23T16:54:16.202 F .fossil-settings/binary-glob 61195414528fb3ea9693577e1980230d78a1f8b0a54c78cf1b9b24d0a409ed6a x F .fossil-settings/empty-dirs dbb81e8fc0401ac46a1491ab34a7f2c7c0452f2f06b54ebb845d024ca8283ef1 F .fossil-settings/ignore-glob 35175cdfcf539b2318cb04a9901442804be81cd677d8b889fcc9149c21f239ea @@ -600,7 +600,7 @@ F ext/wasm/api/sqlite3-api-worker1.c-pp.js 1041dd645e8e821c082b628cd8d9acf70c667 F ext/wasm/api/sqlite3-license-version-header.js 0c807a421f0187e778dc1078f10d2994b915123c1223fe752b60afdcd1263f89 F ext/wasm/api/sqlite3-opfs-async-proxy.js 9654b565b346dc609b75d15337f20acfa7af7d9d558da1afeb9b6d8eaa404966 F ext/wasm/api/sqlite3-vfs-helper.c-pp.js 3f828cc66758acb40e9c5b4dcfd87fd478a14c8fb7f0630264e6c7fa0e57515d -F ext/wasm/api/sqlite3-vfs-kvvfs.c-pp.js d0c2ec2286ca5f9105de3492a8e26f7bbd574e57d7265f422bbbe1cf3938b9f8 +F ext/wasm/api/sqlite3-vfs-kvvfs.c-pp.js 6886aa3a355ea7332190877fac6e5d569ee0c158cf467b45b0fc876e5d305d33 F ext/wasm/api/sqlite3-vfs-opfs-sahpool.c-pp.js 26cb41d5a62f46a106b6371eb00fef02de3cdbfaa51338ba087a45f53028e0d0 F ext/wasm/api/sqlite3-vfs-opfs.c-pp.js 88ce2078267a2d1af57525a32d896295f4a8db7664de0e17e82dc9ff006ed8d3 F ext/wasm/api/sqlite3-vtab-helper.c-pp.js 9097074724172e31e56ce20ccd7482259cf72a76124213cbc9469d757676da86 @@ -2178,8 +2178,8 @@ F tool/version-info.c 33d0390ef484b3b1cb685d59362be891ea162123cea181cb8e6d2cf6dd F tool/warnings-clang.sh bbf6a1e685e534c92ec2bfba5b1745f34fb6f0bc2a362850723a9ee87c1b31a7 F tool/warnings.sh d924598cf2f55a4ecbc2aeb055c10bd5f48114793e7ba25f9585435da29e7e98 F tool/win/sqlite.vsix deb315d026cc8400325c5863eef847784a219a2f -P 6bc64059410b1868b7a3576e16d03c02e7c007a2be8b313e386eeb2e2a35c258 -R e0e07027fde0a231888a4f23ac8cccb2 +P f63014f70febf82976a99f9f1ce6d793e2ca8d1dd2f72622152b64b2d65f8adc +R 9d104150c6613ed7753bd1fb4ac1b002 U stephan -Z 9e765b52f44e0a91da1bd1e93d48590e +Z cb3a60effd1de39bc1ff05e3b6dc575c # Remove this line to create a well-formed Fossil manifest. diff --git a/manifest.uuid b/manifest.uuid index 14f1da4f71..fc86bee876 100644 --- a/manifest.uuid +++ b/manifest.uuid @@ -1 +1 @@ -f63014f70febf82976a99f9f1ce6d793e2ca8d1dd2f72622152b64b2d65f8adc +4811742688bd8ae847c0a13ca9b395b2d2edd24ce4e7760a5d1b0adf1c7f332d