From: drh Date: Sun, 29 Jun 2003 18:29:47 +0000 (+0000) Subject: Fix a bad memory leak in the in-memory database module. (CVS 1039) X-Git-Tag: version-3.6.10~5029 X-Git-Url: http://git.ipfire.org/?a=commitdiff_plain;h=d6ae5973934689476f48cec0e9c4f2ac215f8070;p=thirdparty%2Fsqlite.git Fix a bad memory leak in the in-memory database module. (CVS 1039) FossilOrigin-Name: 9cca95937837333c91f5dee8c48178cf7e06d59f --- diff --git a/manifest b/manifest index b474ca4abe..6e111f6378 100644 --- a/manifest +++ b/manifest @@ -1,5 +1,5 @@ -C Bump\sthe\sversion\snumber\sin\spreparation\sfor\sthe\snext\srelease.\s(CVS\s1038) -D 2003-06-29T16:16:41 +C Fix\sa\sbad\smemory\sleak\sin\sthe\sin-memory\sdatabase\smodule.\s(CVS\s1039) +D 2003-06-29T18:29:48 F Makefile.in 9ad23ed4ca97f9670c4496432e3fbd4b3760ebde F Makefile.linux-gcc b86a99c493a5bfb402d1d9178dcdc4bd4b32f906 F README f1de682fbbd94899d50aca13d387d1b3fd3be2dd @@ -23,7 +23,7 @@ F src/attach.c 9f78b4aaac02a2b09ff108e92cbaee3199e7962a F src/auth.c c8f50d4507e37779d96ff3c55417bc2b612dfed6 F src/btree.c ba1cc0c71c3d2742b9a9047832335dc7d3656c45 F src/btree.h 9b7c09f1e64274d7bb74a57bbfc63778f67b1048 -F src/btree_rb.c a0dd64f840417b13637160599bd2740c8a340366 +F src/btree_rb.c f30f5cddc4375c05bf361116da1492d9601760ca F src/build.c 936d10b33b326546280690bee7f20efaf19a6fe8 F src/copy.c 9e47975ea96751c658bcf1a0c4f0bb7c6ee61e73 F src/delete.c 0f81e6799c089487615d38e042a2de4d2d6192bc @@ -166,7 +166,7 @@ F www/speed.tcl 2f6b1155b99d39adb185f900456d1d592c4832b3 F www/sqlite.tcl 3c83b08cf9f18aa2d69453ff441a36c40e431604 F www/tclsqlite.tcl 1db15abeb446aad0caf0b95b8b9579720e4ea331 F www/vdbe.tcl 9b9095d4495f37697fd1935d10e14c6015e80aa1 -P ab21de5fdd8e45be19411cdba647eada0bc9a9f1 -R 6283c1d7d53ae59cf5171d822dee880b +P 0532e1a8f5a310bb19b55dc29aa5b1f1172a14da +R 59392850afc02c8699556ed3526bfb9b U drh -Z 00a0c99b747a1e0c1094844a2f370c5b +Z 1045de8580d7f6762e47e878f632486d diff --git a/manifest.uuid b/manifest.uuid index 904ad20c32..cf4079eb05 100644 --- a/manifest.uuid +++ b/manifest.uuid @@ -1 +1 @@ -0532e1a8f5a310bb19b55dc29aa5b1f1172a14da \ No newline at end of file +9cca95937837333c91f5dee8c48178cf7e06d59f \ No newline at end of file diff --git a/src/btree_rb.c b/src/btree_rb.c index f8173a49ee..2468759583 100644 --- a/src/btree_rb.c +++ b/src/btree_rb.c @@ -9,7 +9,7 @@ ** May you share freely, never taking more than you give. ** ************************************************************************* -** $Id: btree_rb.c,v 1.13 2003/06/10 02:46:15 drh Exp $ +** $Id: btree_rb.c,v 1.14 2003/06/29 18:29:48 drh Exp $ ** ** This file implements an in-core database using Red-Black balanced ** binary trees. @@ -1180,21 +1180,6 @@ static char *memRbtreeIntegrityCheck(Rbtree* tree, int* aRoot, int nRoot) return msg; } -/* - * Close the supplied Rbtree. Delete everything associated with it. - */ -static int memRbtreeClose(Rbtree* tree) -{ - HashElem *p; - while( (p=sqliteHashFirst(&tree->tblHash))!=0 ){ - tree->eTransState = TRANS_ROLLBACK; - memRbtreeDropTable(tree, sqliteHashKeysize(p)); - } - sqliteHashClear(&tree->tblHash); - sqliteFree(tree); - return SQLITE_OK; -} - static int memRbtreeSetCacheSize(Rbtree* tree, int sz) { return SQLITE_OK; @@ -1238,6 +1223,22 @@ static int memRbtreeCommit(Rbtree* tree){ return SQLITE_OK; } +/* + * Close the supplied Rbtree. Delete everything associated with it. + */ +static int memRbtreeClose(Rbtree* tree) +{ + HashElem *p; + memRbtreeCommit(tree); + while( (p=sqliteHashFirst(&tree->tblHash))!=0 ){ + tree->eTransState = TRANS_ROLLBACK; + memRbtreeDropTable(tree, sqliteHashKeysize(p)); + } + sqliteHashClear(&tree->tblHash); + sqliteFree(tree); + return SQLITE_OK; +} + /* * Execute and delete the supplied rollback-list on pRbtree. */