]> git.ipfire.org Git - thirdparty/sqlite.git/commitdiff
Reinitialize debugging information on registers of a trigger prior to each
authordrh <drh@noemail.net>
Fri, 25 Jan 2019 19:29:01 +0000 (19:29 +0000)
committerdrh <drh@noemail.net>
Fri, 25 Jan 2019 19:29:01 +0000 (19:29 +0000)
invocation of the trigger.  This prevents false-positives from the
sqlite3VdbeMemAboutToChange() test logic.

FossilOrigin-Name: 98b3b97573ccb3d986d1552f97f96e15088a598945923adcac77010c1e8b7fe4

manifest
manifest.uuid
src/vdbe.c

index d310ddb1a8e147b2cd35a62037aa3833db7e0589..e94d5e4daafb5ceb177fdf80f234a7351087ef25 100644 (file)
--- a/manifest
+++ b/manifest
@@ -1,5 +1,5 @@
-C Fix\sharmless\scompiler\swarnings.
-D 2019-01-25T18:17:37.520
+C Reinitialize\sdebugging\sinformation\son\sregisters\sof\sa\strigger\sprior\sto\seach\ninvocation\sof\sthe\strigger.\s\sThis\sprevents\sfalse-positives\sfrom\sthe\nsqlite3VdbeMemAboutToChange()\stest\slogic.
+D 2019-01-25T19:29:01.388
 F .fossil-settings/empty-dirs dbb81e8fc0401ac46a1491ab34a7f2c7c0452f2f06b54ebb845d024ca8283ef1
 F .fossil-settings/ignore-glob 35175cdfcf539b2318cb04a9901442804be81cd677d8b889fcc9149c21f239ea
 F Makefile.in 9947eae873c07ae894d4c8633b76c0a0daca7b9fd54401096a77d1a6c7b74359
@@ -585,7 +585,7 @@ F src/upsert.c 0dd81b40206841814d46942a7337786932475f085716042d0cb2fc7791bf8ca4
 F src/utf.c 810fbfebe12359f10bc2a011520a6e10879ab2a163bcb26c74768eab82ea62a5
 F src/util.c 82a2e3f691a3b654be872e305dab1f455e565dedf5e6a90c818c1ab307c00432
 F src/vacuum.c a9f389f41556c0ec310bc9169dc9476603c30a0a913ad92bfbc75c86886967ca
-F src/vdbe.c 090d40c688b56b4602fb196a78e9d17213f381984258131c1e8f665636ca35ac
+F src/vdbe.c 2c99f790ae42af5268529cb67cfd4beaf9542cdc62fd0a10a18edec1fa9a5c09
 F src/vdbe.h 712bca562eaed1c25506b9faf9680bdc75fc42e2f4a1cd518d883fa79c7a4237
 F src/vdbeInt.h a76d5eed62c76bcd8de7afd3147fac1bc40c5a870582664bcd7d071ef437c37f
 F src/vdbeapi.c 57a2d794a8833f269b878dbc24e955369bdb379af6c4e93ebc5ce1a20fa3daf4
@@ -1804,7 +1804,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 b10df2b569e356551cf51ca179f307e4f8827413ee9feb886db1f1e0650e6c5f
-R 2ff0ac8d710b630c9d6e6161696595c6
+P 3ff220ad378d547538b4501e6b2201e835a2c66891e5e40856db377c101a50e5
+R ecf877bc394877eb1dbb4bb85afd2412
 U drh
-Z a3295b111131a3efd3a7c19b13f5e5af
+Z 456c3e392f5a0f89b55001f14b2aaf25
index b0856d1475a8a9ab9e3506c1b44b1e6872d4be6d..751fa3345573e9389981577e9e6f9b3fd3cbbf95 100644 (file)
@@ -1 +1 @@
-3ff220ad378d547538b4501e6b2201e835a2c66891e5e40856db377c101a50e5
\ No newline at end of file
+98b3b97573ccb3d986d1552f97f96e15088a598945923adcac77010c1e8b7fe4
\ No newline at end of file
index 2c2b0ee27226f4c177e3855026c04dddbe85d50e..09cf55b69639ea19f38b43e25499149dd69005a8 100644 (file)
@@ -6171,6 +6171,17 @@ case OP_Program: {        /* jump */
   p->nOp = pProgram->nOp;
 #ifdef SQLITE_ENABLE_STMT_SCANSTATUS
   p->anExec = 0;
+#endif
+#ifdef SQLITE_DEBUG
+  /* Verify that second and subsequent executions of the same trigger do not
+  ** try to reuse register values from the first use. */
+  {
+    int i;
+    for(i=0; i<p->nMem; i++){
+      aMem[i].pScopyFrom = 0;  /* Prevent false-positive AboutToChange() errs */
+      aMem[i].flags |= MEM_Undefined; /* Cause a fault if this reg is reused */
+    }
+  }
 #endif
   pOp = &aOp[-1];