]> git.ipfire.org Git - thirdparty/sqlite.git/commitdiff
Change to compile-time option that omits non-UWP system calls to
authordrh <>
Wed, 13 May 2026 18:07:01 +0000 (18:07 +0000)
committerdrh <>
Wed, 13 May 2026 18:07:01 +0000 (18:07 +0000)
SQLITE_UWP.  Takes steps to eliminate all non-UWP system calls when that
compile-time option is used.

FossilOrigin-Name: b167c4c96e6a753952eb4be95d6283b50a9c59f4ecf59d60cf10d8de9cb115d8

manifest
manifest.uuid
src/os_win.c

index a99607adbec87e5059fa08f43cd8ca18b5893426..f850709b76912b6f80464eac28d1e56097bd95e4 100644 (file)
--- a/manifest
+++ b/manifest
@@ -1,5 +1,5 @@
-C In\sthe\sWindows\sOS\sinterface,\suse\sCreateFileMappingFromApp()\sand\nMapViewOfFilFromApp()\sif\sSQLITE_OS_WINRT\sis\sdefined.
-D 2026-05-13T15:11:04.511
+C Change\sto\scompile-time\soption\sthat\somits\snon-UWP\ssystem\scalls\sto\nSQLITE_UWP.\s\sTakes\ssteps\sto\seliminate\sall\snon-UWP\ssystem\scalls\swhen\sthat\ncompile-time\soption\sis\sused.
+D 2026-05-13T18:07:01.202
 F .fossil-settings/binary-glob 61195414528fb3ea9693577e1980230d78a1f8b0a54c78cf1b9b24d0a409ed6a x
 F .fossil-settings/empty-dirs dbb81e8fc0401ac46a1491ab34a7f2c7c0452f2f06b54ebb845d024ca8283ef1
 F .fossil-settings/ignore-glob 35175cdfcf539b2318cb04a9901442804be81cd677d8b889fcc9149c21f239ea
@@ -722,7 +722,7 @@ F src/os_common.h 6c0eb8dd40ef3e12fe585a13e709710267a258e2c8dd1c40b1948a1d14582e
 F src/os_kv.c e7d96727db5b67e39d590a68cc61c86daf4c093c36c011a09ebfb521182ec28d
 F src/os_setup.h 8efc64eda6a6c2f221387eefc2e7e45fd5a3d5c8337a7a83519ba4fbd2957ae2
 F src/os_unix.c a07dce662f6c4e18098f6faa9f7ec7cf311f56ee9151bed2aad4dcd55852c9e2
-F src/os_win.c 8b717f9ceef3dae9de9b54fe8f5b58a11fc89f8a043ec35619d0dcbce8d64629
+F src/os_win.c c9e1a153e9060a9ce98ae447b305f74dbd619dc62f1e52c52f25f0709031554d
 F src/os_win.h c06ccc3a090cf54202ea58981c298817f3309d4c9e4d52ad0a02927346493721
 F src/pager.c fbec9063ea139dfa5d94ce540671752b89f8e8dc38f8a1f614bab1aa04a2dd40
 F src/pager.h 6137149346e6c8a3ddc1eeb40aee46381e9bc8b0fcc6dda8a1efde993c2275b8
@@ -2205,8 +2205,8 @@ F tool/warnings-clang.sh bbf6a1e685e534c92ec2bfba5b1745f34fb6f0bc2a362850723a9ee
 F tool/warnings.sh a554d13f6e5cf3760f041b87939e3d616ec6961859c3245e8ef701d1eafc2ca2
 F tool/win/sqlite.vsix deb315d026cc8400325c5863eef847784a219a2f
 F tool/winmain.c 00c8fb88e365c9017db14c73d3c78af62194d9644feaf60e220ab0f411f3604c
-P 4b7f0130d68c7a0b98e87d09d0a661c85554215cb111478305307960deab3921
-R dbda3f62b7f97cec2a0b0264a507d59f
+P 3c51436b43ab77b88134851a2773147b49a3c4fb5b0416db5e318b6e12d3b708
+R 0f25f96371c055952175c297cbaf04d6
 U drh
-Z 0e29719eca3494ab962ae7aa1c9d1542
+Z 021116e6f51fa817faa469cbfc4eae38
 # Remove this line to create a well-formed Fossil manifest.
index bd41c014129825f38b3c9b3aa708541540a8456e..2596d6aaf36b000510c4372cb6dcae9b0b853f8f 100644 (file)
@@ -1 +1 @@
-3c51436b43ab77b88134851a2773147b49a3c4fb5b0416db5e318b6e12d3b708
+b167c4c96e6a753952eb4be95d6283b50a9c59f4ecf59d60cf10d8de9cb115d8
index da5856c748512ab30057be3227f2dc552dc1059c..969c617d82e811c2aed77113d7fd60c3782a4143 100644 (file)
@@ -383,7 +383,7 @@ static struct win_syscall {
 #define osCreateFileW ((HANDLE(WINAPI*)(LPCWSTR,DWORD,DWORD, \
         LPSECURITY_ATTRIBUTES,DWORD,DWORD,HANDLE))aSyscall[2].pCurrent)
 
-#if defined(SQLITE_OS_WINRT)
+#if defined(SQLITE_UWP)
   { "CreateFileMappingFromApp",(SYSCALL)CreateFileMappingFromApp,0 },
 #else
   { "CreateFileMappingFromApp",(SYSCALL)0,                       0 },
@@ -392,7 +392,7 @@ static struct win_syscall {
         PSECURITY_ATTRIBUTES, \
         ULONG,ULONG64,PCWSTR))aSyscall[3].pCurrent)
 
-#if !defined(SQLITE_OS_WINRT)
+#if !defined(SQLITE_UWP)
   { "CreateFileMappingW",      (SYSCALL)CreateFileMappingW,      0 },
 #else
   { "CreateFileMappingW",      (SYSCALL)0,                       0 },
@@ -453,39 +453,75 @@ static struct win_syscall {
 #define osGetSystemTimeAsFileTime ((VOID(WINAPI*)( \
         LPFILETIME))aSyscall[17].pCurrent)
 
+#ifdef SQLITE_UWP
+  { "GetTempPathW",            (SYSCALL)0,                       0 },
+#else
   { "GetTempPathW",            (SYSCALL)GetTempPathW,            0 },
+#endif
 #define osGetTempPathW ((DWORD(WINAPI*)(DWORD,LPWSTR))aSyscall[18].pCurrent)
 
   { "GetTickCount64",          (SYSCALL)GetTickCount64,          0 },
 #define osGetTickCount64 ((ULONGLONG(WINAPI*)(VOID))aSyscall[19].pCurrent)
 
+#ifdef SQLITE_UWP
+  { "HeapAlloc",               (SYSCALL)0,                       0 },
+#else
   { "HeapAlloc",               (SYSCALL)HeapAlloc,               0 },
+#endif
 #define osHeapAlloc ((LPVOID(WINAPI*)(HANDLE,DWORD, \
         SIZE_T))aSyscall[20].pCurrent)
 
+#ifdef SQLITE_UWP
+  { "HeapCreate",              (SYSCALL)0,                       0 },
+#else
   { "HeapCreate",              (SYSCALL)HeapCreate,              0 },
+#endif
 #define osHeapCreate ((HANDLE(WINAPI*)(DWORD,SIZE_T, \
         SIZE_T))aSyscall[21].pCurrent)
 
+#ifdef SQLITE_UWP
+  { "HeapDestroy",             (SYSCALL)0,                       0 },
+#else
   { "HeapDestroy",             (SYSCALL)HeapDestroy,             0 },
+#endif
 #define osHeapDestroy ((BOOL(WINAPI*)(HANDLE))aSyscall[22].pCurrent)
 
+#ifdef SQLITE_UWP
+  { "HeapFree",                (SYSCALL)0,                       0 },
+#else
   { "HeapFree",                (SYSCALL)HeapFree,                0 },
+#endif
 #define osHeapFree ((BOOL(WINAPI*)(HANDLE,DWORD,LPVOID))aSyscall[23].pCurrent)
 
+#ifdef SQLITE_UWP
+  { "HeapReAlloc",             (SYSCALL)0,                       0 },
+#else
   { "HeapReAlloc",             (SYSCALL)HeapReAlloc,             0 },
+#endif
 #define osHeapReAlloc ((LPVOID(WINAPI*)(HANDLE,DWORD,LPVOID, \
         SIZE_T))aSyscall[24].pCurrent)
 
+#ifdef SQLITE_UWP
+  { "HeapSize",                (SYSCALL)0,                       0 },
+#else
   { "HeapSize",                (SYSCALL)HeapSize,                0 },
+#endif
 #define osHeapSize ((SIZE_T(WINAPI*)(HANDLE,DWORD, \
         LPCVOID))aSyscall[25].pCurrent)
 
+#ifdef SQLITE_UWP
+  { "HeapValidate",            (SYSCALL)0,                       0 },
+#else
   { "HeapValidate",            (SYSCALL)HeapValidate,            0 },
+#endif
 #define osHeapValidate ((BOOL(WINAPI*)(HANDLE,DWORD, \
         LPCVOID))aSyscall[26].pCurrent)
 
+#ifdef SQLITE_UWP
+  { "HeapCompact",             (SYSCALL)0,                       0 },
+#else
   { "HeapCompact",             (SYSCALL)HeapCompact,             0 },
+#endif
 #define osHeapCompact ((UINT(WINAPI*)(HANDLE,DWORD))aSyscall[27].pCurrent)
 
 
@@ -504,7 +540,7 @@ static struct win_syscall {
         LPOVERLAPPED))aSyscall[30].pCurrent)
 
 #if (!defined(SQLITE_OMIT_WAL) || SQLITE_MAX_MMAP_SIZE>0) \
- && !defined(SQLITE_OS_WINRT)
+ && !defined(SQLITE_UWP)
   { "MapViewOfFile",           (SYSCALL)MapViewOfFile,           0 },
 #else
   { "MapViewOfFile",           (SYSCALL)0,                       0 },
@@ -513,7 +549,7 @@ static struct win_syscall {
         SIZE_T))aSyscall[31].pCurrent)
 
 #if (!defined(SQLITE_OMIT_WAL) || SQLITE_MAX_MMAP_SIZE>0) \
- && defined(SQLITE_OS_WINRT)
+ && defined(SQLITE_UWP)
   { "MapViewOfFileFromApp",    (SYSCALL)MapViewOfFileFromApp,   0 },
 #else
   { "MapViewOfFileFromApp",    (SYSCALL)0,                      0 },
@@ -757,6 +793,9 @@ static const char *winNextSystemCall(sqlite3_vfs *p, const char *zName){
 }
 
 #ifdef SQLITE_WIN32_MALLOC
+#ifdef SQLITE_UWP
+# error SQLITE_WIN32_MALLOC is incompatible with SQLITE_UWP
+#endif
 /*
 ** If a Win32 native heap has been configured, this function will attempt to
 ** compact it.  Upon success, SQLITE_OK will be returned.  Upon failure, one
@@ -3627,7 +3666,7 @@ static int winShmMap(
       HANDLE hMap = NULL;         /* file-mapping handle */
       void *pMap = 0;             /* Mapped memory region */
 
-#ifdef SQLITE_OS_WINRT
+#ifdef SQLITE_UWP
       hMap = osCreateFileMappingFromApp(hShared, NULL, protect, nByte, NULL);
 #else
       hMap = osCreateFileMappingW(hShared, NULL, protect, 0, nByte, NULL);
@@ -3638,7 +3677,7 @@ static int winShmMap(
       if( hMap ){
         int iOffset = pShmNode->nRegion*szRegion;
         int iOffsetShift = iOffset % winSysInfo.dwAllocationGranularity;
-#ifdef SQLITE_OS_WINRT
+#ifdef SQLITE_UWP
         pMap = osMapViewOfFileFromApp(hMap, flags,
             iOffset - iOffsetShift, szRegion + iOffsetShift
         );
@@ -3779,7 +3818,7 @@ static int winMapfile(winFile *pFd, sqlite3_int64 nByte){
       flags |= FILE_MAP_WRITE;
     }
 #endif
-#ifdef SQLITE_OS_WINRT
+#ifdef SQLITE_UWP
     pFd->hMap = osCreateFileMappingFromApp(pFd->h, NULL, protect, nMap, NULL);
 #else
     pFd->hMap = osCreateFileMappingW(pFd->h, NULL, protect,
@@ -3797,7 +3836,7 @@ static int winMapfile(winFile *pFd, sqlite3_int64 nByte){
     }
     assert( (nMap % winSysInfo.dwPageSize)==0 );
     assert( sizeof(SIZE_T)==sizeof(sqlite3_int64) || nMap<=0xffffffff );
-#ifdef SQLITE_OS_WINRT
+#ifdef SQLITE_UWP
     pNew = osMapViewOfFileFromApp(pFd->hMap, flags, 0, (SIZE_T)nMap);
 #else
     pNew = osMapViewOfFile(pFd->hMap, flags, 0, 0, (SIZE_T)nMap);
@@ -4144,7 +4183,7 @@ static int winGetTempname(sqlite3_vfs *pVfs, char **pzBuf){
       OSTRACE(("TEMP-FILENAME rc=SQLITE_IOERR_NOMEM\n"));
       return SQLITE_IOERR_NOMEM_BKPT;
     }
-    if( osGetTempPathW(nMax, zWidePath)==0 ){
+    if( osGetTempPathW==0 || osGetTempPathW(nMax, zWidePath)==0 ){
       sqlite3_free(zWidePath);
       sqlite3_free(zBuf);
       OSTRACE(("TEMP-FILENAME rc=SQLITE_IOERR_GETTEMPPATH\n"));
@@ -5040,6 +5079,9 @@ static int winRandomness(sqlite3_vfs *pVfs, int nBuf, char *zBuf){
     xorMemory(&e, (unsigned char*)&i, sizeof(LARGE_INTEGER));
   }
 #if SQLITE_WIN32_USE_UUID
+#ifdef SQLITE_UWP
+# error SQLITE_WIN32_USE_UUID is incompatible with SQLITE_UWP
+#endif
   {
     UUID id;
     memset(&id, 0, sizeof(UUID));