Index: src/os_win.c ================================================================== --- src/os_win.c +++ src/os_win.c @@ -3228,65 +3228,66 @@ if( !osDuplicateHandle(GetCurrentProcess(), pFile->h, GetCurrentProcess(), &dupHandle, 0, FALSE, DUPLICATE_SAME_ACCESS) ){ pFile->lastErrno = osGetLastError(); OSTRACE(("PRE-CACHE file=%p, rc=SQLITE_IOERR\n", dupHandle)); - return winLogError(SQLITE_IOERR, pFile->lastErrno, - "winPreCacheThread1", pFile->zPath); + return SQLITE_INT_TO_PTR(winLogError(SQLITE_IOERR, pFile->lastErrno, + "winPreCacheThread1", pFile->zPath)); } dwSize = osSetFilePointer(dupHandle, 0, 0, FILE_END); if( (dwSize==INVALID_SET_FILE_POINTER && ((lastErrno = osGetLastError())!=NO_ERROR)) ){ pFile->lastErrno = lastErrno; osCloseHandle(dupHandle); OSTRACE(("PRE-CACHE file=%p, rc=SQLITE_IOERR_SEEK\n", dupHandle)); - return winLogError(SQLITE_IOERR_SEEK, pFile->lastErrno, - "winPreCacheThread2", pFile->zPath); + return SQLITE_INT_TO_PTR(winLogError(SQLITE_IOERR_SEEK, pFile->lastErrno, + "winPreCacheThread2", pFile->zPath)); } dwRet = osSetFilePointer(dupHandle, 0, 0, FILE_BEGIN); if( (dwRet==INVALID_SET_FILE_POINTER && ((lastErrno = osGetLastError())!=NO_ERROR)) ){ pFile->lastErrno = lastErrno; osCloseHandle(dupHandle); OSTRACE(("PRE-CACHE file=%p, rc=SQLITE_IOERR_SEEK\n", dupHandle)); - return winLogError(SQLITE_IOERR_SEEK, pFile->lastErrno, - "winPreCacheThread3", pFile->zPath); + return SQLITE_INT_TO_PTR(winLogError(SQLITE_IOERR_SEEK, pFile->lastErrno, + "winPreCacheThread3", pFile->zPath)); } dwAmt = 4194304; /* TODO: Tuning. */ if( dwSizelastErrno = osGetLastError(); sqlite3_free(pBuf); osCloseHandle(dupHandle); OSTRACE(("PRE-CACHE file=%p, rc=SQLITE_IOERR_READ\n", dupHandle)); - return winLogError(SQLITE_IOERR_READ, pFile->lastErrno, - "winPreCacheThread4", pFile->zPath); + return SQLITE_INT_TO_PTR(winLogError(SQLITE_IOERR_READ, pFile->lastErrno, + "winPreCacheThread4", pFile->zPath)); } if( nReadlastErrno, - "winPreCacheThread5", pFile->zPath); + return SQLITE_INT_TO_PTR(winLogError(SQLITE_IOERR_SHORT_READ, + pFile->lastErrno, + "winPreCacheThread5", pFile->zPath)); } dwSize -= dwAmt; if( dwSize==0 ){ break; } } sqlite3_free(pBuf); osCloseHandle(dupHandle); - return SQLITE_OK; + return SQLITE_INT_TO_PTR(SQLITE_OK); } #endif /* ** Windows will only let you create file view mappings