]> git.ipfire.org Git - thirdparty/sqlite.git/commitdiff
Force 8-byte memory alignment on memory allocated for VDBE cursors.
authordrh <drh@noemail.net>
Fri, 13 Nov 2009 17:05:53 +0000 (17:05 +0000)
committerdrh <drh@noemail.net>
Fri, 13 Nov 2009 17:05:53 +0000 (17:05 +0000)
FossilOrigin-Name: bdc45ba77fb77771c8ff46b8d6c2dd29e6d3b019

manifest
manifest.uuid
src/btree.c
src/vdbe.c

index 81b65793136590d6a6b453bd05c617249da926a2..0790916e4a74fad06120f0e6a797d53157be1e1b 100644 (file)
--- a/manifest
+++ b/manifest
@@ -1,8 +1,8 @@
 -----BEGIN PGP SIGNED MESSAGE-----
 Hash: SHA1
 
-C Changes\sto\stest_intarray.c\sso\sthat\sit\sbuild\swith\sSQLITE_OMIT_VIRTUALTABLE.\nAdded\stestcase()\smacros\sto\sexpr.c.
-D 2009-11-13T15:04:00
+C Force\s8-byte\smemory\salignment\son\smemory\sallocated\sfor\sVDBE\scursors.
+D 2009-11-13T17:05:54
 F Makefile.arm-wince-mingw32ce-gcc fcd5e9cd67fe88836360bb4f9ef4cb7f8e2fb5a0
 F Makefile.in 53f3dfa49f28ab5b80cb083fb7c9051e596bcfa1
 F Makefile.linux-gcc d53183f4aa6a9192d249731c90dbdffbd2c68654
@@ -109,7 +109,7 @@ F src/auth.c 523da7fb4979469955d822ff9298352d6b31de34
 F src/backup.c 744e98359dfc79fed43e8dec911e33e108b06aae
 F src/bitvec.c 06ad2c36a9c3819c0b9cbffec7b15f58d5d834e0
 F src/btmutex.c 96a12f50f7a17475155971a241d85ec5171573ff
-F src/btree.c daf0129735fed8541f8233288ed21223cd80294f
+F src/btree.c 4076d11eaf78382514707ee7013cb0e2e59c1437
 F src/btree.h ddd915fd44fea35f98b5505513f6a40a3308c7a6
 F src/btreeInt.h 54f4245decd0409ea52cf9aee422d3d761d7ac10
 F src/build.c a48e74d24897100017d39ceba5de255e53ec9488
@@ -210,7 +210,7 @@ F src/update.c 8efeb09822886e33c265dd96d29a3d865ea6dcf2
 F src/utf.c dad16adcc0c35ef2437dca125a4b07419d361052
 F src/util.c ad4f03079ba0fe83590d1cc9197e8e4844e38592
 F src/vacuum.c 03309a08d549f9389cc3a3589afd4fadbdaf0679
-F src/vdbe.c d035dd3b693cb37874dfdfc77812e8496c435380
+F src/vdbe.c 3067cfcc86e61e1662f7322aa153f52857b61f8b
 F src/vdbe.h 65cd747e36ad444cb1a17e529030942c45a61fe3
 F src/vdbeInt.h 59c65e7b810836b9e946acee45c7b3c02b967d1b
 F src/vdbeapi.c 17680ab7a75ec938c5ba039a6c87489d01faf2cb
@@ -771,14 +771,14 @@ F tool/speedtest2.tcl ee2149167303ba8e95af97873c575c3e0fab58ff
 F tool/speedtest8.c 2902c46588c40b55661e471d7a86e4dd71a18224
 F tool/speedtest8inst1.c 293327bc76823f473684d589a8160bde1f52c14e
 F tool/vdbe-compress.tcl d70ea6d8a19e3571d7ab8c9b75cba86d1173ff0f
-P 6705ab1ad12cbdbbcf1f3e5439a4e6cbdcc421b3
-R 113ec7e28504a631fbea880c6edbe4b5
+P f0599d28fabe9e67a7150a91c266cb7655a2002e
+R b787bcf50272d59401284264a4dcbb30
 U drh
-Z 55bd08a5e60091a7c6ccfe092d37cd33
+Z 255150de2174a2682813e546e8d990c7
 -----BEGIN PGP SIGNATURE-----
 Version: GnuPG v1.4.6 (GNU/Linux)
 
-iD8DBQFK/XVjoxKgR168RlERAkI6AJ92F0IYOBbisAxZZJEawtvMIRZbRwCbBrkq
-ORTLeq5KTxD7nLajGv9hog8=
-=/pam
+iD8DBQFK/ZH1oxKgR168RlERAuF9AJ9hHIIG7PFtXPqnbvCge9luG/0VIACfc7kV
+v+sk467/hW51kXF6lY7carY=
+=mwCb
 -----END PGP SIGNATURE-----
index 5747e35385a88e224a6339ea5af07282a68a6c35..387904bf6c240d733cef87e38edffe79d8b3c532 100644 (file)
@@ -1 +1 @@
-f0599d28fabe9e67a7150a91c266cb7655a2002e
\ No newline at end of file
+bdc45ba77fb77771c8ff46b8d6c2dd29e6d3b019
\ No newline at end of file
index f40be1d4bae6d1717ea0364285c7c27de96b80b0..cbf93d222e8a86c4466d9766dc9f72b93eb43aa8 100644 (file)
@@ -3352,7 +3352,7 @@ int sqlite3BtreeCursor(
 ** this routine.
 */
 int sqlite3BtreeCursorSize(void){
-  return sizeof(BtCursor);
+  return ROUND8(sizeof(BtCursor));
 }
 
 /*
index a13a7e62aad1c5303ab35b285fb9a2f22b31a99c..19548f6357d0a3cb2c48391ea89bcc3a7583bb58 100644 (file)
@@ -221,7 +221,7 @@ static VdbeCursor *allocateCursor(
   int nByte;
   VdbeCursor *pCx = 0;
   nByte = 
-      sizeof(VdbeCursor) + 
+      ROUND8(sizeof(VdbeCursor)) + 
       (isBtreeCursor?sqlite3BtreeCursorSize():0) + 
       2*nField*sizeof(u32);
 
@@ -232,15 +232,15 @@ static VdbeCursor *allocateCursor(
   }
   if( SQLITE_OK==sqlite3VdbeMemGrow(pMem, nByte, 0) ){
     p->apCsr[iCur] = pCx = (VdbeCursor*)pMem->z;
-    memset(pMem->z, 0, nByte);
+    memset(pCx, 0, nByte);
     pCx->iDb = iDb;
     pCx->nField = nField;
     if( nField ){
-      pCx->aType = (u32 *)&pMem->z[sizeof(VdbeCursor)];
+      pCx->aType = (u32 *)&pMem->z[ROUND8(sizeof(VdbeCursor))];
     }
     if( isBtreeCursor ){
       pCx->pCursor = (BtCursor*)
-          &pMem->z[sizeof(VdbeCursor)+2*nField*sizeof(u32)];
+          &pMem->z[ROUND8(sizeof(VdbeCursor))+2*nField*sizeof(u32)];
     }
   }
   return pCx;