diff --git a/embed/sqlite3.wasm b/embed/sqlite3.wasm index 3f519dc..c900bda 100755 Binary files a/embed/sqlite3.wasm and b/embed/sqlite3.wasm differ diff --git a/sqlite3/vfs.c b/sqlite3/vfs.c index ca9dcff..24965e9 100644 --- a/sqlite3/vfs.c +++ b/sqlite3/vfs.c @@ -87,11 +87,11 @@ int localtime_s(struct tm *const pTm, time_t const *const pTime) { } sqlite3_vfs *sqlite3_vfs_find(const char *zVfsName) { - if (zVfsName) { + if (zVfsName && go_vfs_find(zVfsName)) { static sqlite3_vfs *go_vfs_list; for (sqlite3_vfs *it = go_vfs_list; it; it = it->pNext) { - if (!strcmp(zVfsName, it->zName) && go_vfs_find(it->zName)) { + if (!strcmp(zVfsName, it->zName)) { return it; } } @@ -106,29 +106,27 @@ sqlite3_vfs *sqlite3_vfs_find(const char *zVfsName) { } } - if (go_vfs_find(zVfsName)) { - sqlite3_vfs *head = go_vfs_list; - go_vfs_list = malloc(sizeof(sqlite3_vfs) + strlen(zVfsName) + 1); - char *name = (char *)(go_vfs_list + 1); - strcpy(name, zVfsName); - *go_vfs_list = (sqlite3_vfs){ - .iVersion = 2, - .szOsFile = sizeof(struct go_file), - .mxPathname = 512, - .zName = name, - .pNext = head, + sqlite3_vfs *head = go_vfs_list; + go_vfs_list = malloc(sizeof(sqlite3_vfs) + strlen(zVfsName) + 1); + char *name = (char *)(go_vfs_list + 1); + strcpy(name, zVfsName); + *go_vfs_list = (sqlite3_vfs){ + .iVersion = 2, + .szOsFile = sizeof(struct go_file), + .mxPathname = 512, + .zName = name, + .pNext = head, - .xOpen = go_open_wrapper, - .xDelete = go_delete, - .xAccess = go_access, - .xFullPathname = go_full_pathname, + .xOpen = go_open_wrapper, + .xDelete = go_delete, + .xAccess = go_access, + .xFullPathname = go_full_pathname, - .xRandomness = go_randomness, - .xSleep = go_sleep, - .xCurrentTimeInt64 = go_current_time_64, - }; - return go_vfs_list; - } + .xRandomness = go_randomness, + .xSleep = go_sleep, + .xCurrentTimeInt64 = go_current_time_64, + }; + return go_vfs_list; } return sqlite3_vfs_find_orig(zVfsName); } diff --git a/vfs/tests/mptest/testdata/mptest.wasm.bz2 b/vfs/tests/mptest/testdata/mptest.wasm.bz2 index 9e88528..540fbbe 100644 --- a/vfs/tests/mptest/testdata/mptest.wasm.bz2 +++ b/vfs/tests/mptest/testdata/mptest.wasm.bz2 @@ -1,3 +1,3 @@ version https://git-lfs.github.com/spec/v1 -oid sha256:0d3da66a99571be0305e1056471aea119c99eac0b6e1c2ad541cc1b73c6b316f -size 512268 +oid sha256:8d26f7fa2d68ba43e7d36433cfb875586f2bf7b4244ec5f97d031d042688b28d +size 512278 diff --git a/vfs/tests/speedtest1/testdata/speedtest1.wasm.bz2 b/vfs/tests/speedtest1/testdata/speedtest1.wasm.bz2 index bf24e33..f65c440 100644 --- a/vfs/tests/speedtest1/testdata/speedtest1.wasm.bz2 +++ b/vfs/tests/speedtest1/testdata/speedtest1.wasm.bz2 @@ -1,3 +1,3 @@ version https://git-lfs.github.com/spec/v1 -oid sha256:06597e30e635f164307ed8fd204f8d93013a7da845ab5cb1ca5db3b10ef010fb -size 526654 +oid sha256:3c581db6af92832b16476c0b0d8bbdd18211f11712dcf5b7b728f24397fadfea +size 526471