From: drh Date: Wed, 31 May 2017 13:45:59 +0000 (+0000) Subject: Avoid allocating excess memory to the KeyInfo objects. X-Git-Tag: version-3.20.0~228 X-Git-Url: http://git.ipfire.org/?a=commitdiff_plain;h=d4ab003d4e6da436688d1ebf9c6b3d4bbc37bb7d;p=thirdparty%2Fsqlite.git Avoid allocating excess memory to the KeyInfo objects. FossilOrigin-Name: df7859435161f3ecf36635ce574bf73573516a1f2c6e75be320619364e7067d1 --- diff --git a/manifest b/manifest index b07ac856e5..a0781290b7 100644 --- a/manifest +++ b/manifest @@ -1,5 +1,5 @@ -C Remove\sa\scompletely\sunnecessary\smemset()\sfrom\sthe\sINSERT\scode\sgenerator. -D 2017-05-31T13:27:15.732 +C Avoid\sallocating\sexcess\smemory\sto\sthe\sKeyInfo\sobjects. +D 2017-05-31T13:45:59.027 F Makefile.in 1cc758ce3374a32425e4d130c2fe7b026b20de5b8843243de75f087c0a2661fb F Makefile.linux-gcc 7bc79876b875010e8c8f9502eb935ca92aa3c434 F Makefile.msc 8eeb80162074004e906b53d7340a12a14c471a83743aab975947e95ce061efcc @@ -404,7 +404,7 @@ F src/printf.c 8757834f1b54dae512fb25eb1acc8e94a0d15dd2290b58f2563f65973265adb2 F src/random.c 80f5d666f23feb3e6665a6ce04c7197212a88384 F src/resolve.c adf3ef9843135b1383321ad751f16f5a40c3f37925154555a3e61653d2a954e8 F src/rowset.c 7b7e7e479212e65b723bf40128c7b36dc5afdfac -F src/select.c fd0a17fb78130fe840a33024888d41c77ed0bab0340b72cf71b1558d5f465e88 +F src/select.c d93205e43af302d9eb147fddecc956509ee9d0dde6297ee3f93c591f60f0e295 F src/shell.c 3f761fe604174b31aacd2ea2eacef5e6fe550111d60c0d71532cc008c68cf3f3 F src/sqlite.h.in 8dd468837a4f6d76713e3a4cc65bea48095009038593d41040ab46c1b351197f F src/sqlite3.rc 5121c9e10c3964d5755191c80dd1180c122fc3a8 @@ -1581,7 +1581,7 @@ F vsixtest/vsixtest.tcl 6a9a6ab600c25a91a7acc6293828957a386a8a93 F vsixtest/vsixtest.vcxproj.data 2ed517e100c66dc455b492e1a33350c1b20fbcdc F vsixtest/vsixtest.vcxproj.filters 37e51ffedcdb064aad6ff33b6148725226cd608e F vsixtest/vsixtest_TemporaryKey.pfx e5b1b036facdb453873e7084e1cae9102ccc67a0 -P 8885b4461044ae8ecdfe1b9aa47f4aad65efabc98e3fcd9e307a06504fab34c6 -R cc1154430da7b77ebab75d70354618af +P 7d58836b9db1293a3a6581af4358b7c91a588efd5c9b2df384803f3855ff87a8 +R b70477f1b05ff8dccc7f12ef24aebb6f U drh -Z 89e693181079061c65ab41950ea33320 +Z 0bedcf782ef15ce371124a537b1d55ab diff --git a/manifest.uuid b/manifest.uuid index 89f0aba28c..c2bff85e28 100644 --- a/manifest.uuid +++ b/manifest.uuid @@ -1 +1 @@ -7d58836b9db1293a3a6581af4358b7c91a588efd5c9b2df384803f3855ff87a8 \ No newline at end of file +df7859435161f3ecf36635ce574bf73573516a1f2c6e75be320619364e7067d1 \ No newline at end of file diff --git a/src/select.c b/src/select.c index 9d4c159198..51cd089a2f 100644 --- a/src/select.c +++ b/src/select.c @@ -1031,7 +1031,7 @@ static void selectInnerLoop( ** X extra columns. */ KeyInfo *sqlite3KeyInfoAlloc(sqlite3 *db, int N, int X){ - int nExtra = (N+X)*(sizeof(CollSeq*)+1); + int nExtra = (N+X)*(sizeof(CollSeq*)+1) - sizeof(CollSeq*); KeyInfo *p = sqlite3DbMallocRawNN(db, sizeof(KeyInfo) + nExtra); if( p ){ p->aSortOrder = (u8*)&p->aColl[N+X];