1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
|
--- a/sqlite3.c
+++ b/sqlite3.c
@@ -40656,8 +40656,12 @@
#if HAVE_MREMAP
pNew = osMremap(pOrig, nReuse, nNew, MREMAP_MAYMOVE);
zErr = "mremap";
+#else
+#if defined(MAP_POPULATE)
+ pNew = osMmap(pReq, nNew-nReuse, flags, MAP_SHARED | MAP_POPULATE, h, nReuse);
#else
pNew = osMmap(pReq, nNew-nReuse, flags, MAP_SHARED, h, nReuse);
+#endif
if( pNew!=MAP_FAILED ){
if( pNew!=pReq ){
osMunmap(pNew, nNew - nReuse);
@@ -40676,7 +40676,11 @@
/* If pNew is still NULL, try to create an entirely new mapping. */
if( pNew==0 ){
+#if defined(MAP_POPULATE)
+ pNew = osMmap(0, nNew, flags, MAP_SHARED | MAP_POPULATE, h, 0);
+#else
pNew = osMmap(0, nNew, flags, MAP_SHARED, h, 0);
+#endif
}
if( pNew==MAP_FAILED ){
|