Omit all ANSI APIs for winRT.
FossilOrigin-Name: cbf23b461f599d0b025c0f42dd3189cfa4e84bac
This commit is contained in:
parent
24560d16e9
commit
d52ee7298e
12
manifest
12
manifest
@ -1,5 +1,5 @@
|
||||
C Use\sGetInformationByHandleEx()\sinstead\sof\sGetFileSize()\son\swinRT.
|
||||
D 2012-03-01T22:44:56.767
|
||||
C Omit\sall\sANSI\sAPIs\sfor\swinRT.
|
||||
D 2012-03-02T00:00:47.578
|
||||
F Makefile.arm-wince-mingw32ce-gcc d6df77f1f48d690bd73162294bbba7f59507c72f
|
||||
F Makefile.in 3f79a373e57c3b92dabf76f40b065e719d31ac34
|
||||
F Makefile.linux-gcc 91d710bdc4998cb015f39edf3cb314ec4f4d7e23
|
||||
@ -167,7 +167,7 @@ F src/os.h c3a9db9e8e16f564e1a40cea1687dad69634262c
|
||||
F src/os_common.h 92815ed65f805560b66166e3583470ff94478f04
|
||||
F src/os_os2.c 4a75888ba3dfc820ad5e8177025972d74d7f2440
|
||||
F src/os_unix.c 0e3d2942d228d0366fb80a3640f35caf413b66d1
|
||||
F src/os_win.c c7fc501c60d979dc038de0d893c37aff2af754c3
|
||||
F src/os_win.c 5593c84adc6717f6bf5c458d1f07cc4791a934e0
|
||||
F src/pager.c 3955b62cdb5bb64559607cb474dd12a6c8e1d4a5
|
||||
F src/pager.h ef1eaf8593e78f73885c1dfac27ad83bee23bdc5
|
||||
F src/parse.y 1ddd71ae55f4b7cbb2672526ea4de023de0f519e
|
||||
@ -991,7 +991,7 @@ F tool/tostr.awk e75472c2f98dd76e06b8c9c1367f4ab07e122d06
|
||||
F tool/vdbe-compress.tcl d70ea6d8a19e3571d7ab8c9b75cba86d1173ff0f
|
||||
F tool/warnings-clang.sh 9f406d66e750e8ac031c63a9ef3248aaa347ef2a
|
||||
F tool/warnings.sh fbc018d67fd7395f440c28f33ef0f94420226381
|
||||
P 5a83912352ad6626970efd72e70c433e3a219b6b
|
||||
R 97ff50ee0fb884b5de3a1afe57f30d4e
|
||||
P 119f251de77aa88cf8ff9fcc72bfbecbe6b741e3
|
||||
R 28c9f3fe3a37af201beee74056883c04
|
||||
U drh
|
||||
Z de1a0224f4c15abe9eff3a7b951c1850
|
||||
Z 229978c984d0d009c0d2a08c187d7dfd
|
||||
|
@ -1 +1 @@
|
||||
119f251de77aa88cf8ff9fcc72bfbecbe6b741e3
|
||||
cbf23b461f599d0b025c0f42dd3189cfa4e84bac
|
115
src/os_win.c
115
src/os_win.c
@ -168,7 +168,7 @@ int sqlite3_os_type = 0;
|
||||
static int sqlite3_os_type = 0;
|
||||
#endif
|
||||
|
||||
#if !SQLITE_OS_WINCE || SQLITE_OS_WINRT
|
||||
#if !SQLITE_OS_WINCE && !SQLITE_OS_WINRT
|
||||
# define SQLITE_WIN32_HAS_ANSI
|
||||
#endif
|
||||
|
||||
@ -1109,12 +1109,9 @@ static int getLastErrorMsg(DWORD lastErrno, int nBuf, char *zBuf){
|
||||
/* free the system buffer allocated by FormatMessage */
|
||||
osLocalFree(zTempWide);
|
||||
}
|
||||
/* isNT() is 1 if SQLITE_OS_WINCE==1, so this else is never executed.
|
||||
** Since the ANSI version of these Windows API do not exist for WINCE,
|
||||
** it's important to not reference them for WINCE builds.
|
||||
*/
|
||||
#if SQLITE_OS_WINCE==0
|
||||
}else{
|
||||
}
|
||||
#ifdef SQLITE_WIN32_HAS_ANSI
|
||||
else{
|
||||
char *zTemp = NULL;
|
||||
dwLen = osFormatMessageA(FORMAT_MESSAGE_ALLOCATE_BUFFER |
|
||||
FORMAT_MESSAGE_FROM_SYSTEM |
|
||||
@ -1133,8 +1130,8 @@ static int getLastErrorMsg(DWORD lastErrno, int nBuf, char *zBuf){
|
||||
/* free the system buffer allocated by FormatMessage */
|
||||
osLocalFree(zTemp);
|
||||
}
|
||||
#endif
|
||||
}
|
||||
#endif
|
||||
if( 0 == dwLen ){
|
||||
sqlite3_snprintf(nBuf, zBuf, "OsError 0x%x (%u)", lastErrno, lastErrno);
|
||||
}else{
|
||||
@ -1921,16 +1918,15 @@ static int getReadLock(winFile *pFile){
|
||||
ovlp.hEvent = 0;
|
||||
res = osLockFileEx(pFile->h, LOCKFILE_FAIL_IMMEDIATELY,
|
||||
0, SHARED_SIZE, 0, &ovlp);
|
||||
/* isNT() is 1 if SQLITE_OS_WINCE==1, so this else is never executed.
|
||||
*/
|
||||
#if SQLITE_OS_WINCE==0
|
||||
}else{
|
||||
}
|
||||
#ifdef SQLITE_WIN32_HAS_ANSI
|
||||
else{
|
||||
int lk;
|
||||
sqlite3_randomness(sizeof(lk), &lk);
|
||||
pFile->sharedLockByte = (short)((lk & 0x7fffffff)%(SHARED_SIZE - 1));
|
||||
res = osLockFile(pFile->h, SHARED_FIRST+pFile->sharedLockByte, 0, 1, 0);
|
||||
#endif
|
||||
}
|
||||
#endif
|
||||
if( res == 0 ){
|
||||
pFile->lastErrno = osGetLastError();
|
||||
/* No need to log a failure to lock */
|
||||
@ -1946,13 +1942,12 @@ static int unlockReadLock(winFile *pFile){
|
||||
DWORD lastErrno;
|
||||
if( isNT() ){
|
||||
res = osUnlockFile(pFile->h, SHARED_FIRST, 0, SHARED_SIZE, 0);
|
||||
/* isNT() is 1 if SQLITE_OS_WINCE==1, so this else is never executed.
|
||||
*/
|
||||
#if SQLITE_OS_WINCE==0
|
||||
}else{
|
||||
res = osUnlockFile(pFile->h, SHARED_FIRST + pFile->sharedLockByte, 0, 1, 0);
|
||||
#endif
|
||||
}
|
||||
#ifdef SQLITE_WIN32_HAS_ANSI
|
||||
else{
|
||||
res = osUnlockFile(pFile->h, SHARED_FIRST + pFile->sharedLockByte, 0, 1, 0);
|
||||
}
|
||||
#endif
|
||||
if( res==0 && ((lastErrno = osGetLastError())!=ERROR_NOT_LOCKED) ){
|
||||
pFile->lastErrno = lastErrno;
|
||||
winLogError(SQLITE_IOERR_UNLOCK, pFile->lastErrno,
|
||||
@ -2962,13 +2957,12 @@ static void *convertUtf8Filename(const char *zFilename){
|
||||
void *zConverted = 0;
|
||||
if( isNT() ){
|
||||
zConverted = utf8ToUnicode(zFilename);
|
||||
/* isNT() is 1 if SQLITE_OS_WINCE==1, so this else is never executed.
|
||||
*/
|
||||
#if SQLITE_OS_WINCE==0
|
||||
}else{
|
||||
zConverted = sqlite3_win32_utf8_to_mbcs(zFilename);
|
||||
#endif
|
||||
}
|
||||
#ifdef SQLITE_WIN32_HAS_ANSI
|
||||
else{
|
||||
zConverted = sqlite3_win32_utf8_to_mbcs(zFilename);
|
||||
}
|
||||
#endif
|
||||
/* caller will handle out of memory */
|
||||
return zConverted;
|
||||
}
|
||||
@ -3004,12 +2998,9 @@ static int getTempname(int nBuf, char *zBuf){
|
||||
}else{
|
||||
return SQLITE_IOERR_NOMEM;
|
||||
}
|
||||
/* isNT() is 1 if SQLITE_OS_WINCE==1, so this else is never executed.
|
||||
** Since the ANSI version of these Windows API do not exist for WINCE,
|
||||
** it's important to not reference them for WINCE builds.
|
||||
*/
|
||||
#if SQLITE_OS_WINCE==0
|
||||
}else{
|
||||
}
|
||||
#ifdef SQLITE_WIN32_HAS_ANSI
|
||||
else{
|
||||
char *zUtf8;
|
||||
char zMbcsPath[MAX_PATH];
|
||||
osGetTempPathA(MAX_PATH-30, zMbcsPath);
|
||||
@ -3020,8 +3011,8 @@ static int getTempname(int nBuf, char *zBuf){
|
||||
}else{
|
||||
return SQLITE_IOERR_NOMEM;
|
||||
}
|
||||
#endif
|
||||
}
|
||||
#endif
|
||||
|
||||
/* Check that the output buffer is large enough for the temporary file
|
||||
** name. If it is not, return SQLITE_ERROR.
|
||||
@ -3203,12 +3194,9 @@ static int winOpen(
|
||||
dwFlagsAndAttributes,
|
||||
NULL))==INVALID_HANDLE_VALUE &&
|
||||
retryIoerr(&cnt, &lastErrno) ){}
|
||||
/* isNT() is 1 if SQLITE_OS_WINCE==1, so this else is never executed.
|
||||
** Since the ANSI version of these Windows API do not exist for WINCE,
|
||||
** it's important to not reference them for WINCE builds.
|
||||
*/
|
||||
#if SQLITE_OS_WINCE==0
|
||||
}else{
|
||||
}
|
||||
#ifdef SQLITE_WIN32_HAS_ANSI
|
||||
else{
|
||||
while( (h = osCreateFileA((LPCSTR)zConverted,
|
||||
dwDesiredAccess,
|
||||
dwShareMode, NULL,
|
||||
@ -3216,9 +3204,8 @@ static int winOpen(
|
||||
dwFlagsAndAttributes,
|
||||
NULL))==INVALID_HANDLE_VALUE &&
|
||||
retryIoerr(&cnt, &lastErrno) ){}
|
||||
#endif
|
||||
}
|
||||
|
||||
#endif
|
||||
logIoerr(cnt);
|
||||
|
||||
OSTRACE(("OPEN %d %s 0x%lx %s\n",
|
||||
@ -3310,18 +3297,15 @@ static int winDelete(
|
||||
while( osGetFileAttributesW(zConverted)!=INVALID_FILE_ATTRIBUTES &&
|
||||
(rc = osDeleteFileW(zConverted))==0 && retryIoerr(&cnt, &lastErrno) ){}
|
||||
rc = rc ? SQLITE_OK : SQLITE_ERROR;
|
||||
/* isNT() is 1 if SQLITE_OS_WINCE==1, so this else is never executed.
|
||||
** Since the ANSI version of these Windows API do not exist for WINCE,
|
||||
** it's important to not reference them for WINCE builds.
|
||||
*/
|
||||
#if SQLITE_OS_WINCE==0
|
||||
}else{
|
||||
}
|
||||
#ifdef SQLITE_WIN32_HAS_ANSI
|
||||
else{
|
||||
rc = 1;
|
||||
while( osGetFileAttributesA(zConverted)!=INVALID_FILE_ATTRIBUTES &&
|
||||
(rc = osDeleteFileA(zConverted))==0 && retryIoerr(&cnt, &lastErrno) ){}
|
||||
rc = rc ? SQLITE_OK : SQLITE_ERROR;
|
||||
#endif
|
||||
}
|
||||
#endif
|
||||
if( rc ){
|
||||
rc = winLogError(SQLITE_IOERR_DELETE, lastErrno,
|
||||
"winDelete", zFilename);
|
||||
@ -3381,15 +3365,12 @@ static int winAccess(
|
||||
attr = INVALID_FILE_ATTRIBUTES;
|
||||
}
|
||||
}
|
||||
/* isNT() is 1 if SQLITE_OS_WINCE==1, so this else is never executed.
|
||||
** Since the ANSI version of these Windows API do not exist for WINCE,
|
||||
** it's important to not reference them for WINCE builds.
|
||||
*/
|
||||
#if SQLITE_OS_WINCE==0
|
||||
}else{
|
||||
attr = osGetFileAttributesA((char*)zConverted);
|
||||
#endif
|
||||
}
|
||||
#ifdef SQLITE_WIN32_HAS_ANSI
|
||||
else{
|
||||
attr = osGetFileAttributesA((char*)zConverted);
|
||||
}
|
||||
#endif
|
||||
sqlite3_free(zConverted);
|
||||
switch( flags ){
|
||||
case SQLITE_ACCESS_READ:
|
||||
@ -3470,12 +3451,9 @@ static int winFullPathname(
|
||||
sqlite3_free(zConverted);
|
||||
zOut = unicodeToUtf8(zTemp);
|
||||
sqlite3_free(zTemp);
|
||||
/* isNT() is 1 if SQLITE_OS_WINCE==1, so this else is never executed.
|
||||
** Since the ANSI version of these Windows API do not exist for WINCE,
|
||||
** it's important to not reference them for WINCE builds.
|
||||
*/
|
||||
#if SQLITE_OS_WINCE==0
|
||||
}else{
|
||||
}
|
||||
#ifdef SQLITE_WIN32_HAS_ANSI
|
||||
else{
|
||||
char *zTemp;
|
||||
nByte = osGetFullPathNameA((char*)zConverted, 0, 0, 0) + 3;
|
||||
zTemp = sqlite3_malloc( nByte*sizeof(zTemp[0]) );
|
||||
@ -3487,8 +3465,8 @@ static int winFullPathname(
|
||||
sqlite3_free(zConverted);
|
||||
zOut = sqlite3_win32_mbcs_to_utf8(zTemp);
|
||||
sqlite3_free(zTemp);
|
||||
#endif
|
||||
}
|
||||
#endif
|
||||
if( zOut ){
|
||||
sqlite3_snprintf(pVfs->mxPathname, zFull, "%s", zOut);
|
||||
sqlite3_free(zOut);
|
||||
@ -3517,15 +3495,12 @@ static void *winDlOpen(sqlite3_vfs *pVfs, const char *zFilename){
|
||||
}
|
||||
if( isNT() ){
|
||||
h = osLoadLibraryW((LPCWSTR)zConverted);
|
||||
/* isNT() is 1 if SQLITE_OS_WINCE==1, so this else is never executed.
|
||||
** Since the ANSI version of these Windows API do not exist for WINCE,
|
||||
** it's important to not reference them for WINCE builds.
|
||||
*/
|
||||
#if SQLITE_OS_WINCE==0
|
||||
}else{
|
||||
h = osLoadLibraryA((char*)zConverted);
|
||||
#endif
|
||||
}
|
||||
#ifdef SQLITE_WIN32_HAS_ANSI
|
||||
else{
|
||||
h = osLoadLibraryA((char*)zConverted);
|
||||
}
|
||||
#endif
|
||||
sqlite3_free(zConverted);
|
||||
return (void*)h;
|
||||
}
|
||||
|
Loading…
Reference in New Issue
Block a user