]> git.ipfire.org Git - thirdparty/sqlite.git/commitdiff
Remove an unreachable branch from the OP_VCreate opcode.
authordrh <drh@noemail.net>
Sat, 21 Mar 2015 12:22:16 +0000 (12:22 +0000)
committerdrh <drh@noemail.net>
Sat, 21 Mar 2015 12:22:16 +0000 (12:22 +0000)
FossilOrigin-Name: 5fca41a3811766b48f5f23d5d49cc4e6e79fa867

manifest
manifest.uuid
src/vdbe.c

index 666fc38ffcd8dc372736483575c591f6c8fdfb0c..05da0070b5bcaa38955c5befc8d8b7800c082b37 100644 (file)
--- a/manifest
+++ b/manifest
@@ -1,5 +1,5 @@
-C Add\sa\smissing\s"ifcapable\sfts3"\sto\sa\stest\scase\sin\svtab2.test.
-D 2015-03-21T10:53:01.184
+C Remove\san\sunreachable\sbranch\sfrom\sthe\sOP_VCreate\sopcode.
+D 2015-03-21T12:22:16.937
 F Makefile.arm-wince-mingw32ce-gcc d6df77f1f48d690bd73162294bbba7f59507c72f
 F Makefile.in 88a3e6261286db378fdffa1124cad11b3c05f5bb
 F Makefile.linux-gcc 91d710bdc4998cb015f39edf3cb314ec4f4d7e23
@@ -293,7 +293,7 @@ F src/update.c 3c4ecc282accf12d39edb8d524cf089645e55a13
 F src/utf.c fc6b889ba0779b7722634cdeaa25f1930d93820c
 F src/util.c 98a7627ca48ad3265b6940915a1d08355eb3fc7e
 F src/vacuum.c 9460b9de7b2d4e34b0d374894aa6c8a0632be8ec
-F src/vdbe.c 3d96875d883c2bf53a4806c9d4c5abff18511da4
+F src/vdbe.c bd793ed436edccaf264ec969ac92c9b5f4b41d64
 F src/vdbe.h 6fc69d9c5e146302c56e163cb4b31d1ee64a18c3
 F src/vdbeInt.h bb56fd199d8af1a2c1b9639ee2f70724b4338e3a
 F src/vdbeapi.c 583d56b129dd27f12bed518270de9ebe521e6a75
@@ -1246,7 +1246,7 @@ F tool/vdbe_profile.tcl 67746953071a9f8f2f668b73fe899074e2c6d8c1
 F tool/warnings-clang.sh f6aa929dc20ef1f856af04a730772f59283631d4
 F tool/warnings.sh 0abfd78ceb09b7f7c27c688c8e3fe93268a13b32
 F tool/win/sqlite.vsix deb315d026cc8400325c5863eef847784a219a2f
-P b11d1793a06a44931edcbf12a615b49794d53a62
-R 55729177793663a0c48c1beb22d1dc2b
-U dan
-Z c52b93c6a8110abb696022d137cc00a4
+P d845b0f69093178517d66e1fc5060e8f62c681c7
+R 33e37ff5951445c194f8f62b65ec1d8a
+U drh
+Z f47a30263eba86ab7824497d08f8b218
index 435dcf9c129eeb89497dec6f8a78bedf2fd4996d..9d0d2f5b15cab7bf4ab67deaf45562a138ff747f 100644 (file)
@@ -1 +1 @@
-d845b0f69093178517d66e1fc5060e8f62c681c7
\ No newline at end of file
+5fca41a3811766b48f5f23d5d49cc4e6e79fa867
\ No newline at end of file
index 8eb77210854290443cac8b2c28f41b3fa734e37c..7d6d2b4f5d439d40b697b7321ad6b39dadc93216 100644 (file)
@@ -6033,15 +6033,20 @@ case OP_VBegin: {
 */
 case OP_VCreate: {
   Mem sMem;          /* For storing the record being decoded */
+  const char *zTab;  /* Name of the virtual table */
+
   memset(&sMem, 0, sizeof(sMem));
   sMem.db = db;
+  /* Because P2 is always a static string, it is impossible for the
+  ** sqlite3VdbeMemCopy() to fail */
+  assert( (aMem[pOp->p2].flags & MEM_Str)!=0 );
+  assert( (aMem[pOp->p2].flags & MEM_Static)!=0 );
   rc = sqlite3VdbeMemCopy(&sMem, &aMem[pOp->p2]);
-  if( rc==SQLITE_OK ){
-    const char *zTab = (const char*)sqlite3_value_text(&sMem);
-    assert( zTab || db->mallocFailed );
-    if( zTab ){
-      rc = sqlite3VtabCallCreate(db, pOp->p1, zTab, &p->zErrMsg);
-    }
+  assert( rc==SQLITE_OK );
+  zTab = (const char*)sqlite3_value_text(&sMem);
+  assert( zTab || db->mallocFailed );
+  if( zTab ){
+    rc = sqlite3VtabCallCreate(db, pOp->p1, zTab, &p->zErrMsg);
   }
   sqlite3VdbeMemRelease(&sMem);
   break;