aboutsummaryrefslogtreecommitdiff
path: root/src/test6.c
diff options
context:
space:
mode:
authordrh <drh@noemail.net>2010-05-13 08:53:41 +0000
committerdrh <drh@noemail.net>2010-05-13 08:53:41 +0000
commit043c20e63e7c075e85ef554fdf7bbba5cd9c0ea7 (patch)
tree51961f4f4d2f98d34248b8c4722f7d36d7e8c37e /src/test6.c
parenteaf52d883a9eafbe7ad60bd7590988c66d696c07 (diff)
parenta925fd256b74e5da9c6320849c3b7d85110ce73f (diff)
downloadsqlite-043c20e63e7c075e85ef554fdf7bbba5cd9c0ea7.tar.gz
sqlite-043c20e63e7c075e85ef554fdf7bbba5cd9c0ea7.zip
The refactored of VFS SHM primitives are now working so merge the
wal-refactor branch back into the trunk. FossilOrigin-Name: bce21c18380715e894eac9c173c97315e0d69d93
Diffstat (limited to 'src/test6.c')
-rw-r--r--src/test6.c71
1 files changed, 31 insertions, 40 deletions
diff --git a/src/test6.c b/src/test6.c
index 1ebde80e1..9b5c3f615 100644
--- a/src/test6.c
+++ b/src/test6.c
@@ -520,8 +520,31 @@ static int cfDeviceCharacteristics(sqlite3_file *pFile){
return g.iDeviceCharacteristics;
}
+/*
+** Pass-throughs for WAL support.
+*/
+static int cfShmOpen(sqlite3_file *pFile){
+ return sqlite3OsShmOpen(((CrashFile*)pFile)->pRealFile);
+}
+static int cfShmSize(sqlite3_file *pFile, int reqSize, int *pNew){
+ return sqlite3OsShmSize(((CrashFile*)pFile)->pRealFile, reqSize, pNew);
+}
+static int cfShmGet(sqlite3_file *pFile, int reqSize, int *pSize, void **pp){
+ return sqlite3OsShmGet(((CrashFile*)pFile)->pRealFile, reqSize, pSize, pp);
+}
+static int cfShmRelease(sqlite3_file *pFile){
+ return sqlite3OsShmRelease(((CrashFile*)pFile)->pRealFile);
+}
+static int cfShmLock(sqlite3_file *pFile, int desired, int *pGot){
+ return sqlite3OsShmLock(((CrashFile*)pFile)->pRealFile, desired, pGot);
+}
+static int cfShmClose(sqlite3_file *pFile, int delFlag){
+ return sqlite3OsShmClose(((CrashFile*)pFile)->pRealFile, delFlag);
+}
+
+
static const sqlite3_io_methods CrashFileVtab = {
- 1, /* iVersion */
+ 2, /* iVersion */
cfClose, /* xClose */
cfRead, /* xRead */
cfWrite, /* xWrite */
@@ -533,7 +556,13 @@ static const sqlite3_io_methods CrashFileVtab = {
cfCheckReservedLock, /* xCheckReservedLock */
cfFileControl, /* xFileControl */
cfSectorSize, /* xSectorSize */
- cfDeviceCharacteristics /* xDeviceCharacteristics */
+ cfDeviceCharacteristics, /* xDeviceCharacteristics */
+ cfShmOpen, /* xShmOpen */
+ cfShmSize, /* xShmSize */
+ cfShmGet, /* xShmGet */
+ cfShmRelease, /* xShmRelease */
+ cfShmLock, /* xShmLock */
+ cfShmClose /* xShmClose */
};
/*
@@ -657,33 +686,6 @@ static int cfCurrentTime(sqlite3_vfs *pCfVfs, double *pTimeOut){
sqlite3_vfs *pVfs = (sqlite3_vfs *)pCfVfs->pAppData;
return pVfs->xCurrentTime(pVfs, pTimeOut);
}
-static int cfShmOpen(sqlite3_vfs *pCfVfs, const char *zName, sqlite3_shm **pp){
- sqlite3_vfs *pVfs = (sqlite3_vfs *)pCfVfs->pAppData;
- return pVfs->xShmOpen(pVfs, zName, pp);
-}
-static int cfShmSize(sqlite3_vfs *pCfVfs, sqlite3_shm *p,
- int reqSize, int *pNew){
- sqlite3_vfs *pVfs = (sqlite3_vfs *)pCfVfs->pAppData;
- return pVfs->xShmSize(pVfs, p, reqSize, pNew);
-}
-static int cfShmGet(sqlite3_vfs *pCfVfs, sqlite3_shm *p,
- int reqSize, int *pSize, void **pp){
- sqlite3_vfs *pVfs = (sqlite3_vfs *)pCfVfs->pAppData;
- return pVfs->xShmGet(pVfs, p, reqSize, pSize, pp);
-}
-static int cfShmRelease(sqlite3_vfs *pCfVfs, sqlite3_shm *p){
- sqlite3_vfs *pVfs = (sqlite3_vfs *)pCfVfs->pAppData;
- return pVfs->xShmRelease(pVfs, p);
-}
-static int cfShmLock(sqlite3_vfs *pCfVfs, sqlite3_shm *p,
- int desiredLock, int *gotLock){
- sqlite3_vfs *pVfs = (sqlite3_vfs *)pCfVfs->pAppData;
- return pVfs->xShmLock(pVfs, p, desiredLock, gotLock);
-}
-static int cfShmClose(sqlite3_vfs *pCfVfs, sqlite3_shm *p, int delFlag){
- sqlite3_vfs *pVfs = (sqlite3_vfs *)pCfVfs->pAppData;
- return pVfs->xShmClose(pVfs, p, delFlag);
-}
static int processDevSymArgs(
Tcl_Interp *interp,
@@ -810,12 +812,6 @@ static int crashEnableCmd(
cfSleep, /* xSleep */
cfCurrentTime, /* xCurrentTime */
0, /* xGetlastError */
- cfShmOpen, /* xShmOpen */
- cfShmSize, /* xShmSize */
- cfShmGet, /* xShmGet */
- cfShmRelease, /* xShmRelease */
- cfShmLock, /* xShmLock */
- cfShmClose, /* xShmClose */
0, /* xRename */
0, /* xCurrentTimeInt64 */
};
@@ -838,11 +834,6 @@ static int crashEnableCmd(
crashVfs.mxPathname = pOriginalVfs->mxPathname;
crashVfs.pAppData = (void *)pOriginalVfs;
crashVfs.szOsFile = sizeof(CrashFile) + pOriginalVfs->szOsFile;
- if( pOriginalVfs->iVersion<2 || pOriginalVfs->xShmOpen==0 ){
- crashVfs.xShmOpen = 0;
- }else{
- crashVfs.xShmOpen = cfShmOpen;
- }
sqlite3_vfs_register(&crashVfs, 0);
}else{
crashVfs.pAppData = 0;