]> git.ipfire.org Git - thirdparty/sqlite.git/commitdiff
Avoid redefining macros. Enable use of the Win32 native heap on WinRT. Use the...
authormistachkin <mistachkin@noemail.net>
Wed, 14 Mar 2012 20:17:34 +0000 (20:17 +0000)
committermistachkin <mistachkin@noemail.net>
Wed, 14 Mar 2012 20:17:34 +0000 (20:17 +0000)
FossilOrigin-Name: 46c412a8f6470c9e8c4bdeafaf4db435fbb694ab

manifest
manifest.uuid
src/os_win.c

index 37f6c99d5cdeab781af1ebe0671515721f9d4ae9..373fdaf5a74580cff4e6ed051a774471164a5725 100644 (file)
--- a/manifest
+++ b/manifest
@@ -1,5 +1,5 @@
-C Remove\sSQLITE_OS_WINRT\ssetting\sfrom\sMSVC\smakefile.
-D 2012-03-14T03:41:32.617
+C Avoid\sredefining\smacros.\s\sEnable\suse\sof\sthe\sWin32\snative\sheap\son\sWinRT.\s\sUse\sthe\ssyscall\stable\sto\scall\sOutputDebugStringW\sand\sfix\stype\scasting\swarnings.
+D 2012-03-14T20:17:34.431
 F Makefile.arm-wince-mingw32ce-gcc d6df77f1f48d690bd73162294bbba7f59507c72f
 F Makefile.in 2f37e468503dbe79d35c9f6dffcf3fae1ae9ec20
 F Makefile.linux-gcc 91d710bdc4998cb015f39edf3cb314ec4f4d7e23
@@ -167,7 +167,7 @@ F src/os.h 38aabd5e3ecd4162332076f55bb09cec02165cca
 F src/os_common.h 92815ed65f805560b66166e3583470ff94478f04
 F src/os_os2.c 4a75888ba3dfc820ad5e8177025972d74d7f2440
 F src/os_unix.c 0e3d2942d228d0366fb80a3640f35caf413b66d1
-F src/os_win.c ed4f4f5cad8c708d5e443139df0d65e9354b8368
+F src/os_win.c 7f5f9d8e2160512e42d446a69c7290fc2c3ba04b
 F src/pager.c 3955b62cdb5bb64559607cb474dd12a6c8e1d4a5
 F src/pager.h ef1eaf8593e78f73885c1dfac27ad83bee23bdc5
 F src/parse.y 1ddd71ae55f4b7cbb2672526ea4de023de0f519e
@@ -992,7 +992,7 @@ F tool/tostr.awk e75472c2f98dd76e06b8c9c1367f4ab07e122d06
 F tool/vdbe-compress.tcl d70ea6d8a19e3571d7ab8c9b75cba86d1173ff0f
 F tool/warnings-clang.sh 9f406d66e750e8ac031c63a9ef3248aaa347ef2a
 F tool/warnings.sh fbc018d67fd7395f440c28f33ef0f94420226381
-P c07cd85ca9698b48f960b164cab3a38472a17640
-R 25f557bcc396ad7a4290697a9464ba77
+P df4caf1326f5aa3ba11345e5e9604d7af4385fe8
+R 6d203715243f929ef5f7dee64f72709c
 U mistachkin
-Z 55001cc87e573530757b1e4bf77ede4f
+Z b2f77c539a50e8f1af539640575ebb2c
index 6b0e7d53826da7e345d8ebf85a79f2401f3e4173..a332570030d0fccac522c7710d0c43f1769d9633 100644 (file)
@@ -1 +1 @@
-df4caf1326f5aa3ba11345e5e9604d7af4385fe8
\ No newline at end of file
+46c412a8f6470c9e8c4bdeafaf4db435fbb694ab
\ No newline at end of file
index f2869218208451eb4d44f9f0cefe736fd2272342..a697e3774dea9f425772e9465420b9ac029d326c 100644 (file)
@@ -247,7 +247,9 @@ static struct win_syscall {
   { "AreFileApisANSI",         (SYSCALL)0,                       0 },
 #endif
 
+#ifndef osAreFileApisANSI
 #define osAreFileApisANSI ((BOOL(WINAPI*)(VOID))aSyscall[0].pCurrent)
+#endif
 
 #if SQLITE_OS_WINCE && defined(SQLITE_WIN32_HAS_WIDE)
   { "CharLowerW",              (SYSCALL)CharLowerW,              0 },
@@ -583,8 +585,10 @@ static struct win_syscall {
   { "LockFile",                (SYSCALL)0,                       0 },
 #endif
 
+#ifndef osLockFile
 #define osLockFile ((BOOL(WINAPI*)(HANDLE,DWORD,DWORD,DWORD, \
         DWORD))aSyscall[44].pCurrent)
+#endif
 
 #if !SQLITE_OS_WINCE
   { "LockFileEx",              (SYSCALL)LockFileEx,              0 },
@@ -592,8 +596,10 @@ static struct win_syscall {
   { "LockFileEx",              (SYSCALL)0,                       0 },
 #endif
 
+#ifndef osLockFileEx
 #define osLockFileEx ((BOOL(WINAPI*)(HANDLE,DWORD,DWORD,DWORD,DWORD, \
         LPOVERLAPPED))aSyscall[45].pCurrent)
+#endif
 
 #if !SQLITE_OS_WINRT
   { "MapViewOfFile",           (SYSCALL)MapViewOfFile,           0 },
@@ -651,8 +657,10 @@ static struct win_syscall {
   { "UnlockFile",              (SYSCALL)0,                       0 },
 #endif
 
+#ifndef osUnlockFile
 #define osUnlockFile ((BOOL(WINAPI*)(HANDLE,DWORD,DWORD,DWORD, \
         DWORD))aSyscall[54].pCurrent)
+#endif
 
 #if !SQLITE_OS_WINCE
   { "UnlockFileEx",            (SYSCALL)UnlockFileEx,            0 },
@@ -778,6 +786,10 @@ static struct win_syscall {
 
 #define osOutputDebugStringW ((VOID(WINAPI*)(LPCWSTR))aSyscall[70].pCurrent)
 
+  { "GetProcessHeap",          (SYSCALL)GetProcessHeap,          0 },
+
+#define osGetProcessHeap() ((HANDLE(WINAPI*)(VOID))aSyscall[71].pCurrent)
+
 }; /* End of the overrideable system calls */
 
 /*
@@ -885,10 +897,10 @@ void sqlite3_win32_write_debug(char *zBuf, int nBuf){
   memset(zDbgBuf, 0, SQLITE_WIN32_DBG_BUF_SIZE);
   if ( osMultiByteToWideChar(
           osAreFileApisANSI() ? CP_ACP : CP_OEMCP, 0, zBuf,
-          nMin, zDbgBuf, SQLITE_WIN32_DBG_BUF_SIZE/sizeof(WCHAR))<=0 ){
+          nMin, (LPWSTR)zDbgBuf, SQLITE_WIN32_DBG_BUF_SIZE/sizeof(WCHAR))<=0 ){
     return;
   }
-  OutputDebugStringW(zDbgBuf);
+  osOutputDebugStringW((LPCWSTR)zDbgBuf);
 #else
   if( nMin>0 ){
     memset(zDbgBuf, 0, SQLITE_WIN32_DBG_BUF_SIZE);
@@ -958,7 +970,7 @@ static void *winMemMalloc(int nBytes){
   hHeap = winMemGetHeap();
   assert( hHeap!=0 );
   assert( hHeap!=INVALID_HANDLE_VALUE );
-#ifdef SQLITE_WIN32_MALLOC_VALIDATE
+#ifdef !SQLITE_OS_WINRT && SQLITE_WIN32_MALLOC_VALIDATE
   assert ( osHeapValidate(hHeap, SQLITE_WIN32_HEAP_FLAGS, NULL) );
 #endif
   assert( nBytes>=0 );
@@ -980,7 +992,7 @@ static void winMemFree(void *pPrior){
   hHeap = winMemGetHeap();
   assert( hHeap!=0 );
   assert( hHeap!=INVALID_HANDLE_VALUE );
-#ifdef SQLITE_WIN32_MALLOC_VALIDATE
+#ifdef !SQLITE_OS_WINRT && SQLITE_WIN32_MALLOC_VALIDATE
   assert ( osHeapValidate(hHeap, SQLITE_WIN32_HEAP_FLAGS, pPrior) );
 #endif
   if( !pPrior ) return; /* Passing NULL to HeapFree is undefined. */
@@ -1001,7 +1013,7 @@ static void *winMemRealloc(void *pPrior, int nBytes){
   hHeap = winMemGetHeap();
   assert( hHeap!=0 );
   assert( hHeap!=INVALID_HANDLE_VALUE );
-#ifdef SQLITE_WIN32_MALLOC_VALIDATE
+#ifdef !SQLITE_OS_WINRT && SQLITE_WIN32_MALLOC_VALIDATE
   assert ( osHeapValidate(hHeap, SQLITE_WIN32_HEAP_FLAGS, pPrior) );
 #endif
   assert( nBytes>=0 );
@@ -1029,7 +1041,7 @@ static int winMemSize(void *p){
   hHeap = winMemGetHeap();
   assert( hHeap!=0 );
   assert( hHeap!=INVALID_HANDLE_VALUE );
-#ifdef SQLITE_WIN32_MALLOC_VALIDATE
+#ifdef !SQLITE_OS_WINRT && SQLITE_WIN32_MALLOC_VALIDATE
   assert ( osHeapValidate(hHeap, SQLITE_WIN32_HEAP_FLAGS, NULL) );
 #endif
   if( !p ) return 0;
@@ -1057,6 +1069,8 @@ static int winMemInit(void *pAppData){
 
   if( !pWinMemData ) return SQLITE_ERROR;
   assert( pWinMemData->magic==WINMEM_MAGIC );
+
+#if !SQLITE_OS_WINRT
   if( !pWinMemData->hHeap ){
     pWinMemData->hHeap = osHeapCreate(SQLITE_WIN32_HEAP_FLAGS,
                                       SQLITE_WIN32_HEAP_INIT_SIZE,
@@ -1069,10 +1083,21 @@ static int winMemInit(void *pAppData){
       return SQLITE_NOMEM;
     }
     pWinMemData->bOwned = TRUE;
+    assert( pWinMemData->bOwned );
+  }
+#else
+  pWinMemData->hHeap = osGetProcessHeap();
+  if( !pWinMemData->hHeap ){
+    sqlite3_log(SQLITE_NOMEM,
+        "failed to GetProcessHeap (%d)", osGetLastError());
+    return SQLITE_NOMEM;
   }
+  pWinMemData->bOwned = FALSE;
+  assert( !pWinMemData->bOwned );
+#endif
   assert( pWinMemData->hHeap!=0 );
   assert( pWinMemData->hHeap!=INVALID_HANDLE_VALUE );
-#ifdef SQLITE_WIN32_MALLOC_VALIDATE
+#ifdef !SQLITE_OS_WINRT && SQLITE_WIN32_MALLOC_VALIDATE
   assert( osHeapValidate(pWinMemData->hHeap, SQLITE_WIN32_HEAP_FLAGS, NULL) );
 #endif
   return SQLITE_OK;
@@ -1087,7 +1112,7 @@ static void winMemShutdown(void *pAppData){
   if( !pWinMemData ) return;
   if( pWinMemData->hHeap ){
     assert( pWinMemData->hHeap!=INVALID_HANDLE_VALUE );
-#ifdef SQLITE_WIN32_MALLOC_VALIDATE
+#ifdef !SQLITE_OS_WINRT && SQLITE_WIN32_MALLOC_VALIDATE
     assert( osHeapValidate(pWinMemData->hHeap, SQLITE_WIN32_HEAP_FLAGS, NULL) );
 #endif
     if( pWinMemData->bOwned ){
@@ -4112,7 +4137,7 @@ int sqlite3_os_init(void){
 
   /* Double-check that the aSyscall[] array has been constructed
   ** correctly.  See ticket [bb3a86e890c8e96ab] */
-  assert( ArraySize(aSyscall)==71 );
+  assert( ArraySize(aSyscall)==72 );
 
 #ifndef SQLITE_OMIT_WAL
   /* get memory map allocation granularity */