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:
16
manifest
16
manifest
@@ -1,5 +1,5 @@
|
||||
C Remove\sa\scouple\sof\slines\sin\sdelete.c\sthat\sweren't\sdoing\sanything.\s(CVS\s4616)
|
||||
D 2007-12-12T17:19:27
|
||||
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:42:53
|
||||
F Makefile.arm-wince-mingw32ce-gcc ac5f7b2cef0cd850d6f755ba6ee4ab961b1fadf7
|
||||
F Makefile.in 0590398f62fc2c456ff4c45e9741f5a718b7e2ac
|
||||
F Makefile.linux-gcc d53183f4aa6a9192d249731c90dbdffbd2c68654
|
||||
@@ -90,13 +90,13 @@ F src/build.c 580561a0d9e070ff2741f3b115cae51c1ef08260
|
||||
F src/callback.c 77b302b0d41468dcda78c70e706e5b84577f0fa0
|
||||
F src/complete.c 4cf68fd75d60257524cbe74f87351b9848399131
|
||||
F src/date.c 49c5a6d2de6c12000905b4d36868b07d3011bbf6
|
||||
F src/delete.c 8c696d287ab2d17e0a38f3cad154f48d3b92fffb
|
||||
F src/delete.c 1f957c4acb2270772c6fab8411459e7dd43d585f
|
||||
F src/experimental.c 1b2d1a6cd62ecc39610e97670332ca073c50792b
|
||||
F src/expr.c 7c8e3295ddeb835ed081b8573caaf8c3fd7c9f9c
|
||||
F src/func.c 9c87ddf907e72ac1990146ff2d68dce21d68b419
|
||||
F src/hash.c 45a7005aac044b6c86bd7e49c44bc15d30006d6c
|
||||
F src/hash.h 031cd9f915aff27e12262cb9eb570ac1b8326b53
|
||||
F src/insert.c a090c7258f2be707cca8f0cf376142f141621241
|
||||
F src/insert.c c7e1867a6a162c074d47786f1f0152b9583e8c01
|
||||
F src/journal.c 807bed7a158979ac8d63953e1774e8d85bff65e2
|
||||
F src/legacy.c 4ac53191fad2e3c4d59bde1228879b2dc5a96d66
|
||||
F src/limits.h 71ab25f17e35e0a9f3f6f234b8ed49cc56731d35
|
||||
@@ -177,7 +177,7 @@ F src/vdbeblob.c 82f51cdf9b0c0af729732fde48c824e498c0a1ca
|
||||
F src/vdbefifo.c 334c838c8f42d61a94813d136019ee566b5dc2f6
|
||||
F src/vdbemem.c 123994fcd344993d2fb050a83b91b341bbbd08b4
|
||||
F src/vtab.c f819d55ef638d45e09ce00009d435da8bf16f528
|
||||
F src/where.c 7ec7c7a5b3a534d5ccbe9d73690b8969ee6b3f08
|
||||
F src/where.c 4d71db7ee641cd28cdef88cc6149bd3a51d2e671
|
||||
F tclinstaller.tcl 4356d9d94d2b5ed5e68f9f0c80c4df3048dd7617
|
||||
F test/aggerror.test a867e273ef9e3d7919f03ef4f0e8c0d2767944f2
|
||||
F test/all.test ee350b9ab15b175fc0a8fb51bf2141ed3a3b9cba
|
||||
@@ -599,7 +599,7 @@ F www/tclsqlite.tcl 8be95ee6dba05eabcd27a9d91331c803f2ce2130
|
||||
F www/vdbe.tcl 87a31ace769f20d3627a64fa1fade7fed47b90d0
|
||||
F www/version3.tcl 890248cf7b70e60c383b0e84d77d5132b3ead42b
|
||||
F www/whentouse.tcl fc46eae081251c3c181bd79c5faef8195d7991a5
|
||||
P ee98ae17187296f7b0181c3d4d2b942d5cd4bc8f
|
||||
R f07fe36c79aef9b4c5a7e4c619f02545
|
||||
P 86332c79aedb64842e589ff941c637f8e1aabd41
|
||||
R 4c469db28dc3fd8fcf2ee0668196ead3
|
||||
U danielk1977
|
||||
Z 3c54ca661ceb916252bfa90a4eafc09b
|
||||
Z 306c9b4906ad93fa32fe70f6606c1c62
|
||||
|
||||
@@ -1 +1 @@
|
||||
86332c79aedb64842e589ff941c637f8e1aabd41
|
||||
12c3029b1edcff4435177c709fb2584323f8c515
|
||||
@@ -12,7 +12,7 @@
|
||||
** This file contains C code routines that are called by the parser
|
||||
** 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"
|
||||
|
||||
@@ -277,6 +277,7 @@ void sqlite3DeleteFrom(
|
||||
if( triggers_exist ){
|
||||
int mem1 = pParse->nMem++;
|
||||
addr = sqlite3VdbeAddOp(v, OP_FifoRead, 0, end);
|
||||
sqlite3VdbeAddOp(v, OP_StackDepth, -1, 0);
|
||||
sqlite3VdbeAddOp(v, OP_MemStore, mem1, 0);
|
||||
if( !isView ){
|
||||
sqlite3OpenTable(pParse, iCur, iDb, pTab, OP_OpenRead);
|
||||
@@ -310,6 +311,7 @@ void sqlite3DeleteFrom(
|
||||
** row triggers */
|
||||
if( !triggers_exist ){
|
||||
addr = sqlite3VdbeAddOp(v, OP_FifoRead, 0, end);
|
||||
sqlite3VdbeAddOp(v, OP_StackDepth, -1, 0);
|
||||
}
|
||||
|
||||
/* Delete the row */
|
||||
|
||||
@@ -12,7 +12,7 @@
|
||||
** This file contains C code routines that are called by the parser
|
||||
** 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"
|
||||
|
||||
@@ -509,6 +509,7 @@ void sqlite3Insert(
|
||||
*/
|
||||
srcTab = pParse->nTab++;
|
||||
sqlite3VdbeResolveLabel(v, iInsertBlock);
|
||||
sqlite3VdbeAddOp(v, OP_StackDepth, -1, 0);
|
||||
sqlite3VdbeAddOp(v, OP_MakeRecord, nColumn, 0);
|
||||
sqlite3VdbeAddOp(v, OP_NewRowid, srcTab, 0);
|
||||
sqlite3VdbeAddOp(v, OP_Pull, 1, 0);
|
||||
@@ -641,6 +642,7 @@ void sqlite3Insert(
|
||||
}else if( pSelect ){
|
||||
sqlite3VdbeAddOp(v, OP_Goto, 0, iSelectLoop);
|
||||
sqlite3VdbeResolveLabel(v, iInsertBlock);
|
||||
sqlite3VdbeAddOp(v, OP_StackDepth, -1, 0);
|
||||
}
|
||||
|
||||
/* Run the BEFORE and INSTEAD OF triggers, if there are any
|
||||
|
||||
@@ -16,7 +16,7 @@
|
||||
** so is applicable. Because this module is responsible for selecting
|
||||
** 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"
|
||||
|
||||
@@ -2582,6 +2582,7 @@ WhereInfo *sqlite3WhereBegin(
|
||||
pLevel->p2 = 1 + sqlite3VdbeAddOp(v, OP_Rewind, iCur, brk);
|
||||
}
|
||||
notReady &= ~getMask(&maskSet, iCur);
|
||||
sqlite3VdbeAddOp(v, OP_StackDepth, -1, 0);
|
||||
|
||||
/* Insert code to test every subexpression that can be completely
|
||||
** computed using the current set of tables.
|
||||
|
||||
Reference in New Issue
Block a user