From: drh Date: Sat, 21 Mar 2015 12:22:16 +0000 (+0000) Subject: Remove an unreachable branch from the OP_VCreate opcode. X-Git-Tag: version-3.8.9~51^2 X-Git-Url: http://git.ipfire.org/?a=commitdiff_plain;h=474640638da26ee9a22447a37839d333e8285bf0;p=thirdparty%2Fsqlite.git Remove an unreachable branch from the OP_VCreate opcode. FossilOrigin-Name: 5fca41a3811766b48f5f23d5d49cc4e6e79fa867 --- diff --git a/manifest b/manifest index 666fc38ffc..05da0070b5 100644 --- 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 diff --git a/manifest.uuid b/manifest.uuid index 435dcf9c12..9d0d2f5b15 100644 --- a/manifest.uuid +++ b/manifest.uuid @@ -1 +1 @@ -d845b0f69093178517d66e1fc5060e8f62c681c7 \ No newline at end of file +5fca41a3811766b48f5f23d5d49cc4e6e79fa867 \ No newline at end of file diff --git a/src/vdbe.c b/src/vdbe.c index 8eb7721085..7d6d2b4f5d 100644 --- a/src/vdbe.c +++ b/src/vdbe.c @@ -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;