From: drh Date: Wed, 30 Sep 2020 00:10:22 +0000 (+0000) Subject: In the OP_SeekScan opcode, changes to pOp must occur after the call X-Git-Tag: version-3.34.0~82^2~2 X-Git-Url: http://git.ipfire.org/?a=commitdiff_plain;h=f287d0010880033a6b9745a351cac39c554fc591;p=thirdparty%2Fsqlite.git In the OP_SeekScan opcode, changes to pOp must occur after the call to VdbeBranchTaken() so that the VdbeBranchTaken() attributes the branch to the correct opcode. FossilOrigin-Name: 61fbe7aa7cc0e8fe3e6b1c5aec277183d8cd7c86b1e835c38e0b37a9b8063343 --- diff --git a/manifest b/manifest index 1fcaef7332..871a67bdbd 100644 --- a/manifest +++ b/manifest @@ -1,5 +1,5 @@ -C The\sOP_SeekScan\sopcode\sis\sa\sno-op\sif\sthe\scursor\sis\snot\spointing\sto\sa\svalid\nrow\supon\sentry. -D 2020-09-29T23:52:25.083 +C In\sthe\sOP_SeekScan\sopcode,\schanges\sto\spOp\smust\soccur\safter\sthe\scall\nto\sVdbeBranchTaken()\sso\sthat\sthe\sVdbeBranchTaken()\sattributes\sthe\sbranch\nto\sthe\scorrect\sopcode. +D 2020-09-30T00:10:22.499 F .fossil-settings/empty-dirs dbb81e8fc0401ac46a1491ab34a7f2c7c0452f2f06b54ebb845d024ca8283ef1 F .fossil-settings/ignore-glob 35175cdfcf539b2318cb04a9901442804be81cd677d8b889fcc9149c21f239ea F LICENSE.md df5091916dbb40e6e9686186587125e1b2ff51f022cc334e886c19a0e9982724 @@ -607,7 +607,7 @@ F src/upsert.c 2920de71b20f04fe25eb00b655d086f0ba60ea133c59d7fa3325c49838818e78 F src/utf.c ee39565f0843775cc2c81135751ddd93eceb91a673ea2c57f61c76f288b041a0 F src/util.c c0c7977de7ef9b8cb10f6c85f2d0557889a658f817b0455909a49179ba4c8002 F src/vacuum.c 492422c1463c076473bae1858799c7a0a5fe87a133d1223239447c422cd26286 -F src/vdbe.c 015caaa6afdce7cfa4f304b76cce6caaecc73c2fa36268d07de4df555dd33336 +F src/vdbe.c d3030d83fce74ba4678824a47f4d72e67dc26fd842ca64ff29a10efd1fd48551 F src/vdbe.h 83603854bfa5851af601fc0947671eb260f4363e62e960e8a994fb9bbcd2aaa1 F src/vdbeInt.h 3ca5e9fd6e095a8b6cf6bc3587a46fc93499503b2fe48951e1034ba9e2ce2f6e F src/vdbeapi.c c5e7cb2ab89a24d7f723e87b508f21bfb1359a04db5277d8a99fd1e015c12eb9 @@ -1880,7 +1880,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 9e57e758a6a33f54d28a546b4eebfb5cfacef30dc4e0207e43bb9d2c06fc3439 -R 97102016c110374a118cc76eaed41921 +P 4afc96b5fe80bd192a23e0230edc207e641931c3bf48296b1a385c786386f1b7 +R 5eb606d017f17313f42a99e044d0774a U drh -Z 93d2589fdb32de312517637854e5029b +Z 3b826fae3c541a8432a616bf2432412c diff --git a/manifest.uuid b/manifest.uuid index 968a250973..9b788a1462 100644 --- a/manifest.uuid +++ b/manifest.uuid @@ -1 +1 @@ -4afc96b5fe80bd192a23e0230edc207e641931c3bf48296b1a385c786386f1b7 \ No newline at end of file +61fbe7aa7cc0e8fe3e6b1c5aec277183d8cd7c86b1e835c38e0b37a9b8063343 \ No newline at end of file diff --git a/src/vdbe.c b/src/vdbe.c index c1952f2057..2c924abfea 100644 --- a/src/vdbe.c +++ b/src/vdbe.c @@ -4481,8 +4481,8 @@ case OP_SeekScan: { printf("... %d steps and then skip\n", pOp->p1 - n); } #endif - pOp++; VdbeBranchTaken(1,3); + pOp++; goto jump_to_p2; } if( res==0 ){ @@ -4491,8 +4491,8 @@ case OP_SeekScan: { printf("... %d steps and then success\n", pOp->p1 - n); } #endif - pOp += 2; VdbeBranchTaken(2,3); + pOp += 2; break; } if( n<=0 ){