From: dan Date: Mon, 31 Aug 2009 05:39:58 +0000 (+0000) Subject: Merge with main branch. X-Git-Tag: fts3-refactor~218^2~4 X-Git-Url: http://git.ipfire.org/?a=commitdiff_plain;h=c02008333c9f9cd3016aae950a5d12fcdde5bb3c;p=thirdparty%2Fsqlite.git Merge with main branch. FossilOrigin-Name: 6e09e28751a7071969ef9f3445f4092d2c28f358 --- c02008333c9f9cd3016aae950a5d12fcdde5bb3c diff --cc manifest index 5b2e27eec1,ebd310226d..d395377891 --- a/manifest +++ b/manifest @@@ -1,5 -1,8 +1,5 @@@ - C Fix\sanother\stest\sproblem\sand\ssome\sinstances\swhere\san\sOOM\smay\scause\sa\ssegfault. - D 2009-08-31T05:23:33 ------BEGIN PGP SIGNED MESSAGE----- -Hash: SHA1 - -C Add\sa\snew\ssource\scode\slogo\sgif. -D 2009-08-28T00:49:03 ++C Merge\swith\smain\sbranch. ++D 2009-08-31T05:39:59 F Makefile.arm-wince-mingw32ce-gcc fcd5e9cd67fe88836360bb4f9ef4cb7f8e2fb5a0 F Makefile.in 73ddeec9dd10b85876c5c2ce1fdce627e1dcc7f8 F Makefile.linux-gcc d53183f4aa6a9192d249731c90dbdffbd2c68654 @@@ -105,10 -109,10 +106,10 @@@ F src/auth.c 802a9439dfa0b8c208b10055cb F src/backup.c 6f1c2d9862c8a3feb7739dfcca02c1f5352e37f3 F src/bitvec.c e08f6c1a9551b88081fc737916c6c3fd5029a6cf F src/btmutex.c 0f43a75bb5b8147b386e8e1c3e71ba734e3863b7 - F src/btree.c 49212ddaee8d7d12b4f1e17b9de62f7ea91ca59d + F src/btree.c 6b60ece56141bbe23aa6efca10f1612d34271c2f F src/btree.h 577448a890c2ab9b21e6ab74f073526184bceebe F src/btreeInt.h 1c86297e69380f6577e7ae67452597dd8d5c2705 -F src/build.c a43c959c5953c25989207c929f99ef808d5336a6 +F src/build.c 212476dc971756e7f7429e677059fafc678afbd5 F src/callback.c 9bc0ae998f15207d3115224979331c0aafc9bcc3 F src/complete.c 5ad5c6cd4548211867c204c41a126d73a9fbcea0 F src/date.c ab5f7137656652a48434d64f96bdcdc823bb23b3 @@@ -152,17 -156,17 +153,17 @@@ F src/parse.y 6c42631e72a3d14cde2bee85e F src/pcache.c c92ffd4f3e1279b3766854c6d18b5bf4aac0d1fa F src/pcache.h 435ef324197f79391f9c92b71d7f92b548ad7a36 F src/pcache1.c 211295a9ff6a5b30f1ca50516731a5cf3e9bf82c -F src/pragma.c 9eb44ac1d3dc1ac3ea4f444abe1a10ae8acaa16c -F src/prepare.c 0b966d20979237121ec5fec449c9db45f6b9789a +F src/pragma.c 6b1fa9f180d88b3f905cebd593ef6aef9334be43 +F src/prepare.c 49739b385c4cd0667cfa9941c41bf6d4f8edc157 F src/printf.c 508a1c59433353552b6553cba175eaa7331f8fc1 F src/random.c 676b9d7ac820fe81e6fb2394ac8c10cff7f38628 -F src/resolve.c 4a61d03e49b15440878096e6030863fc628828f0 +F src/resolve.c 92ef8a85d53b305a7de9faef27d652b96c2b4db6 F src/rowset.c c64dafba1f9fd876836c8db8682966b9d197eb1f -F src/select.c 67b0778c9585905c8aa75aaa469e76ef3c1d315a +F src/select.c 56ecb073e6f6696173ad80493aa14355225b6e53 F src/shell.c db2643650b9268df89a4bedca3f1c6d9e786f1bb - F src/sqlite.h.in 3ccf717d82101f19548d0b1243f0a6f4854d51ee + F src/sqlite.h.in 9d03ceaad971882482c158c0e3d39d361c2c18a1 F src/sqlite3ext.h 1db7d63ab5de4b3e6b83dd03d1a4e64fef6d2a17 -F src/sqliteInt.h 20ab1da1a9a652ea673e5bc586382143914381c0 +F src/sqliteInt.h d87eb4976edacb68fb9b7557163ae0def733354b F src/sqliteLimit.h ffe93f5a0c4e7bd13e70cd7bf84cfb5c3465f45d F src/status.c 237b193efae0cf6ac3f0817a208de6c6c6ef6d76 F src/table.c cc86ad3d6ad54df7c63a3e807b5783c90411a08d @@@ -204,16 -208,16 +205,16 @@@ F src/update.c 574464e0049eb289ab863c58 F src/utf.c 3ca2c9461b8e942c68da28bfccd448663f536a6f F src/util.c efb5f8e533d4beef545cf765cab5f7920b4c75f9 F src/vacuum.c 3fe0eebea6d2311c1c2ab2962887d11f7a4dcfb0 -F src/vdbe.c 464e2e30b1287554a23cdaa0b6b010a9dcb5eb29 -F src/vdbe.h 457b6c70f02885cec1f5225b5e6441d067b55d3f -F src/vdbeInt.h 831c254a6eef237ef4664c8381a0137586567007 -F src/vdbeapi.c 0ab8ada7260b32031ca97f338caecf0812460624 -F src/vdbeaux.c 014a60435469fed0b1c2fdf5e4db6273d7632901 -F src/vdbeblob.c a3f3e0e877fc64ea50165eec2855f5ada4477611 -F src/vdbemem.c c4a5188ff43692f2ca78d3539ad4877e14b70712 -F src/vtab.c aedd76e8670d5a5379f93804398d3ba960125547 +F src/vdbe.c 5e9d870ec390fbc329f11424b121681e8da5d75c +F src/vdbe.h 080fe6bc1264438becb8bf9b9f3c84074c336b78 +F src/vdbeInt.h 1291908344bcbaa8cf47de86d7108cb92c3a71a3 +F src/vdbeapi.c 8d5013ab6104be757c208a70ffb191cc27d2b688 - F src/vdbeaux.c d8ca68164d20c5b65dfa713095febcb5d37d45b0 ++F src/vdbeaux.c 1cc9dd48848059d1c1cd05775659323e0a8654dc +F src/vdbeblob.c f93cb60ac388633ed3bde8a94ef161ad2dbfb689 +F src/vdbemem.c dc551981833756ea34a3e0b238f759479e7cf526 +F src/vtab.c 10df5c77cea34a49f2ad4e5de763f820d6223eb4 F src/walker.c 1edca756275f158b80f20eb6f104c8d3fcc96a04 - F src/where.c b9ad2d2db4a7d1cda7bed8a7299eb73fde63b5b1 + F src/where.c a3218dfcf32e3d933270b76a72b97065f24b3f2c F test/aggerror.test a867e273ef9e3d7919f03ef4f0e8c0d2767944f2 F test/alias.test 4529fbc152f190268a15f9384a5651bbbabc9d87 F test/all.test 14165b3e32715b700b5f0cbf8f6e3833dda0be45 @@@ -661,9 -665,9 +662,9 @@@ F test/tkt3918.test e6cdf6bfcfe9ba939d8 F test/tkt3922.test 022ace32c049e3964f68492c12eb803e8e4856d8 F test/tkt3929.test 6a4c3baefb4e75127356b7d675b5df42c35c00d1 F test/tkt3935.test e15261fedb9e30a4305a311da614a5d8e693c767 -F test/tkt3992.test c193b9643b1c25d020c503a986d5e4089e65c530 +F test/tkt3992.test 2ba939cc646eaa46761dfd55f975cad69bf4e254 F test/tkt3997.test a335fa41ca3985660a139df7b734a26ef53284bd - F test/tkt4018.test f581cf52dc359171875cb649bdc38b525d7b9309 + F test/tkt4018.test 7c2c9ba4df489c676a0a7a0e809a1fb9b2185bd1 F test/tokenize.test ce430a7aed48fc98301611429595883fdfcab5d7 F test/trace.test 19ffbc09885c3321d56358a5738feae8587fb377 F test/trans.test d887cb07630dc39879a322d958ad8b006137485c @@@ -747,7 -751,14 +748,7 @@@ F tool/speedtest2.tcl ee2149167303ba8e9 F tool/speedtest8.c 2902c46588c40b55661e471d7a86e4dd71a18224 F tool/speedtest8inst1.c 293327bc76823f473684d589a8160bde1f52c14e F tool/vdbe-compress.tcl 672f81d693a03f80f5ae60bfefacd8a349e76746 - P 9eb91efda5241609ff18ff15ef5eaa0e86788eab - R 63b174d38f0bc479f8becc3f97b1ed05 -P 609c5341bea16e4e8bcd15388b209c753ca9e0bb -R 4434d9008bae80dc68b503672bd862e3 -U drh -Z 358f98b5bae88b9d1480f5896ee873f8 ------BEGIN PGP SIGNATURE----- -Version: GnuPG v1.4.6 (GNU/Linux) - -iD4DBQFKlymCoxKgR168RlERAhGbAJ9JSX+YW4zu0jqF+jN+dnKMOJu+5wCYo0Rg -s49NcnJb22O8s2ToTSr09A== -=D2dX ------END PGP SIGNATURE----- ++P 31199db0f77cf4b32d5589a29abd9535b155164b 6abcba1021b237452f542f1fbb69eb75d9f50f53 ++R 31e80012e316e6ca372fbf461bf4b6ab +U dan - Z 2a154fc741e40d1c8378264e43f74ea7 ++Z 33710f063b4132081e125750db8134c3 diff --cc manifest.uuid index a7c65c718d,3ac9c95bcf..dceef0d8d5 --- a/manifest.uuid +++ b/manifest.uuid @@@ -1,1 -1,1 +1,1 @@@ - 31199db0f77cf4b32d5589a29abd9535b155164b -6abcba1021b237452f542f1fbb69eb75d9f50f53 ++6e09e28751a7071969ef9f3445f4092d2c28f358 diff --cc src/vdbeaux.c index 23acfef29b,76d1d8cbeb..f48c415b1e --- a/src/vdbeaux.c +++ b/src/vdbeaux.c @@@ -1331,49 -1232,19 +1334,49 @@@ void sqlite3VdbeFreeCursor(Vdbe *p, Vdb } } +int sqlite3VdbeFrameRestore(VdbeFrame *pFrame){ + Vdbe *v = pFrame->v; + v->aOp = pFrame->aOp; + v->nOp = pFrame->nOp; + v->aMem = pFrame->aMem; + v->nMem = pFrame->nMem; + v->apCsr = pFrame->apCsr; + v->nCursor = pFrame->nCursor; + v->db->lastRowid = pFrame->lastRowid; + v->nChange = pFrame->nChange; + return pFrame->pc; +} + /* - ** Close all cursors. + ** Close all cursors. +** +** Also release any dynamic memory held by the VM in the Vdbe.aMem memory +** cell array. This is necessary as the memory cell array may contain +** pointers to VdbeFrame objects, which may in turn contain pointers to +** open cursors. */ static void closeAllCursors(Vdbe *p){ - int i; - if( p->apCsr==0 ) return; - for(i=0; inCursor; i++){ - VdbeCursor *pC = p->apCsr[i]; - if( pC ){ - sqlite3VdbeFreeCursor(p, pC); - p->apCsr[i] = 0; + if( p->pFrame ){ + VdbeFrame *pFrame = p->pFrame; + for(pFrame=p->pFrame; pFrame->pParent; pFrame=pFrame->pParent); + sqlite3VdbeFrameRestore(pFrame); + } + p->pFrame = 0; + p->nFrame = 0; + + if( p->apCsr ){ + int i; + for(i=0; inCursor; i++){ + VdbeCursor *pC = p->apCsr[i]; + if( pC ){ + sqlite3VdbeFreeCursor(p, pC); + p->apCsr[i] = 0; + } } } + if( p->aMem ){ + releaseMemArray(&p->aMem[1], p->nMem); + } } /*