]> git.ipfire.org Git - thirdparty/sqlite.git/commitdiff
Avoid allocating excess memory to the KeyInfo objects.
authordrh <drh@noemail.net>
Wed, 31 May 2017 13:45:59 +0000 (13:45 +0000)
committerdrh <drh@noemail.net>
Wed, 31 May 2017 13:45:59 +0000 (13:45 +0000)
FossilOrigin-Name: df7859435161f3ecf36635ce574bf73573516a1f2c6e75be320619364e7067d1

manifest
manifest.uuid
src/select.c

index b07ac856e5963e33d984f18ba732f2e55782a0c7..a0781290b703793c7cdffb98b5dd4f0e377ae1c9 100644 (file)
--- 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
index 89f0aba28c0d4bd909ec0e9a10e6ab16b7e7b3ba..c2bff85e28bbbea2f7df02c4445bf847007039b5 100644 (file)
@@ -1 +1 @@
-7d58836b9db1293a3a6581af4358b7c91a588efd5c9b2df384803f3855ff87a8
\ No newline at end of file
+df7859435161f3ecf36635ce574bf73573516a1f2c6e75be320619364e7067d1
\ No newline at end of file
index 9d4c1591981150f40779b820cff97798a1b915cf..51cd089a2fd2ea8aebd82e42fcf0d3e3ab2946d7 100644 (file)
@@ -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];