39 lines
1.8 KiB
Plaintext
39 lines
1.8 KiB
Plaintext
$OpenBSD: patch-src_build_c,v 1.1 2011/12/21 00:38:11 nigel Exp $
|
|
|
|
patch for sparc
|
|
http://www.sqlite.org/src/info/54cc119811
|
|
|
|
--- src/build.c.orig Tue Nov 1 12:31:18 2011
|
|
+++ src/build.c Mon Dec 19 15:09:48 2011
|
|
@@ -2661,19 +2661,22 @@ Index *sqlite3CreateIndex(
|
|
nName = sqlite3Strlen30(zName);
|
|
nCol = pList->nExpr;
|
|
pIndex = sqlite3DbMallocZero(db,
|
|
- sizeof(Index) + /* Index structure */
|
|
- sizeof(tRowcnt)*(nCol+1) + /* Index.aiRowEst */
|
|
- sizeof(int)*nCol + /* Index.aiColumn */
|
|
- sizeof(char *)*nCol + /* Index.azColl */
|
|
- sizeof(u8)*nCol + /* Index.aSortOrder */
|
|
- nName + 1 + /* Index.zName */
|
|
- nExtra /* Collation sequence names */
|
|
+ sizeof(Index) + /* Index structure */
|
|
+ ROUND8(sizeof(tRowcnt)*(nCol+1)) + /* Index.aiRowEst */
|
|
+ sizeof(char *)*nCol + /* Index.azColl */
|
|
+ sizeof(int)*nCol + /* Index.aiColumn */
|
|
+ sizeof(u8)*nCol + /* Index.aSortOrder */
|
|
+ nName + 1 + /* Index.zName */
|
|
+ nExtra /* Collation sequence names */
|
|
);
|
|
if( db->mallocFailed ){
|
|
goto exit_create_index;
|
|
}
|
|
pIndex->aiRowEst = (tRowcnt*)(&pIndex[1]);
|
|
- pIndex->azColl = (char**)(&pIndex->aiRowEst[nCol+1]);
|
|
+ pIndex->azColl = (char**)
|
|
+ ((char*)pIndex->aiRowEst + ROUND8(sizeof(tRowcnt)*nCol+1));
|
|
+ assert( EIGHT_BYTE_ALIGNMENT(pIndex->aiRowEst) );
|
|
+ assert( EIGHT_BYTE_ALIGNMENT(pIndex->azColl) );
|
|
pIndex->aiColumn = (int *)(&pIndex->azColl[nCol]);
|
|
pIndex->aSortOrder = (u8 *)(&pIndex->aiColumn[nCol]);
|
|
pIndex->zName = (char *)(&pIndex->aSortOrder[nCol]);
|