Fix the computation of the offset on the mmap() for the Nth shared memory

region.  Because of the way shared memory is accessed, the old computation,
though wrong, still happened to always get the right answer.  Nevertheless,
it is good to do the computation correctly.

FossilOrigin-Name: 36397f62f2e3a62b4d5730b29c197449c6850cac
This commit is contained in:
drh 2010-09-02 14:00:19 +00:00
parent 4336cc45c5
commit 37e8b5b2cc
3 changed files with 19 additions and 9 deletions

View File

@ -1,5 +1,8 @@
C Add\stests\sfor\sthe\sEXISTS\soperator\sto\se_expr.test.
D 2010-09-02T11:53:12
-----BEGIN PGP SIGNED MESSAGE-----
Hash: SHA1
C Fix\sthe\scomputation\sof\sthe\soffset\son\sthe\smmap()\sfor\sthe\sNth\sshared\smemory\nregion.\s\sBecause\sof\sthe\sway\sshared\smemory\sis\saccessed,\sthe\sold\scomputation,\nthough\swrong,\sstill\shappened\sto\salways\sget\sthe\sright\sanswer.\s\sNevertheless,\nit\sis\sgood\sto\sdo\sthe\scomputation\scorrectly.
D 2010-09-02T14:00:20
F Makefile.arm-wince-mingw32ce-gcc d6df77f1f48d690bd73162294bbba7f59507c72f
F Makefile.in c599a15d268b1db2aeadea19df2adc3bf2eb6bee
F Makefile.linux-gcc 91d710bdc4998cb015f39edf3cb314ec4f4d7e23
@ -157,7 +160,7 @@ F src/os.c 22ac61d06e72a0dac900400147333b07b13d8e1d
F src/os.h 9dbed8c2b9c1f2f2ebabc09e49829d4777c26bf9
F src/os_common.h a8f95b81eca8a1ab8593d23e94f8a35f35d4078f
F src/os_os2.c 72d0b2e562952a2464308c4ce5f7913ac10bef3e
F src/os_unix.c 11194cbcf6a57456e58022dc537ab8c3497d9bb9
F src/os_unix.c 6152042c3a619fbc390eeb59a8eecafa40afc2e4
F src/os_win.c 6fb3447ffe56df0dbb2d1ac93f75c9c748e009e1
F src/pager.c 51d77a9df463f77bf214f32bb2dbc2d0da41fc3e
F src/pager.h 8167a1e720d0b7a2790079007128e594010220ad
@ -853,7 +856,14 @@ F tool/speedtest2.tcl ee2149167303ba8e95af97873c575c3e0fab58ff
F tool/speedtest8.c 2902c46588c40b55661e471d7a86e4dd71a18224
F tool/speedtest8inst1.c 293327bc76823f473684d589a8160bde1f52c14e
F tool/vdbe-compress.tcl d70ea6d8a19e3571d7ab8c9b75cba86d1173ff0f
P 4f20f8ba73691c8a1dc33d2fcd1e793dd08f00a8
R 56226584a3a9f449af1f96c66ab8d183
U dan
Z 0980fdb8cedd555819cdc0c243aa9897
P 9f9a95cc80961b2733d34bd66cfccfbffb358ed6
R 375117f40846cbcf3ed59771957c33dc
U drh
Z 813bffd67570d279df85b00e1e0381f2
-----BEGIN PGP SIGNATURE-----
Version: GnuPG v1.4.6 (GNU/Linux)
iD8DBQFMf64DoxKgR168RlERAm3mAKCJYg0NgV/9x1Zy7yq3CaAtP7HrvQCfRVwM
WXwE2VoEyF7jaJvyxhfzaLc=
=CeXU
-----END PGP SIGNATURE-----

View File

@ -1 +1 @@
9f9a95cc80961b2733d34bd66cfccfbffb358ed6
36397f62f2e3a62b4d5730b29c197449c6850cac

View File

@ -3559,7 +3559,7 @@ static int unixShmMap(
pShmNode->apRegion = apNew;
while(pShmNode->nRegion<=iRegion){
void *pMem = mmap(0, szRegion, PROT_READ|PROT_WRITE,
MAP_SHARED, pShmNode->h, iRegion*szRegion
MAP_SHARED, pShmNode->h, pShmNode->nRegion*szRegion
);
if( pMem==MAP_FAILED ){
rc = SQLITE_IOERR;