From e8814cc83c9722b7364f1f7aa4607b8e568748ac Mon Sep 17 00:00:00 2001 From: dan Date: Sat, 21 Jan 2017 16:21:24 +0000 Subject: [PATCH] Fix problems in the previous commit. FossilOrigin-Name: 74ad80eb745c708bdbbbf24cbbbf50971e84182f --- manifest | 15 ++++++--------- manifest.uuid | 2 +- src/vdbe.c | 21 ++++++++------------- 3 files changed, 15 insertions(+), 23 deletions(-) diff --git a/manifest b/manifest index f5450c3212..3e8a8e08af 100644 --- a/manifest +++ b/manifest @@ -1,5 +1,5 @@ -C Add\sextra\s(somewhat\sinefficient)\strace\scallbacks\sfor\striggers\sif\sSQLITE_TRACE_TRIGGER\sis\sdefined. -D 2017-01-21T15:58:42.695 +C Fix\sproblems\sin\sthe\sprevious\scommit. +D 2017-01-21T16:21:24.115 F Makefile.in 41bd4cad981487345c4a84081074bcdb876e4b2e F Makefile.linux-gcc 7bc79876b875010e8c8f9502eb935ca92aa3c434 F Makefile.msc b8ca53350ae545e3562403d5da2a69cec79308da @@ -457,7 +457,7 @@ F src/update.c b356b29d04c71f33c779f2cb557cf953819bdd7a F src/utf.c 699001c79f28e48e9bcdf8a463da029ea660540c F src/util.c a88b0466fddf445ce752226d4698ca3faada620a F src/vacuum.c 33c174b28886b2faf26e503b5a49a1c01a9b1c16 -F src/vdbe.c a2e8ea847859c8bccdcfa775413f42b381df6c66 +F src/vdbe.c 132f552033f72820c27a100861fa83254358cbcd F src/vdbe.h b0866e4191f096f1c987a84b042c3599bdf5423b F src/vdbeInt.h 4cad10b68ed052104a997454540ea71ceb2888e1 F src/vdbeapi.c d6ebaa465f070eb1af8ba4e7b34583ece87bdd24 @@ -1547,10 +1547,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 0d1ad13a296b22d6fe36879b56f99bd6af1acd3a -R 8060b839ccd84e4e1ab0cfce250c64af -T *branch * trigger-trace -T *sym-trigger-trace * -T -sym-trunk * +P ffda1d1e1c858abd02f0c07b906cfac5ad075498 +R c37bc6770e2789d7f8851d61fd232055 U dan -Z 33d7cd6899dfe41d4b1c6eef55037e2e +Z a07b3b8a92ddc391359da9de406f8455 diff --git a/manifest.uuid b/manifest.uuid index c17bf1eca7..f7e4744943 100644 --- a/manifest.uuid +++ b/manifest.uuid @@ -1 +1 @@ -ffda1d1e1c858abd02f0c07b906cfac5ad075498 \ No newline at end of file +74ad80eb745c708bdbbbf24cbbbf50971e84182f \ No newline at end of file diff --git a/src/vdbe.c b/src/vdbe.c index 65c5cc04c6..fe07f5e1dd 100644 --- a/src/vdbe.c +++ b/src/vdbe.c @@ -962,14 +962,12 @@ case OP_Halt: { pcx = sqlite3VdbeFrameRestore(pFrame); #ifdef SQLITE_TRACE_TRIGGER if( (db->mTrace & SQLITE_TRACE_STMT) && aOp[0].p4.z ){ - int nNest = 0; - VdbeFrame *pF; int nTotal = nVmStep - pFrame->nVmStep; char *zTrace; + assert( nTotal>=0 ); assert( db->xTrace ); - for(pF=p->pFrame; pF; pF=pF->pParent) nNest++; zTrace = sqlite3_mprintf("%.*s%s completed (VM steps: total=%d self=%d)", - nNest, " :", + p->nFrame, " :", aOp[0].p4.z, nTotal, nVmStep - pFrame->nVmStepAdj ); if( zTrace ){ @@ -5854,10 +5852,6 @@ case OP_Program: { /* jump */ #ifdef SQLITE_ENABLE_STMT_SCANSTATUS pFrame->anExec = p->anExec; #endif -#ifdef SQLITE_TRACE_TRIGGER - pFrame->nVmStep = nVmStep; - pFrame->nVmStepAdj = nVmStep; -#endif pEnd = &VdbeFrameMem(pFrame)[pFrame->nChildMem]; for(pMem=VdbeFrameMem(pFrame); pMem!=pEnd; pMem++){ @@ -5879,6 +5873,10 @@ case OP_Program: { /* jump */ pFrame->nDbChange = p->db->nChange; assert( pFrame->pAuxData==0 ); pFrame->pAuxData = p->pAuxData; +#ifdef SQLITE_TRACE_TRIGGER + pFrame->nVmStep = nVmStep; + pFrame->nVmStepAdj = nVmStep; +#endif p->pAuxData = 0; p->nChange = 0; p->pFrame = pFrame; @@ -6917,11 +6915,8 @@ case OP_Init: { /* jump */ #endif #ifdef SQLITE_TRACE_TRIGGER if( p->pFrame ){ - int nNest = -1; - VdbeFrame *pFrame; - for(pFrame=p->pFrame; pFrame; pFrame=pFrame->pParent) nNest++; - zTrace = sqlite3_mprintf("%.*s%s", - nNest, " :", zTrace + zTrace = sqlite3_mprintf("%.*s%s", p->nFrame-1, + " :", zTrace ); if( zTrace ){ (void)db->xTrace(SQLITE_TRACE_STMT, db->pTraceArg, p, zTrace); -- 2.39.5