From: dan Date: Fri, 12 Nov 2010 15:49:04 +0000 (+0000) Subject: Change the test_multiplex.c code to use wrapper functions for all sqlite3_vfs methods... X-Git-Tag: version-3.7.4~61 X-Git-Url: http://git.ipfire.org/?a=commitdiff_plain;h=fffadc52f987b43cc7f6bba6518ba7f00f48fe92;p=thirdparty%2Fsqlite.git Change the test_multiplex.c code to use wrapper functions for all sqlite3_vfs methods (instead of copying function pointers from the underlying vfs into the multiplex vfs). This is required to work with test_osinst.c. FossilOrigin-Name: 1244ef9f7ef813d86dca6f8e01681fa55ee9eec8 --- diff --git a/manifest b/manifest index 50308af534..8cd6c13a8c 100644 --- a/manifest +++ b/manifest @@ -1,5 +1,5 @@ -C Fix\san\sassert\sthat\sfired\sincorrectly\swhen\sPRAGMA\somit_readlock\swas\sset. -D 2010-11-09T20:33:34 +C Change\sthe\stest_multiplex.c\scode\sto\suse\swrapper\sfunctions\sfor\sall\ssqlite3_vfs\smethods\s(instead\sof\scopying\sfunction\spointers\sfrom\sthe\sunderlying\svfs\sinto\sthe\smultiplex\svfs).\sThis\sis\srequired\sto\swork\swith\stest_osinst.c. +D 2010-11-12T15:49:05 F Makefile.arm-wince-mingw32ce-gcc d6df77f1f48d690bd73162294bbba7f59507c72f F Makefile.in e7a59672eaeb04408d1fa8501618d7501a3c5e39 F Makefile.linux-gcc 91d710bdc4998cb015f39edf3cb314ec4f4d7e23 @@ -207,7 +207,7 @@ F src/test_intarray.h 489edb9068bb926583445cb02589344961054207 F src/test_journal.c 785edd54f963aefb3c1628124170a56697c68c70 F src/test_loadext.c df586c27176e3c2cb2e099c78da67bf14379a56e F src/test_malloc.c 09a88f0c111201dc4f8c20470aa1b5f611d59200 -F src/test_multiplex.c 5c2b53d620613b46e4cfdde66f82612e896ac7b9 +F src/test_multiplex.c a324e1fbd546aca59ec4e552fb42aa5142881ea3 F src/test_mutex.c ce06b59aca168cd8c520b77159a24352a7469bd3 F src/test_onefile.c 40cf9e212a377a6511469384a64b01e6e34b2eec F src/test_osinst.c f408c6a181f2fb04c56273afd5c3e1e82f60392c @@ -885,7 +885,7 @@ F tool/speedtest2.tcl ee2149167303ba8e95af97873c575c3e0fab58ff F tool/speedtest8.c 2902c46588c40b55661e471d7a86e4dd71a18224 F tool/speedtest8inst1.c 293327bc76823f473684d589a8160bde1f52c14e F tool/vdbe-compress.tcl d70ea6d8a19e3571d7ab8c9b75cba86d1173ff0f -P 07da0a0beffda324d28fd2768c542ff69d4dbff2 -R b71e4548ec0c287ed1f2245388ac9eb0 -U shaneh -Z d2106b3d8fbed7a3f8202cfd19fdedf9 +P e068758222bcd3f2367e9346f7154780cd395ddd +R d56c467c4d95b6e0405ebbf0c7ac2142 +U dan +Z a50b8c1ba84e37038e8c0688be6f08be diff --git a/manifest.uuid b/manifest.uuid index 17871a03ff..fdd1eb9320 100644 --- a/manifest.uuid +++ b/manifest.uuid @@ -1 +1 @@ -e068758222bcd3f2367e9346f7154780cd395ddd \ No newline at end of file +1244ef9f7ef813d86dca6f8e01681fa55ee9eec8 \ No newline at end of file diff --git a/src/test_multiplex.c b/src/test_multiplex.c index 442b39e0d8..e2d0a991f0 100644 --- a/src/test_multiplex.c +++ b/src/test_multiplex.c @@ -305,6 +305,40 @@ static int multiplexDelete( return rc; } +static int multiplexAccess(sqlite3_vfs *a, const char *b, int c, int *d){ + return gMultiplex.pOrigVfs->xAccess(gMultiplex.pOrigVfs, b, c, d); +} +static int multiplexFullPathname(sqlite3_vfs *a, const char *b, int c, char *d){ + return gMultiplex.pOrigVfs->xFullPathname(gMultiplex.pOrigVfs, b, c, d); +} +static void *multiplexDlOpen(sqlite3_vfs *a, const char *b){ + return gMultiplex.pOrigVfs->xDlOpen(gMultiplex.pOrigVfs, b); +} +static void multiplexDlError(sqlite3_vfs *a, int b, char *c){ + gMultiplex.pOrigVfs->xDlError(gMultiplex.pOrigVfs, b, c); +} +static void (*multiplexDlSym(sqlite3_vfs *a, void *b, const char *c))(void){ + return gMultiplex.pOrigVfs->xDlSym(gMultiplex.pOrigVfs, b, c); +} +static void multiplexDlClose(sqlite3_vfs *a, void *b){ + gMultiplex.pOrigVfs->xDlClose(gMultiplex.pOrigVfs, b); +} +static int multiplexRandomness(sqlite3_vfs *a, int b, char *c){ + return gMultiplex.pOrigVfs->xRandomness(gMultiplex.pOrigVfs, b, c); +} +static int multiplexSleep(sqlite3_vfs *a, int b){ + return gMultiplex.pOrigVfs->xSleep(gMultiplex.pOrigVfs, b); +} +static int multiplexCurrentTime(sqlite3_vfs *a, double *b){ + return gMultiplex.pOrigVfs->xCurrentTime(gMultiplex.pOrigVfs, b); +} +static int multiplexGetLastError(sqlite3_vfs *a, int b, char *c){ + return gMultiplex.pOrigVfs->xGetLastError(gMultiplex.pOrigVfs, b, c); +} +static int multiplexCurrentTimeInt64(sqlite3_vfs *a, sqlite3_int64 *b){ + return gMultiplex.pOrigVfs->xCurrentTimeInt64(gMultiplex.pOrigVfs, b); +} + /************************ I/O Method Wrappers *******************************/ /* xClose requests get passed through to the original VFS. @@ -691,6 +725,18 @@ int sqlite3_multiplex_initialize(const char *zOrigVfsName, int makeDefault){ gMultiplex.sThisVfs.zName = "multiplex"; gMultiplex.sThisVfs.xOpen = multiplexOpen; gMultiplex.sThisVfs.xDelete = multiplexDelete; + gMultiplex.sThisVfs.xAccess = multiplexAccess; + gMultiplex.sThisVfs.xFullPathname = multiplexFullPathname; + gMultiplex.sThisVfs.xDlOpen = multiplexDlOpen; + gMultiplex.sThisVfs.xDlError = multiplexDlError; + gMultiplex.sThisVfs.xDlSym = multiplexDlSym; + gMultiplex.sThisVfs.xDlClose = multiplexDlClose; + gMultiplex.sThisVfs.xRandomness = multiplexRandomness; + gMultiplex.sThisVfs.xSleep = multiplexSleep; + gMultiplex.sThisVfs.xCurrentTime = multiplexCurrentTime; + gMultiplex.sThisVfs.xGetLastError = multiplexGetLastError; + gMultiplex.sThisVfs.xCurrentTimeInt64 = multiplexCurrentTimeInt64; + gMultiplex.sIoMethodsV1.iVersion = 1; gMultiplex.sIoMethodsV1.xClose = multiplexClose; gMultiplex.sIoMethodsV1.xRead = multiplexRead;