1
0
mirror of https://github.com/sqlite/sqlite.git synced 2025-11-06 15:49:35 +03:00

Try to find some more stack leaks by adding OP_StackDepth to loops in DML statements. None were found. (CVS 4617)

FossilOrigin-Name: 12c3029b1edcff4435177c709fb2584323f8c515
This commit is contained in:
danielk1977
2007-12-12 17:42:53 +00:00
parent 6811e399ff
commit 997a904016
5 changed files with 17 additions and 12 deletions

View File

@@ -1,5 +1,5 @@
C Remove\sa\scouple\sof\slines\sin\sdelete.c\sthat\sweren't\sdoing\sanything.\s(CVS\s4616) C Try\sto\sfind\ssome\smore\sstack\sleaks\sby\sadding\sOP_StackDepth\sto\sloops\sin\sDML\sstatements.\sNone\swere\sfound.\s(CVS\s4617)
D 2007-12-12T17:19:27 D 2007-12-12T17:42:53
F Makefile.arm-wince-mingw32ce-gcc ac5f7b2cef0cd850d6f755ba6ee4ab961b1fadf7 F Makefile.arm-wince-mingw32ce-gcc ac5f7b2cef0cd850d6f755ba6ee4ab961b1fadf7
F Makefile.in 0590398f62fc2c456ff4c45e9741f5a718b7e2ac F Makefile.in 0590398f62fc2c456ff4c45e9741f5a718b7e2ac
F Makefile.linux-gcc d53183f4aa6a9192d249731c90dbdffbd2c68654 F Makefile.linux-gcc d53183f4aa6a9192d249731c90dbdffbd2c68654
@@ -90,13 +90,13 @@ F src/build.c 580561a0d9e070ff2741f3b115cae51c1ef08260
F src/callback.c 77b302b0d41468dcda78c70e706e5b84577f0fa0 F src/callback.c 77b302b0d41468dcda78c70e706e5b84577f0fa0
F src/complete.c 4cf68fd75d60257524cbe74f87351b9848399131 F src/complete.c 4cf68fd75d60257524cbe74f87351b9848399131
F src/date.c 49c5a6d2de6c12000905b4d36868b07d3011bbf6 F src/date.c 49c5a6d2de6c12000905b4d36868b07d3011bbf6
F src/delete.c 8c696d287ab2d17e0a38f3cad154f48d3b92fffb F src/delete.c 1f957c4acb2270772c6fab8411459e7dd43d585f
F src/experimental.c 1b2d1a6cd62ecc39610e97670332ca073c50792b F src/experimental.c 1b2d1a6cd62ecc39610e97670332ca073c50792b
F src/expr.c 7c8e3295ddeb835ed081b8573caaf8c3fd7c9f9c F src/expr.c 7c8e3295ddeb835ed081b8573caaf8c3fd7c9f9c
F src/func.c 9c87ddf907e72ac1990146ff2d68dce21d68b419 F src/func.c 9c87ddf907e72ac1990146ff2d68dce21d68b419
F src/hash.c 45a7005aac044b6c86bd7e49c44bc15d30006d6c F src/hash.c 45a7005aac044b6c86bd7e49c44bc15d30006d6c
F src/hash.h 031cd9f915aff27e12262cb9eb570ac1b8326b53 F src/hash.h 031cd9f915aff27e12262cb9eb570ac1b8326b53
F src/insert.c a090c7258f2be707cca8f0cf376142f141621241 F src/insert.c c7e1867a6a162c074d47786f1f0152b9583e8c01
F src/journal.c 807bed7a158979ac8d63953e1774e8d85bff65e2 F src/journal.c 807bed7a158979ac8d63953e1774e8d85bff65e2
F src/legacy.c 4ac53191fad2e3c4d59bde1228879b2dc5a96d66 F src/legacy.c 4ac53191fad2e3c4d59bde1228879b2dc5a96d66
F src/limits.h 71ab25f17e35e0a9f3f6f234b8ed49cc56731d35 F src/limits.h 71ab25f17e35e0a9f3f6f234b8ed49cc56731d35
@@ -177,7 +177,7 @@ F src/vdbeblob.c 82f51cdf9b0c0af729732fde48c824e498c0a1ca
F src/vdbefifo.c 334c838c8f42d61a94813d136019ee566b5dc2f6 F src/vdbefifo.c 334c838c8f42d61a94813d136019ee566b5dc2f6
F src/vdbemem.c 123994fcd344993d2fb050a83b91b341bbbd08b4 F src/vdbemem.c 123994fcd344993d2fb050a83b91b341bbbd08b4
F src/vtab.c f819d55ef638d45e09ce00009d435da8bf16f528 F src/vtab.c f819d55ef638d45e09ce00009d435da8bf16f528
F src/where.c 7ec7c7a5b3a534d5ccbe9d73690b8969ee6b3f08 F src/where.c 4d71db7ee641cd28cdef88cc6149bd3a51d2e671
F tclinstaller.tcl 4356d9d94d2b5ed5e68f9f0c80c4df3048dd7617 F tclinstaller.tcl 4356d9d94d2b5ed5e68f9f0c80c4df3048dd7617
F test/aggerror.test a867e273ef9e3d7919f03ef4f0e8c0d2767944f2 F test/aggerror.test a867e273ef9e3d7919f03ef4f0e8c0d2767944f2
F test/all.test ee350b9ab15b175fc0a8fb51bf2141ed3a3b9cba F test/all.test ee350b9ab15b175fc0a8fb51bf2141ed3a3b9cba
@@ -599,7 +599,7 @@ F www/tclsqlite.tcl 8be95ee6dba05eabcd27a9d91331c803f2ce2130
F www/vdbe.tcl 87a31ace769f20d3627a64fa1fade7fed47b90d0 F www/vdbe.tcl 87a31ace769f20d3627a64fa1fade7fed47b90d0
F www/version3.tcl 890248cf7b70e60c383b0e84d77d5132b3ead42b F www/version3.tcl 890248cf7b70e60c383b0e84d77d5132b3ead42b
F www/whentouse.tcl fc46eae081251c3c181bd79c5faef8195d7991a5 F www/whentouse.tcl fc46eae081251c3c181bd79c5faef8195d7991a5
P ee98ae17187296f7b0181c3d4d2b942d5cd4bc8f P 86332c79aedb64842e589ff941c637f8e1aabd41
R f07fe36c79aef9b4c5a7e4c619f02545 R 4c469db28dc3fd8fcf2ee0668196ead3
U danielk1977 U danielk1977
Z 3c54ca661ceb916252bfa90a4eafc09b Z 306c9b4906ad93fa32fe70f6606c1c62

View File

@@ -1 +1 @@
86332c79aedb64842e589ff941c637f8e1aabd41 12c3029b1edcff4435177c709fb2584323f8c515

View File

@@ -12,7 +12,7 @@
** This file contains C code routines that are called by the parser ** This file contains C code routines that are called by the parser
** in order to generate code for DELETE FROM statements. ** in order to generate code for DELETE FROM statements.
** **
** $Id: delete.c,v 1.133 2007/12/12 17:19:27 danielk1977 Exp $ ** $Id: delete.c,v 1.134 2007/12/12 17:42:53 danielk1977 Exp $
*/ */
#include "sqliteInt.h" #include "sqliteInt.h"
@@ -277,6 +277,7 @@ void sqlite3DeleteFrom(
if( triggers_exist ){ if( triggers_exist ){
int mem1 = pParse->nMem++; int mem1 = pParse->nMem++;
addr = sqlite3VdbeAddOp(v, OP_FifoRead, 0, end); addr = sqlite3VdbeAddOp(v, OP_FifoRead, 0, end);
sqlite3VdbeAddOp(v, OP_StackDepth, -1, 0);
sqlite3VdbeAddOp(v, OP_MemStore, mem1, 0); sqlite3VdbeAddOp(v, OP_MemStore, mem1, 0);
if( !isView ){ if( !isView ){
sqlite3OpenTable(pParse, iCur, iDb, pTab, OP_OpenRead); sqlite3OpenTable(pParse, iCur, iDb, pTab, OP_OpenRead);
@@ -310,6 +311,7 @@ void sqlite3DeleteFrom(
** row triggers */ ** row triggers */
if( !triggers_exist ){ if( !triggers_exist ){
addr = sqlite3VdbeAddOp(v, OP_FifoRead, 0, end); addr = sqlite3VdbeAddOp(v, OP_FifoRead, 0, end);
sqlite3VdbeAddOp(v, OP_StackDepth, -1, 0);
} }
/* Delete the row */ /* Delete the row */

View File

@@ -12,7 +12,7 @@
** This file contains C code routines that are called by the parser ** This file contains C code routines that are called by the parser
** to handle INSERT statements in SQLite. ** to handle INSERT statements in SQLite.
** **
** $Id: insert.c,v 1.194 2007/11/27 14:46:42 drh Exp $ ** $Id: insert.c,v 1.195 2007/12/12 17:42:53 danielk1977 Exp $
*/ */
#include "sqliteInt.h" #include "sqliteInt.h"
@@ -509,6 +509,7 @@ void sqlite3Insert(
*/ */
srcTab = pParse->nTab++; srcTab = pParse->nTab++;
sqlite3VdbeResolveLabel(v, iInsertBlock); sqlite3VdbeResolveLabel(v, iInsertBlock);
sqlite3VdbeAddOp(v, OP_StackDepth, -1, 0);
sqlite3VdbeAddOp(v, OP_MakeRecord, nColumn, 0); sqlite3VdbeAddOp(v, OP_MakeRecord, nColumn, 0);
sqlite3VdbeAddOp(v, OP_NewRowid, srcTab, 0); sqlite3VdbeAddOp(v, OP_NewRowid, srcTab, 0);
sqlite3VdbeAddOp(v, OP_Pull, 1, 0); sqlite3VdbeAddOp(v, OP_Pull, 1, 0);
@@ -641,6 +642,7 @@ void sqlite3Insert(
}else if( pSelect ){ }else if( pSelect ){
sqlite3VdbeAddOp(v, OP_Goto, 0, iSelectLoop); sqlite3VdbeAddOp(v, OP_Goto, 0, iSelectLoop);
sqlite3VdbeResolveLabel(v, iInsertBlock); sqlite3VdbeResolveLabel(v, iInsertBlock);
sqlite3VdbeAddOp(v, OP_StackDepth, -1, 0);
} }
/* Run the BEFORE and INSTEAD OF triggers, if there are any /* Run the BEFORE and INSTEAD OF triggers, if there are any

View File

@@ -16,7 +16,7 @@
** so is applicable. Because this module is responsible for selecting ** so is applicable. Because this module is responsible for selecting
** indices, you might also think of this module as the "query optimizer". ** indices, you might also think of this module as the "query optimizer".
** **
** $Id: where.c,v 1.265 2007/11/29 17:43:28 danielk1977 Exp $ ** $Id: where.c,v 1.266 2007/12/12 17:42:53 danielk1977 Exp $
*/ */
#include "sqliteInt.h" #include "sqliteInt.h"
@@ -2582,6 +2582,7 @@ WhereInfo *sqlite3WhereBegin(
pLevel->p2 = 1 + sqlite3VdbeAddOp(v, OP_Rewind, iCur, brk); pLevel->p2 = 1 + sqlite3VdbeAddOp(v, OP_Rewind, iCur, brk);
} }
notReady &= ~getMask(&maskSet, iCur); notReady &= ~getMask(&maskSet, iCur);
sqlite3VdbeAddOp(v, OP_StackDepth, -1, 0);
/* Insert code to test every subexpression that can be completely /* Insert code to test every subexpression that can be completely
** computed using the current set of tables. ** computed using the current set of tables.