mirror of
https://github.com/sqlite/sqlite.git
synced 2025-07-27 20:41:58 +03:00
Cleanups in the wasmfs/opfs integration but disable it in order to get the build into a known-working state before continuing with experimentation.
FossilOrigin-Name: 41045be752a5bd7966849638f3ca56f4905308df70f79f2cb6196ca7dce9d525
This commit is contained in:
@ -430,7 +430,7 @@ int sqlite3_wasm_vfs_unlink(const char * zName){
|
||||
return rc;
|
||||
}
|
||||
|
||||
#ifdef __EMSCRIPTEN__
|
||||
#if defined(__EMSCRIPTEN__) && defined(SQLITE_WASM_OPFS)
|
||||
#include <emscripten/wasmfs.h>
|
||||
#include <emscripten/console.h>
|
||||
/*
|
||||
@ -443,17 +443,34 @@ int sqlite3_wasm_vfs_unlink(const char * zName){
|
||||
** WASMFS backend impl for OPFS. On success, subsequent calls are
|
||||
** no-ops.
|
||||
**
|
||||
** Returns 0 on success, SQLITE_NOMEM if intantiation of the backend
|
||||
** object fails.
|
||||
** Returns 0 on success, SQLITE_NOMEM if instantiation of the backend
|
||||
** object fails, SQLITE_IOERR if mkdir() of the "/persistent" dir in
|
||||
** the virtual FS fails. In builds compiled without SQLITE_WASM_OPFS
|
||||
** defined, SQLITE_NOTFOUND is returned without side effects.
|
||||
*/
|
||||
int sqlite3_wasm_init_opfs(void){
|
||||
static backend_t pOpfs = 0;
|
||||
static const char * zDir = "/persistent";
|
||||
if( !pOpfs ){
|
||||
pOpfs = wasmfs_create_opfs_backend();
|
||||
if( pOpfs ){
|
||||
emscripten_console_log("Created OPFS WASMFS backend.");
|
||||
emscripten_console_log("Created WASMFS OPFS backend.");
|
||||
}
|
||||
}
|
||||
/** It's not enough to instantiate the backend. We have to create a
|
||||
mountpoint in the VFS and attach the backend to it. */
|
||||
if( pOpfs && 0!=access(zDir, F_OK) ){
|
||||
/* mkdir() simply hangs when called from fiddle app. Cause is
|
||||
not yet determined but the hypothesis is an init-order
|
||||
issue. */
|
||||
const int rc = wasmfs_create_directory(zDir, 0777, pOpfs);
|
||||
emscripten_console_log(rc ? "OPFS mkdir failed." : "OPFS mkdir ok.");
|
||||
if(rc) return SQLITE_IOERR;
|
||||
}
|
||||
return pOpfs ? 0 : SQLITE_NOMEM;
|
||||
}
|
||||
#endif /* __EMSCRIPTEN__ */
|
||||
#else
|
||||
int sqlite3_wasm_init_opfs(void){
|
||||
return SQLITE_NOTFOUND;
|
||||
}
|
||||
#endif /* __EMSCRIPTEN__ && SQLITE_WASM_OPFS */
|
||||
|
Reference in New Issue
Block a user