]> git.ipfire.org Git - thirdparty/sqlite.git/commitdiff
Correct OPFS VFS xRead() to copy the result buffer if the result code is SQLITE_IOERR...
authorstephan <stephan@noemail.net>
Mon, 19 Sep 2022 09:25:25 +0000 (09:25 +0000)
committerstephan <stephan@noemail.net>
Mon, 19 Sep 2022 09:25:25 +0000 (09:25 +0000)
FossilOrigin-Name: 56668f9902c6e896b6c63621a444444c6f58ee20f88a5feae97f1699be35892d

ext/wasm/api/sqlite3-api-opfs.js
manifest
manifest.uuid

index d6a9dbd22f48ee34f928351d89540b677d893e90..6446f2fb35ff56d605ec2dbe43a87d75f726bb27 100644 (file)
@@ -386,9 +386,10 @@ sqlite3.installOpfsVfs = function callee(asyncProxyUri = callee.defaultProxyUri)
         try {
           // FIXME(?): block until we finish copying the xRead result buffer. How?
           rc = opRun('xRead',{fid:pFile, n, offset});
-          if(0!==rc) return rc;
-          let i = 0;
-          for(; i < n; ++i) wasm.setMemValue(pDest + i, f.sabView[i]);
+          if(0===rc || capi.SQLITE_IOERR_SHORT_READ===rc){
+            let i = 0;
+            for(; i < n; ++i) wasm.setMemValue(pDest + i, f.sabView[i]);
+          }
         }catch(e){
           error("xRead(",arguments,") failed:",e,f);
           rc = capi.SQLITE_IOERR_READ;
index 5116b7177246d80c42b91668f48293f99457ba48..c678bc0b2d346b7f964bcd15026954711b38b9d1 100644 (file)
--- a/manifest
+++ b/manifest
@@ -1,5 +1,5 @@
-C Replace\sOPFS\sVFS\sxSleep()\simpl\swith\sa\smore\sefficient\sone\s(no\sWorker\sround-trip\sneeded).
-D 2022-09-19T05:19:04.566
+C Correct\sOPFS\sVFS\sxRead()\sto\scopy\sthe\sresult\sbuffer\sif\sthe\sresult\scode\sis\sSQLITE_IOERR_SHORT_READ.
+D 2022-09-19T09:25:25.676
 F .fossil-settings/empty-dirs dbb81e8fc0401ac46a1491ab34a7f2c7c0452f2f06b54ebb845d024ca8283ef1
 F .fossil-settings/ignore-glob 35175cdfcf539b2318cb04a9901442804be81cd677d8b889fcc9149c21f239ea
 F LICENSE.md df5091916dbb40e6e9686186587125e1b2ff51f022cc334e886c19a0e9982724
@@ -484,7 +484,7 @@ F ext/wasm/api/post-js-header.js 0e853b78db83cb1c06b01663549e0e8b4f377f12f5a2d9a
 F ext/wasm/api/sqlite3-api-cleanup.js 8564a6077cdcaea9a9f428a019af8a05887f0131e6a2a1e72a7ff1145fadfe77
 F ext/wasm/api/sqlite3-api-glue.js 366d580c8e5bf7fcf4c6dee6f646c31f5549bd417ea03a59a0acca00e8ecce30
 F ext/wasm/api/sqlite3-api-oo1.js 2d13dddf0d2b4168a9249f124134d37924331e5b55e05dba18b6d661fbeefe48
-F ext/wasm/api/sqlite3-api-opfs.js d44f724990e99e242725c6623d6e1fbf843addabac13aabcd8adc8b7a02cb8b6
+F ext/wasm/api/sqlite3-api-opfs.js 6a48568014dcadee22ff8eaa13deab573fbae362a71194efb6c1214d41d6b48d
 F ext/wasm/api/sqlite3-api-prologue.js 4e3e26880d444000cca1b4f3ddfa9d49581dfecd1de9426080239ecc208c447d
 F ext/wasm/api/sqlite3-api-worker1.js ee4cf149cbacb63d06b536674f822aa5088b7e022cdffc69f1f36cebe2f9fea0
 F ext/wasm/api/sqlite3-wasi.h 25356084cfe0d40458a902afb465df8c21fc4152c1d0a59b563a3fba59a068f9
@@ -2028,8 +2028,8 @@ F vsixtest/vsixtest.tcl 6a9a6ab600c25a91a7acc6293828957a386a8a93
 F vsixtest/vsixtest.vcxproj.data 2ed517e100c66dc455b492e1a33350c1b20fbcdc
 F vsixtest/vsixtest.vcxproj.filters 37e51ffedcdb064aad6ff33b6148725226cd608e
 F vsixtest/vsixtest_TemporaryKey.pfx e5b1b036facdb453873e7084e1cae9102ccc67a0
-P 2e4a005bd35424caeaa99ace23162cf79e2ebdb159475ffad92b85dc864ad764
-R 7b4ce0e4c47ddeace77c92f8cdf4ccc9
+P b9773f164878b0a1b7c88cc7a6d1374ea95f64920065e8b2b178a1afffd82fe5
+R a6befd159a478cdd8d3c42193659027b
 U stephan
-Z 2dc660cb87f9b9223b60fbf12ba2d753
+Z 2c8c2a7ce6b266c9bc7d1baf57207e7e
 # Remove this line to create a well-formed Fossil manifest.
index 1e0d5dc9cbbc97f6141a055e5e0afa818dc19492..e3f6dd88b583ad794f7152759f24942e340224d6 100644 (file)
@@ -1 +1 @@
-b9773f164878b0a1b7c88cc7a6d1374ea95f64920065e8b2b178a1afffd82fe5
\ No newline at end of file
+56668f9902c6e896b6c63621a444444c6f58ee20f88a5feae97f1699be35892d
\ No newline at end of file