mirror of
https://github.com/sqlite/sqlite.git
synced 2025-11-12 13:01:09 +03:00
Add experimental sqlite3_config option to control the native Win32 heap size.
FossilOrigin-Name: f09f11e94b5a7c2e51d99c3700d2acd2f3903de9
This commit is contained in:
16
src/os_win.c
16
src/os_win.c
@@ -1401,14 +1401,20 @@ static int winMemInit(void *pAppData){
|
||||
|
||||
#if !SQLITE_OS_WINRT && SQLITE_WIN32_HEAP_CREATE
|
||||
if( !pWinMemData->hHeap ){
|
||||
DWORD dwInitialSize = SQLITE_WIN32_HEAP_INIT_SIZE;
|
||||
DWORD dwMaximumSize = (DWORD)sqlite3GlobalConfig.nHeap;
|
||||
if( dwMaximumSize==0 ){
|
||||
dwMaximumSize = SQLITE_WIN32_HEAP_MAX_SIZE;
|
||||
}else if( dwInitialSize>dwMaximumSize ){
|
||||
dwInitialSize = dwMaximumSize;
|
||||
}
|
||||
pWinMemData->hHeap = osHeapCreate(SQLITE_WIN32_HEAP_FLAGS,
|
||||
SQLITE_WIN32_HEAP_INIT_SIZE,
|
||||
SQLITE_WIN32_HEAP_MAX_SIZE);
|
||||
dwInitialSize, dwMaximumSize);
|
||||
if( !pWinMemData->hHeap ){
|
||||
sqlite3_log(SQLITE_NOMEM,
|
||||
"failed to HeapCreate (%lu), flags=%u, initSize=%u, maxSize=%u",
|
||||
osGetLastError(), SQLITE_WIN32_HEAP_FLAGS,
|
||||
SQLITE_WIN32_HEAP_INIT_SIZE, SQLITE_WIN32_HEAP_MAX_SIZE);
|
||||
"failed to HeapCreate (%lu), flags=%u, initSize=%lu, maxSize=%lu",
|
||||
osGetLastError(), SQLITE_WIN32_HEAP_FLAGS, dwInitialSize,
|
||||
dwMaximumSize);
|
||||
return SQLITE_NOMEM;
|
||||
}
|
||||
pWinMemData->bOwned = TRUE;
|
||||
|
||||
Reference in New Issue
Block a user